我需要创建pdf文件的缩略图,我正在使用Imagemagick来实现这一点。
我已经尝试过Pythonmagick和魔杖将pdf转换为图像。但是,当我尝试调整转换后的pdf大小时,生成的图像会变黑。
是否有使用python包装器设置-define pdf:use-cropbox=true
的选项?
Python中是否还有其他方法可以将pdf转换为缩略图?
代码如下:
import wand
img = wand.image.Image(filename="d:\\test.pdf[0]")
img.resize(160,160)
img.save(filename="d:\\test.jpg")
答案 0 :(得分:5)
我找到了解决这个问题的方法。 将pdf转换为图像1st并保存图像。打开新保存的图像并调整其大小。
import wand
img = wand.image.Image(filename="d:\\test.pdf[0]")
img.save(filename="d:\\temp.jpg")
img = wand.image.Image(filename="d:\\temp.jpg")
img.resize(160,160)
img.save(filename="d:\\resized_image.jpg")
我还在等待更好的答案。
答案 1 :(得分:1)
我今天遇到了同样的问题。我在其他帖子中找到了另一个解决方案。 图像变黑的原因是PDF文件中的背景是透明的。由于JPG文件无法识别alpha通道(记录透明像素信息)。 JPG文件会将这些透明像素默认设置为黑色。
# Use the following two lines to fix this error
# img_page.background_color = Color('white')
# img_page.alpha_channel = 'remove'
with Image(filename="file.pdf",resolution= 350) as img_pdf:
num_pages = len(img_pdf.sequence)
for page, img in enumerate(img_pdf.sequence):
img_page = Image(image=img)
img_page.background_color = Color('white')
img_page.alpha_channel = 'remove'
img_page.resize(900,1200)
img_page.save(filename="file"+str(page)+".jpg")
if page == 0:
img_page.resize(500, 500)
img_page.save(filename="thumbnail.jpg")
ref:Python Wand convert PDF to PNG disable transparent (alpha_channel)
答案 2 :(得分:0)
如果您不依赖JPG,则可以不使用临时文件来执行此操作。
以下适用于我:
{{1}}