Wiem, że to starszy post, ale spędziłem dużo czasu próbując znaleźć rozwiązanie. Natknąłem się na przyzwoity, używając tylko ReportLab i PyPDF, więc pomyślałem, że podzielę się:
- czytaj swój plik PDF za pomocą
PdfFileReader()
, nazwiemy to wejście
- utwórz nowy plik PDF zawierający tekst do dodania za pomocą ReportLab, zapisz go jako obiekt ciągu
- czytaj obiekt string używając
PdfFileReader()
, nazwiemy ten tekst
- utwórz nowy obiekt PDF za pomocą
PdfFileWriter()
, nazwiemy to wyjście
- iteruj przez dane wejściowe i stosuj
.mergePage(*text*.getPage(0))
dla każdej strony, do której chcesz dodać tekst, a następnie użyj, output.addPage()
aby dodać zmodyfikowane strony do nowego dokumentu
Działa to dobrze w przypadku prostych dodatków tekstowych. Zobacz próbkę PyPDF dotyczącą znakowania wodnego dokumentu.
Oto kod odpowiadający na poniższe pytanie:
packet = StringIO.StringIO()
can = canvas.Canvas(packet, pagesize=letter)
<do something with canvas>
can.save()
packet.seek(0)
input = PdfFileReader(packet)
Stąd możesz połączyć strony pliku wejściowego z innym dokumentem.
Przykład dla [Python 2.7]:
Przykład dla Pythona 3.x:
źródło
io.BytesIO
i używać raczej PyPDF2 niż pyPDF (który jest nieobsługiwany). Świetna odpowiedź!open
zamiastfile
.existing_pdf
dooutput
, przykładowy kod po prostu nie.pdfrw pozwoli ci czytać strony z istniejącego pliku PDF i narysować je na kanwie reportlab (podobnie do rysowania obrazu). Przykłady tego można znaleźć w podkatalogu pdfrw examples / rl1 na github. Zastrzeżenie: jestem autorem pdfrw.
źródło
Wykorzystując David Dehghan jest odpowiedź powyżej, następujące prace w Pythonie 2.7.13:
źródło
cpdf wykona zadanie z wiersza poleceń. Jednak to nie jest Python (afaik):
źródło
Możesz mieć więcej szczęścia, rozkładając problem i konwertując plik PDF na format edytowalny, zapisując zmiany, a następnie konwertując je z powrotem do formatu PDF. Nie znam biblioteki, która umożliwia bezpośrednią edycję plików PDF, ale na przykład istnieje wiele konwerterów między DOC i PDF.
źródło
Jeśli korzystasz z systemu Windows, może to zadziałać:
Program pilotażowy PDF Creator
Istnieje również oficjalny dokument dotyczący struktury tworzenia i edycji plików PDF w języku Python. Jest trochę przestarzały, ale może może dać ci przydatne informacje:
Używanie Pythona jako struktury do edycji i przetwarzania PDF
źródło
Czy próbowałeś / aś pyPdf ?
Przepraszamy, nie ma możliwości modyfikowania treści strony.
źródło