使用Wand保存单帧

3 python pdf wand

我的小脚本出了问题.我想使用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
Run Code Online (Sandbox Code Playgroud)

你知道吗?

编辑:

我编辑了我的剧本.我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
Run Code Online (Sandbox Code Playgroud)

它有效,但如果你有其他方法可以做到这一点,我会采取!

小智 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')
Run Code Online (Sandbox Code Playgroud)

我认为这更好.


Shi*_*ijo -1

更正了我的答案,仅包含第一页

\n\n
from wand.image import Image\nimport os\nimport matplotlib as plt\n\ndocuments_path = "/Users/tiers/Desktop/documents/"\n\nfor PDF in os.listdir (documents_path) : #boucle sur tous les PDF du dossier\n\n    convert = Image(filename=documents_path + PDF, resolution=200)  \n    name = PDF.split(\'.\') #R\xc3\xa9cup\xc3\xa9ration du nom\n\n    page=convert.sequence[0]\n    convert.compression_quality = 100 #Qualit\xc3\xa9 en %\n    page.save(filename="/Users/tiers/Desktop/documents_jpg/" + name[0] +  ".jpg") #Enregistrement en JPEG sous\n
Run Code Online (Sandbox Code Playgroud)\n