下面的示例代码使用bimg将pdf转换为jpeg 。
func main() { buffer, err := bimg.Read("test.pdf") if err != nil { fmt.Fprintln(os.Stderr, err) } newImage, err := bimg.NewImage(buffer).Convert(bimg.JPEG) if err != nil { fmt.Fprintln(os.Stderr, err) } if bimg.NewImage(newImage).Type() == "jpeg" { fmt.Fprintln(os.Stderr, "The image was converted into jpeg") } bimg.Write("test.jpg", newImage) }
但只会转换的第1页test.pdf。
test.pdf
有什么方法可以转换成包含多个页面的图像。
bimg使用libvips,并可能加载PDF。不幸的是,libvips加载PDF的默认设置是仅加载一页。除非您想修改bimg(供应商,贡献,破解源代码等),否则您很不幸。
不是问题的答案(不使用bimg),但是您可以改用imagemagick,
import "gopkg.in/gographics/imagick.v3/imagick" func main() { imagick.Initialize() defer imagick.Terminate() mw := imagick.NewMagickWand() defer mw.Destroy() mw.ReadImage("test.pdf") mw.SetIteratorIndex(0) // This being the page offset mw.SetImageFormat("jpg") mw.WriteImage("test.jpg") }