Eu sei que este é um post mais antigo, mas passei muito tempo tentando encontrar uma solução. Encontrei um decente usando apenas ReportLab e PyPDF, então pensei em compartilhar:
- leia seu PDF usando
PdfFileReader()
, vamos chamar essa entrada
- crie um novo pdf contendo seu texto para adicionar usando ReportLab, salve-o como um objeto string
- leia o objeto string usando
PdfFileReader()
, vamos chamar este texto
- criar um novo objeto PDF usando
PdfFileWriter()
, vamos chamar essa saída
- iterar por meio de entrada e aplicar
.mergePage(*text*.getPage(0))
para cada página à qual deseja que o texto seja adicionado, em seguida, use output.addPage()
para adicionar as páginas modificadas a um novo documento
Isso funciona bem para adições de texto simples. Consulte o exemplo do PyPDF para marcar um documento com marca d'água.
Aqui está um código para responder à pergunta abaixo:
packet = StringIO.StringIO()
can = canvas.Canvas(packet, pagesize=letter)
<do something with canvas>
can.save()
packet.seek(0)
input = PdfFileReader(packet)
A partir daqui, você pode mesclar as páginas do arquivo de entrada com outro documento.
Exemplo para [Python 2.7]:
Exemplo para Python 3.x:
fonte
io.BytesIO
e usar PyPDF2 em vez de pyPDF (que não tem manutenção). Ótima resposta!open
vez defile
.existing_pdf
paraoutput
, o código de exemplo simplesmente não o faz.O pdfrw permite que você leia páginas de um PDF existente e desenhe-as em uma tela de reportlab (semelhante a desenhar uma imagem). Existem exemplos para isso no subdiretório pdfrw examples / rl1 no github. Aviso: eu sou o autor do pdfrw.
fonte
Aproveitando a resposta de David Dehghan acima, o seguinte funciona no Python 2.7.13:
fonte
cpdf fará o trabalho a partir da linha de comando. Porém, não é python (afaik):
fonte
Você pode ter mais sorte dividindo o problema convertendo PDF em um formato editável, escrevendo suas alterações e, em seguida, convertendo-o novamente em PDF. Não conheço uma biblioteca que permite editar PDFs diretamente, mas existem muitos conversores entre DOC e PDF, por exemplo.
fonte
Se você estiver no Windows, isso pode funcionar:
PDF Creator Pilot
Há também um white paper de uma estrutura de criação e edição de PDF em Python. É um pouco desatualizado, mas talvez possa lhe dar algumas informações úteis:
Usando Python como estrutura de edição e processamento de PDF
fonte
Você já experimentou o pyPdf ?
Desculpe, não tem a capacidade de modificar o conteúdo de uma página.
fonte