Есть ли какой-нибудь скрипт для конвертации папок изображений в один pdf - PullRequest
7 голосов
/ 21 июня 2011

У меня много папок, и внутри у меня много изображений.Теперь я хочу один PDF на папку, чтобы все изображения, содержащиеся в папке, переходили в PDF.У меня есть тысячи папок, поэтому я хочу что-то, что может выполнять пакетную обработку или может идти по папке и начинать обработку.

Ответы [ 3 ]

14 голосов
/ 21 июня 2011

Я бы решил это с ImageMagick, а не с Python.ImageMagick имеет консольный инструмент 'convert'.Используйте это так:

convert *.jpg foo.pdf

См. здесь .(Зависит от того, используете ли вы Windows, Mac или Linux, это легко узнать с помощью Google)

1 голос
/ 17 января 2014

Я использовал этот код, чтобы сделать то же самое.Он использует Python (2.7, а не Python 3) и пакет reportlab, загружаемый отсюда http://www.reportlab.com/software/installation/, и проходит по всем подкаталогам того, для чего вы установили «root», и создает один pdf из всех jpegs в каждой папке.

import os
from reportlab.pdfgen import canvas
from reportlab.lib.utils import ImageReader


root = "C:\\Users\\Harry\\" 

try:
   n = 0
   for dirpath, dirnames, filenames in os.walk(root):
       PdfOutputFileName = os.path.basename(dirpath) + ".pdf" 
      c = canvas.Canvas(PdfOutputFileName)
      if n > 0 :
           for filename in filenames:
                LowerCaseFileName = filename.lower()
                if LowerCaseFileName.endswith(".jpg"):
                     print(filename)
                     filepath    = os.path.join(dirpath, filename)
                     print(filepath)
                     im          = ImageReader(filepath)
                     imagesize   = im.getSize()
                     c.setPageSize(imagesize)
                     c.drawImage(filepath,0,0)
                     c.showPage()
                     c.save()
      n = n + 1
      print "PDF of Image directory created" + PdfOutputFileName

except:
     print "Failed creating PDF"
0 голосов
/ 21 июня 2011

Я бы посоветовал запускать циклы по вашим документам, используя что-то вроде этого:

def __init__(self, location):
  if os.path.isdir(location): # search directory
    for infile in glob.glob(os.path.join(directory, '*.png')):
    print 'current file is: %s' % infile

В цикле for я бы предложил использовать такую ​​библиотеку, как pyPDF

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...