2011-01-20 12 views
7

Ho un documento PDF già pronto contenente valori segnaposto in alcune zone.popolamento di un file PDF - Python

ad es. {{First_name}}, {{}} codice postale, ...

ho bisogno di sostituire questi valori utilizzando python.


Qualche suggerimento?

+3

Hai esaminato ReportLab? http://www.reportlab.com/software/opensource/ –

risposta

3

Si potrebbe utilizzare Mako.

from mako.template import Template 

template = Template(filename='template.pdf') 
output = Template.render(first_name='Simon', postcode='12345') 

Ho dimenticato di dire, l'impostazione predefinita per i modelli Mako userebbe $ {first_name} e $ {} codice postale in questo caso. Non sono sicuro che questo possa essere cambiato.

+0

Che cosa è esattamente il tipo di 'output' nel tuo esempio? – martineau

+0

Il problema è che il pdf è praticamente binario; mako non può leggere il file –

4

È un modo un po 'strano per le cose, poiché i PDF non sono progettati per essere modificati. A seconda di come sono stati generati quei PDF, potrebbe essere molto difficile fare qualsiasi sostituzione. Non è possibile modificare facilmente alcuna formattazione, comprese le interruzioni di riga, quindi l'unico caso è davvero utile se si dispone di una sorta di modulo in modo da sapere che i campi si adatteranno.

pyPdf potrebbe consentire di estrarre il testo, ma non vedo una funzione per alterarlo durante la scrittura di un secondo PDF. PDFedit ti consentirà sicuramente di apportare modifiche, ed è programmabile tramite script, ma non so come collegarlo a Python. ReportLab legge solo PDF nella versione Plus, se sto leggendo la pagina che Joe Kington ha collegato correttamente.

Vorrei consigliare rivedere perché si dispone di modelli in formato PDF, e se si ha realmente bisogno di apportare modifiche a loro di che, date un'occhiata con PDFedit - non si può dire da questa descrizione quale sia la struttura del vostro i documenti sono, e potrebbe essere molto difficile individuare le parole chiave.