2011-06-03 14 views
6

Quiero leer un PDF y obtener una lista de sus páginas y el tamaño de cada página. No necesito manipularlo de ninguna manera, solo léelo.Extracción de tamaños de página de PDF en Python

Actualmente estoy probando pyPdf y hace todo lo que necesito excepto una forma de obtener tamaños de página. Entender que probablemente tendré que repetir, ya que los tamaños de página pueden variar en un documento pdf. ¿Hay otro libray/método que pueda usar?

He intentado usar PIL, algunas recetas en línea incluso tienen d = uso de Image (nombre de archivo de imagen), pero NUNCA lee ninguno de mis archivos PDF (lee todo lo demás), incluso algunas cosas que no sabía PIL podría hacer.

Cualquier orientación apreciada - Estoy en Windows 7 64, python25 (porque también hago cosas de GAE), pero estoy feliz de hacerlo en Linux o pythis más modernos.

Respuesta

12

Esto se puede hacer con PyPDF2:

>>> from PyPDF2 import PdfFileReader 
>>> input1 = PdfFileReader(open('example.pdf', 'rb')) 
>>> input1.getPage(0).mediaBox 
RectangleObject([0, 0, 612, 792]) 

(Anteriormente conocido como pyPdf y todavía se refiere a su documentación.)

+1

Generalmente, las longitudes se dan como puntos: 1 pt. = 1/72 pulg. – Chris

+0

input1 = PdfFileReader (el archivo ('example.pdf', 'rb') funciona para mí de esta manera. – bluerubez

+0

No funciona para mí; obtengo TypeError: el objeto 'str' no se puede llamar como un error – Tensigh

0

Otra forma es utilizar popplerqt4

doc = popplerqt4.Poppler.Document.load('/path/to/my.pdf') 
qsizedoc = doc.page(0).pageSize() 
h = qsizedoc.height() # given in pt, 1pt = 1/72 in 
w = qsizedoc.width() 
-1

para pdfminer python> 2.7 y 3.x (pdfminer.six):

parser = PDFParser(open(pdfPath, 'rb')) 
doc = PDFDocument(parser) 
pageSizesList = [] 
for page in PDFPage.create_pages(doc): 
    print(page.mediabox) # <- the media box that is the page size as list of 4 integers x0 y0 x1 y1 
    pageSizesList.append(page.mediabox) # <- appending sizes to this list. eventually the pageSizesList will contain list of list corresponding to sizes of each page 
+0

¿por qué el voto abajo? Lo intenté y está funcionando :( – Myonaiz

Cuestiones relacionadas