Hier erfahren Sie, wie Sie ein PDF mit Python kostenlos bearbeiten können. Fügen wir als Beispiel jeder Seite eine Seitenzahl hinzu.
Verwenden Sie Folgendes:
Installation
conda install -y reportlab
pip install PyPDF2 pdfformfiller
Wenn Sie Anaconda nicht verwenden, verwenden Sie pip anstelle von conda.
(Unter Ubuntu können Sie mit apt-get install fonts-ipaexfont installieren.)
Beachten Sie, dass FloatObject, ein Element von PyPDF2.pdf.PageObject.mediaBox, das das Papierformat darstellt, Decimal zurückgibt, sodass beim Addieren / Subtrahieren mit der reellen Zahl ein Fehler auftritt. Hier ersetze ich das FloatObject gewaltsam, damit es zur reellen Zahl addiert oder von dieser subtrahiert werden kann.
Mit addPage (Eingabedatei, Ausgabedatei) können Sie ein PDF mit Seitenzahlen erstellen, die dem Original-PDF hinzugefügt wurden.
python
import PyPDF2
class FloatObject(PyPDF2.generic.FloatObject):
def __add__(self, other):
return self.as_numeric() + other
def __radd__(self, other):
return self.as_numeric() + other
def __sub__(self, other):
return self.as_numeric() - other
def __rsub__(self, other):
return -self.as_numeric() + other
PyPDF2.generic.FloatObject = FloatObject
from reportlab.lib.styles import ParagraphStyle
from reportlab.lib.enums import TA_CENTER
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from pdfformfiller import PdfFormFiller
def addPage(infile, outfile):
#Unter Linux'/usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf'Eine solche
pdfmetrics.registerFont(TTFont('IPAexGothic', 'c:/Windows/Fonts/ipaexg.ttf'))
sty = ParagraphStyle('sty', alignment=TA_CENTER, fontName='IPAexGothic', fontSize=9)
ff = PdfFormFiller(infile)
for i in range(ff.pdf.getNumPages()):
p = ff.pdf.getPage(i)
ff.add_text('Seite%d'%(i+1), i, (0,p.mediaBox[3]-30), p.mediaBox.getUpperRight(), sty)
ff.write(outfile)
Ich habe es verpackt.
https://pypi.org/project/addpage/
das ist alles
Recommended Posts