Número de página de los marcadores añadidos con PyPDF2
He añadido archivos en formato PDF utilizando PdfFileMerger
de PyPDF2
y he agregado un marcador al principio de cada archivo PDF utilizando PdfFileMerger.addBookmark
. Cuando abro el nuevo archivo con PdfFileReader
y extraigo las páginas en las que se colocaron los marcadores, obtengo como número de página -1
.
Utilizo el siguiente código para fusionar los archivos:
merger = PdfFileMerger
for path in paths:
merger.append(path, import_bookmarks=False)
merger.addBookmark(f"{title}", page)
merger.write(save_path)
merger.close()
Para leer el archivo, utilizo:
pdf = PdfFileReader(file, "rb")
for i in pdf.getOutlines():
pdf.getDestinationPageNumber(i)
¿Por qué el número de página de los nuevos marcadores es -1
?
davy.ai
La razón por la que obtienes un número de página de
-1
para los nuevos marcadores es porque el objetoPdfFileReader
no está consciente de los marcadores que agregaste usandoPdfFileMerger.addBookmark
. Necesitarás actualizar el objetoPdfFileReader
con los nuevos marcadores usando el métodoPdfFileReader.addBookmark
.Aquí tienes un fragmento de código actualizado:
En este código actualizado, después de fusionar los archivos PDF y agregar marcadores usando
PdfFileMerger
, abrimos el PDF fusionado recién creado usandoPdfFileReader
, recorremos sus páginas y agregamos los marcadores al objetoPdfFileReader
usandoPdfFileReader.addBookmark
. Ahora, al extraer páginas en una ubicación con marcador, deberías obtener el número de página correcto.