So arbeiten Sie mit PDF-Dateien in Python für Programmieranfänger • BUOM

Veröffentlicht am 6. Juni 2022

Python ist ein intuitives Programmiertool, das eine Vielzahl von Funktionen bietet, die Entwicklern beim Schreiben und Bearbeiten von Code helfen. Beim Programmieren in Python können Sie verschiedene Bibliotheken und Funktionen nutzen, um PDF-Dateien anzupassen, beispielsweise Wasserzeichen und das Hervorheben von Abschnitten des Dokuments. Das Erlernen dieser Änderungstechniken kann Ihnen dabei helfen, Dateien an Ihre spezifischen Bedürfnisse und Anforderungen anzupassen.

In diesem Artikel besprechen wir neun Möglichkeiten zur Verwendung von PDFs in Python, die Ihnen dabei helfen, Ihre Programmierkenntnisse für Ihre Karriere zu verbessern.

So arbeiten Sie mit PDF-Dateien in Python

Hier sind neun einzigartige Möglichkeiten, mit PDF-Dateien in Python zu arbeiten:

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

1. Text extrahieren und hinzufügen

Um Text aus Python zu extrahieren, installieren Sie PDFMiner, indem Sie den Befehl „pip install pdfminer.six“ ausführen. Sobald die Bibliothek installiert ist, können Sie Text aus PDF hinzufügen und extrahieren. Hier ist ein Beispiel, das die Syntax zum Extrahieren von Text aus PDF in Python mithilfe dieser Bibliothek zeigt:

aus io StringIO importieren

aus pdfminer.pdfinterp importieren PDFPageInterpreter, PDFResourceManager

aus pdfminer.pdfpage PDFPage importieren

aus pdfminer.converter TextConverter importieren

aus pdfminer.layout LAParams importieren

# Analysator PDFMiner

rsrcmgr = PDFResourceManager()

sio = StringIO()

Codec = „utf-8“

Laparams = LAParams()

Gerät = TextConverter (rsrcmgr, sio, Codec = Codec, Laparams = Laparams)

interpreter = PDFPageInterpreter(rsrcmgr, Gerät)

# Pfad zu unserer Eingabedatei

pdf_file = „form.pdf“

# Text extrahieren

pdfFile = open(pdf_file, „rb“)

für eine Seite in PDFPage.get_pages(pdfFile):

interpreter.process_page(page)

fp.close()

# Text von StringIO zurückgeben

text = sio.getvalue()

drucken (Text)

#Befreiung

device.close()

sio.close()

Hier ist eine Beispielsyntax zum Hinzufügen von Text zu einer PDF-Datei:

aus reportlab.lib.pagesizes LETTER importieren

aus reportlab.lib.units Import Zoll

aus reportlab.pdfgen.canvas Canvas-Import

aus reportlab.lib.colors Import Rot

# PDF-Datei erstellen

Canvas = Canvas(„text_file.pdf“, Seitengröße=LETTER)

# Schriftart und Schriftgröße festlegen

canvas.setFont(“Courier”, 16)

# Setze die Schriftfarbe auf Rot

canvas.setFillColor(rot)

# Schreiben Sie diesen Text in eine PDF-Datei

canvas.drawString(2 * Zoll, 8 * Zoll, „Dies ist ein neu erstelltes Python-PDF.“)

canvas.save()

2. Seiten drehen

PDF-Seiten können entweder im Quer- oder Hochformat vorliegen. Manchmal können Seiten auf dem Kopf stehen, was passieren kann, wenn jemand ein Dokument scannt und in eine PDF-Datei oder E-Mail umwandelt. Um PDF-Seiten zu drehen, installieren Sie die PyPDF2-Bibliothek, indem Sie den Befehl „pip install pypdf2“ eingeben. Hier ist ein Syntaxbeispiel, das zeigt, wie Seiten mithilfe dieser Bibliothek richtig gedreht werden:

# rotate_pages.py

aus PyPDF2 PdfFileReader, PdfFileWriter importieren

Definieren Sie rotation_pages (pdf_path):
pdf_writer = PdfFileWriter()
pdf_reader = PdfFileReader (pdf_path)
# Seite um 90 Grad nach rechts drehen
page_1 = pdf_reader.getPage(0).rotateClockwise(90)
pdf_writer.addPage (Seite_1)
# Seite um 90 Grad nach links drehen
page_2 = pdf_reader.getPage(1).rotateCounterClockwise(90)
pdf_writer.addPage (Seite_2)
# Fügen Sie eine Seite in normaler Ausrichtung hinzu
pdf_writer.addPage(pdf_reader.getPage(2))

