Sé que esta es una publicación anterior, pero pasé mucho tiempo tratando de encontrar una solución. Me encontré con uno decente usando solo ReportLab y PyPDF, así que pensé en compartir:
- lea su PDF usando
PdfFileReader()
, llamaremos a esta entrada
- cree un nuevo pdf que contenga su texto para agregar usando ReportLab, guárdelo como un objeto de cadena
- leer el objeto de cadena usando
PdfFileReader()
, llamaremos a este texto
- crear un nuevo objeto PDF usando
PdfFileWriter()
, llamaremos a esta salida
- iterar a través de la entrada y aplicar
.mergePage(*text*.getPage(0))
para cada página a la que desea agregar el texto, luego usar output.addPage()
para agregar las páginas modificadas a un nuevo documento
Esto funciona bien para adiciones de texto simples. Consulte el ejemplo de PyPDF para marcar un documento con una marca de agua.
Aquí hay un código para responder la siguiente pregunta:
packet = StringIO.StringIO()
can = canvas.Canvas(packet, pagesize=letter)
<do something with canvas>
can.save()
packet.seek(0)
input = PdfFileReader(packet)
Desde aquí puede fusionar las páginas del archivo de entrada con otro documento.
Ejemplo de [Python 2.7]:
Ejemplo de Python 3.x:
fuente
io.BytesIO
y usar PyPDF2 en lugar de pyPDF (que no se mantiene). ¡Gran respuesta!open
lugar defile
.existing_pdf
aoutput
, el código de muestra simplemente no lo hace.pdfrw le permitirá leer páginas de un PDF existente y dibujarlas en un lienzo de reportlab (similar a dibujar una imagen). Hay ejemplos de esto en el subdirectorio pdfrw examples / rl1 en github. Descargo de responsabilidad: soy el autor de pdfrw.
fuente
Aprovechando la respuesta de David Dehghan anterior, lo siguiente funciona en Python 2.7.13:
fuente
cpdf hará el trabajo desde la línea de comandos. Sin embargo, no es python (afaik):
fuente
Es posible que tenga más suerte descomponiendo el problema en convertir PDF a un formato editable, escribir sus cambios y luego convertirlo nuevamente en PDF. No conozco una biblioteca que le permita editar PDF directamente, pero hay muchos convertidores entre DOC y PDF, por ejemplo.
fuente
Si está en Windows, esto podría funcionar:
Piloto de PDF Creator
También hay un documento técnico de un marco de creación y edición de PDF en Python. Está un poco anticuado, pero quizás pueda darte información útil:
Uso de Python como marco de procesamiento y edición de PDF
fuente
¿Has probado pyPdf ?
Lo sentimos, no tiene la capacidad de modificar el contenido de una página.
fuente