我的小脚本出了问题。我想使用wand
来convert PDF file on jpeg file
,我想保留一个特定的框架。
我的脚本有两件事:
如果PDF文档生成一个页面:将其转换并保存到jpeg文件中(可以正常工作)
如果PDF文档有两页或更多页面:转换和只保存第一页到jpeg文件中(它不起作用)
我的问题是:我想保存我的意思page[0]
,但我找不到保存单帧的方法。
#-*- coding: utf-8 -*-
from wand.image import Image
import os
documents_path = "/Users/tiers/Desktop/documents/"
for PDF in os.listdir (documents_path) : #boucle sur tous les PDF du dossier
convert = Image(filename=documents_path + PDF, resolution=200)
name = PDF.split('.') #Récupération du nom
if len(convert.sequence) == 1 : #Nombre de page = 1
convert.compression_quality = 100 #Qualité en %
convert.save(filename="/Users/tiers/Desktop/documents_jpg/" + name[0] + ".jpg") #Enregistrement en JPEG sous la forme nom.jpg
elif len(convert.sequence) > 1 : #Nombre de page > 1
for page in convert.sequence : #Pour chaque page
convert.compression_quality = 100 #Qualité en %
page.save(filename="/Users/tiers/Desktop/documents_jpg/" + name[0] + ".jpg") #Enregistrement en JPEG sous la forme nom.jpg
你有什么想法吗?
编辑:
我编辑了我的剧本。我在break
的第一个循环之后for
。从这个方面来说,我只是拿起第一页,但我不喜欢这样的事情......
#-*- coding: utf-8 -*-
from wand.image import Image
import os
import matplotlib as plt
documents_path = "/Users/tiers/Desktop/documents/"
for PDF in os.listdir (documents_path) : #boucle sur tous les PDF du dossier
convert = Image(filename=documents_path + PDF, resolution=200)
name = PDF.split('.') #Récupération du nom
page = len(convert.sequence)
if page == 1 : #Nombre de page = 1
convert.compression_quality = 100 #Qualité en %
convert.save(filename="/Users/tiers/Desktop/documents_jpg/" + name[0] + ".jpg") #Enregistrement en JPEG sous la forme nom.jpg
elif page > 1 : #Nombre de page > 1
for frame in convert.sequence : #Pour chaque page
img_page = Image(image=frame)
img_page.compression_quality = 100 #Qualité en %
img_page.save(filename="/Users/tiers/Desktop/documents_jpg/" + name[0] + ".jpg") #Enregistrement en JPEG sous la forme nom.jpg
break
它有效,但是如果你有其他方法可以做到这一点,我会接受!
答案 0 :(得分:6)
from wand.image import Image
with Image(filename='yourfilename.pdf') as img:
extractedimg = img.sequence[0]
first_image = Image(image=extractedimg)
first_image.format= 'jpeg'
first_image.save(filename='001.jpg')
我认为这样更好。
答案 1 :(得分:0)
更正我的回答只是为了包含第一页
from wand.image import Image
import os
import matplotlib as plt
documents_path = "/Users/tiers/Desktop/documents/"
for PDF in os.listdir (documents_path) : #boucle sur tous les PDF du dossier
convert = Image(filename=documents_path + PDF, resolution=200)
name = PDF.split('.') #Récupération du nom
page=convert.sequence[0]
convert.compression_quality = 100 #Qualité en %
page.save(filename="/Users/tiers/Desktop/documents_jpg/" + name[0] + ".jpg") #Enregistrement en JPEG sous