mit open(‘rotate_pages.pdf’, ‘wb’) wie fh:
pdf_writer.write(fh)

if __name__ == ‘__main__’:
path = ‘Jupyter_Notebook_An_Introduction.pdf’
rotate_pages(Pfad)

3. PDFs zusammenführen

Es gibt verschiedene Umstände, unter denen Sie mehrere PDFs zu einem einzigen PDF kombinieren möchten. Sie können beispielsweise ein Standard-Deckblatt mit verschiedenen PDF-Berichten kombinieren. Mit Python können Sie diese Aufgabe mithilfe der Funktion „merge_pdfs()“ ausführen. Hier ist ein Beispiel für die Syntax dieser Funktion:

# pdf_merging.py

aus PyPDF2 PdfFileReader, PdfFileWriter importieren

def merge_pdfs(Pfade, Ausgabe):
pdf_writer = PdfFileWriter()

für einen Pfad in Pfaden:
pdf_reader = PdfFileReader (veröffentlichen)
für Seite im Bereich (pdf_reader.getNumPages()):
# Fügen Sie jede Seite zum Post-Objekt hinzu
pdf_writer.addPage(pdf_reader.getPage(page))

# Zusammengeführtes PDF schreiben
mit open(output, ‘wb’) als Ausgabe:
pdf_writer.write(beendet)

if __name__ == ‘__main__’:
paths = (‘document1.pdf’, ‘document2.pdf’)
merge_pdfs(Pfade, Ausgabe=’merged.pdf’)

4. Teilen Sie PDFs

Anstatt PDFs zusammenzuführen, können Sie ein Dokument in mehrere PDFs aufteilen. Diese Aktion ist nützlich, wenn Sie verschiedene PDF-Dateien erstellen möchten, um eine große Menge an Informationen oder Inhalten zu teilen. Hier ist ein Syntaxbeispiel, das zeigt, wie PDF-Dateien mithilfe der PyPDF2-Bibliothek aufgeteilt werden:

# pdf_splitting.py

aus PyPDF2 PdfFileReader, PdfFileWriter importieren

def split (übertragen, name_of_split):
pdf = PdfFileReader (Pfad)
für Seite im Bereich (pdf.getNumPages()):
pdf_writer = PdfFileWriter()
pdf_writer.addPage(pdf.getPage(page))

Ausgabe = f'{name_of_split}{Seite}.pdf’
mit open(output, ‘wb’) als output_pdf:
pdf_writer.write(output_pdf)

if __name__ == ‘__main__’:
path = ‘Jupyter_Notebook_An_Introduction.pdf’
split(path, ‘jupyter_page’)

5. Fügen Sie Wasserzeichen hinzu

Wasserzeichen sind Muster und Bilder, die Sie Dokumentseiten hinzufügen, um sie erkennbar zu machen. Sie können Wasserzeichen mit der Funktion „create_watermark“ hinzufügen. Diese Funktion benötigt drei Argumente, darunter „input_pdf“ für den Pfad zu der Datei, die Sie mit einem Wasserzeichen versehen möchten, „output“ für den Pfad, in dem Sie die mit Wasserzeichen versehene Version der PDF-Datei speichern möchten, und das Wasserzeichenbild oder den Wasserzeichentext selbst. Hier ist eine Beispielsyntax:

# pdf_watermarker.py

aus PyPDF2 PdfFileWriter, PdfFileReader importieren

def create_watermark(input_pdf, Ausgabe, Wasserzeichen):
watermark_obj = PdfFileReader(Wasserzeichen)
Watermark_page = Watermark_obj.getPage(0)

pdf_reader = PdfFileReader (input_pdf)
pdf_writer = PdfFileWriter()

# Wasserzeichen auf allen Seiten
für Seite im Bereich (pdf_reader.getNumPages()):
page = pdf_reader.getPage(page)
page.mergePage(watermark_page)
pdf_writer.addPage(Seite)

mit open(output, ‘wb’) als Ausgabe:
pdf_writer.write(beendet)

if __name__ == ‘__main__’:
create_watermark(
input_pdf=’Jupyter_Notebook_An_Introduction.pdf’,
Ausgabe = ‘watermarked_notebook.pdf’,
wasserzeichen=’watermark.pdf’)

6. Verschlüsseln Sie das PDF

Mit der PyPDF2-Bibliothek können Sie eine PDF-Datei mit einem Passwort verschlüsseln. Während Sie für ein Dokument keine Berechtigungen festlegen können, können Sie ein Besitzerkennwort hinzufügen und sich selbst Administratorrechte für das gesamte PDF erteilen. Hier ist ein Beispiel für die Syntax mit den Funktionen „add_encryption“ und „.encrypt()“:

# pdf_encrypt.py

aus PyPDF2 PdfFileWriter, PdfFileReader importieren

def add_encryption (input_pdf, output_pdf, parol):
pdf_writer = PdfFileWriter()
pdf_reader = PdfFileReader (input_pdf)

für Seite im Bereich (pdf_reader.getNumPages()):
pdf_writer.addPage(pdf_reader.getPage(page))

pdf_writer.encrypt (user_pwd = parol,owner_pwd = nicht,
use_128bit = True)

mit open(output_pdf, ‘wb’) wie fh:
pdf_writer.write(fh)

if __name__ == ‘__main__’:
add_encryption(input_pdf=’reportlab-sample.pdf’,
Output_pdf=’reportlab-encrypted.pdf’,
Passwort=’zwei Fische’

7. Bilder extrahieren und hinzufügen

Mit den Bibliotheken PyMuPDF und Fitz können Sie Bilder aus einer PDF-Datei extrahieren. Sie können diese Bibliotheken installieren, indem Sie „pip install pymupdf“ und „pip install fitz“ in die Befehlszeile eingeben. Hier ist eine Beispielsyntax, die zeigt, wie Bilder extrahiert werden:

# PiMuPDF
Fitz importieren
io importieren
aus PIL-Importbild

# Pfad zu unserer Eingabedatei
pdf_file = „form.pdf“

# PDF-Datei eingeben
pdf_file = fitz.open(pdf_file)

für page_no in range(len(pdf_file)):
curr_page = pdf_page(page_no)
Bilder = curr_page.getImageList()

für image_no, Bild in enum (curr_page.getImageList()):
# XREF-Bilder abrufen
externer Link = Bild(0)
# Bildbytes extrahieren
curr_image = pdf_file.extractImage(externer Link)
img_bytes = current_image(“image”)
# Bilderweiterung abrufen
img_extension = current_image(“ext”)
# lade es in PIL
image = Image.open(io.BytesIO(img_bytes))
# Auf lokaler Festplatte speichern
image.save(open(f“page{page_no+1}_img{image_no}. {img_extension}“, „wb“))

Hier ist eine Beispielsyntax zum Hinzufügen eines Bildes zu einer PDF-Datei:

aus reportlab.lib.pagesizes LETTER importieren
aus reportlab.pdfgen.canvas Canvas-Import

Canvas = Canvas(„add_image.pdf“, Seitengröße=LETTER)
canvas.drawInlineImage(“x.jpeg”, 100, 450)

canvas.save()

8. URLs extrahieren

Wenn Sie URLs aus einer PDF-Datei extrahieren möchten, bietet Python die pdfx-Bibliothek, die Sie für diese Aufgabe verwenden können. Installieren Sie das pdfx-Modul, indem Sie den Befehl „pip install pdfx“ eingeben. Sobald die Bibliothek installiert ist, können Sie mit dem Extrahieren beginnen. Hier ist eine Beispielsyntax, die zeigt, wie URLs extrahiert werden:

pdfx importieren
# PDF-Datei lesen
pdf = pdfx.PDFx(“template.pdf”)
# Holen Sie sich eine Liste von URLs
lesen (pdf.get_references_as_dict())

9. Text auswählen

Um Text in einer PDF-Datei hervorzuheben, laden Sie die Fitz-Bibliothek herunter, die Ihnen bei der Erledigung der Aufgabe hilft. Sobald die Fitz-Bibliothek installiert ist, können Sie loslegen. Hier ist eine Beispielsyntax, die zeigt, wie Text hervorgehoben wird:

Fitz importieren

# PDF-Datei öffnen
pdf_file = fitz.open(“sample.pdf”)

# Geben Sie den Text ein, der hervorgehoben werden soll
text = „Empfehlenswert“

# Durch die Seiten blättern, um den eingegebenen Satz hervorzuheben
für eine Seite in pdf_file:
match_words = page.searchFor(text)

für ein Wort in match_words:
Highlight = page.addHighlightAnnot(word)
hervorheben.update()

# PDF-Datei unter „selection.pdf“ speichern
pdf_file.save(“ausgewählt.pdf”)

Bitte beachten Sie, dass das in diesem Artikel erwähnte Unternehmen nicht mit Indeed verbunden ist.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert