Zum Fußzeileninhalt springen
PYTHON-PDF-TOOLS

Wie man mit Python eine PDF-Datei erstellt

Das PDF (Portable Document Format) ist das beliebteste digitale Dateiformat zum Senden und Empfangen von Daten online. Es wird hauptsächlich verwendet, um die Datenformatierung zu erhalten und die Daten mit einem verschlüsselten Passwort zu sichern. Die .pdf-Erweiterung ist unabhängig von Softwareanwendungen, Hardware oder Betriebssystemen.

In diesem Artikel werden wir eine PDF-Datei in der Programmiersprache Python erstellen. Es gibt eine Reihe von Online-Optionen, aber hier werden wir eine Python-Bibliothek verwenden, um PDF-Dateien zu erstellen. Im Folgenden sind die beiden berühmten Bibliotheken zur Erstellung von PDF-Dokumenten mit einer oder mehreren Seiten in Python aufgeführt:

  1. Reportlab
  2. PDFKit

Von den oben genannten PDF-Python-Bibliotheken können wir jede verwenden, um PDFs zu erstellen.

Wie erstelle ich eine PDF-Datei in Python?

Werfen wir einen Blick auf beide Bibliotheken nacheinander.

Erstellen von PDF-Dateien mit der Reportlab-Bibliothek

Reportlab-Bibliothek ist ein kostenloses Open-Source-PDF-Toolkit, mit dem man einfach PDF-Dateien erstellen kann. Es bietet eine Vielzahl von Zeichenwerkzeugen zum Hinzufügen von Bildern und Text an bestimmten Positionen auf mehreren Seiten. Sie können auch verschlüsselte PDF-Dateien mit der Methode encryptCanvas erstellen.

Installation

Um Reportlab zu installieren, wird der pip-Paketmanager benötigt. Er lädt automatisch das angeforderte Paket herunter und installiert es mit dem pip-Befehl. Geben Sie einfach den folgenden Befehl im Windows-Cmd oder PowerShell ein:

pip install reportlab
pip install reportlab
SHELL

Hinweis: Beim Installieren von Python muss es der Pfadenvironment-Variable hinzugefügt werden, um den obigen Befehl von überall im Cmd oder PowerShell ausführen zu können. Es wird empfohlen, Pip für Python 3+ zu verwenden, da es sich um die aktualisierte Version handelt.

Öffnen Sie eine neue Python-Datei

Um die Reportlab-Bibliothek zu verwenden, müssen wir den Code in einer Python-Datei schreiben und ausführen, um PDF-Dateien zu erstellen.

  1. Suchen und öffnen Sie die Python-Standard-IDLE-Shell über die Windows-Suchleiste und drücken Sie Strg + N oder wählen Sie "Neue Datei" aus der Registerkarte Datei. Dies öffnet den Texteditor zum Schreiben des Codes.
  2. Speichern Sie als nächstes die Datei mit dem entsprechenden Namen. Ich nenne sie "createpdf.py".

Python-Code zum Erstellen von PDF

Der folgende Code wird Dokumentelemente zeichnen und innerhalb von Sekunden ein PDF erzeugen:

# Importing required modules from ReportLab
from reportlab.pdfgen import canvas
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
from reportlab.lib import colors

# File and document attributes
fileName = 'sample.pdf'
documentTitle = 'sample'
title = 'Create PDF'
subTitle = 'Using ReportLab !!'

# Creating a PDF object
pdf = canvas.Canvas(fileName)

# Setting the title of the document
pdf.setTitle(documentTitle)

# Registering a TrueType font
pdfmetrics.registerFont(TTFont('abc', 'Arial.ttf'))

# Creating the title by setting its font and placing it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)

# Creating the subtitle by setting its font, color, and placing it on the canvas
pdf.setFillColorRGB(0, 0, 255)  # Set color to blue
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)

# Saving the PDF
pdf.save()
# Importing required modules from ReportLab
from reportlab.pdfgen import canvas
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
from reportlab.lib import colors

# File and document attributes
fileName = 'sample.pdf'
documentTitle = 'sample'
title = 'Create PDF'
subTitle = 'Using ReportLab !!'

# Creating a PDF object
pdf = canvas.Canvas(fileName)

# Setting the title of the document
pdf.setTitle(documentTitle)

# Registering a TrueType font
pdfmetrics.registerFont(TTFont('abc', 'Arial.ttf'))

# Creating the title by setting its font and placing it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)

# Creating the subtitle by setting its font, color, and placing it on the canvas
pdf.setFillColorRGB(0, 0, 255)  # Set color to blue
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)

# Saving the PDF
pdf.save()
PYTHON

Codeerklärung

Nach dem Importieren aller Module und Pakete haben wir zunächst alle Inhalte initialisiert, die in eine PDF-Datei geschrieben werden sollen.

fileName = 'sample.pdf'
documentTitle = 'sample'
title = 'Create PDF'
subTitle = 'Using ReportLab !!'
fileName = 'sample.pdf'
documentTitle = 'sample'
title = 'Create PDF'
subTitle = 'Using ReportLab !!'
PYTHON

Nun erstellen wir die PDF-Leinwand, setzen den Dokumenttitel und fügen dann einen zentrierten Titel und Untertitel auf der Leinwand mit entsprechenden Schriftarten und Größen hinzu.

# Creating a PDF object
pdf = canvas.Canvas(fileName)

# Setting the title of the document
pdf.setTitle(documentTitle)

# Registering a TrueType font
pdfmetrics.registerFont(TTFont('abc', 'Arial.ttf'))

# Creating the title by setting its font and placing it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)

# Creating the subtitle by setting its font, color, and placing it on the canvas
pdf.setFillColorRGB(0, 0, 255)  # Set color to blue
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)
# Creating a PDF object
pdf = canvas.Canvas(fileName)

# Setting the title of the document
pdf.setTitle(documentTitle)

# Registering a TrueType font
pdfmetrics.registerFont(TTFont('abc', 'Arial.ttf'))

# Creating the title by setting its font and placing it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)

# Creating the subtitle by setting its font, color, and placing it on the canvas
pdf.setFillColorRGB(0, 0, 255)  # Set color to blue
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)
PYTHON

Schließlich speichern wir die PDF-Datei, wenn alles auf der Leinwand gezeichnet ist.

# Saving the PDF
pdf.save()
# Saving the PDF
pdf.save()
PYTHON

Wir können auch die Methoden drawString und drawText verwenden, um eine einfache PDF-Datei mit Reportlab in Python zu erstellen.

Erstellen von PDF-Dateien mit der PDFKit-Bibliothek

Die PDFKit-Bibliothek ist eine der besten Ansätze, wenn es darum geht, PDF-Dateien in Python zu erstellen. Es kann PDF-Dateien mit HTML-Code erstellen. Sie können einfache und komplexe HTML-Dateien oder HTML von URLs zu einer pixelgenauen druckbaren PDF-Seite rendern. Allerdings integriert PDFKit die Funktionen von wkhtmltopdf, um HTML in PDF zu konvertieren. Um wkhtmltopdf für Windows, Linux und Mac zu installieren, besuchen Sie diesen Link.

Hinweis: Unter Windows-OS wird wkhtmltopdf in den Programmdateien installiert.

Installation

Verwenden Sie den folgenden Befehl, um PDFKit zu installieren:

pip install pdfkit
pip install pdfkit
SHELL

Erstellen von PDF-Dateien aus URL

Das Erstellen von PDF-Dateien mit PDFKit ist sehr einfach und ein Einzeiler-Prozess.

import pdfkit

# Convert a webpage from a URL to a PDF file
pdfkit.from_url('http://google.com', 'out.pdf')
import pdfkit

# Convert a webpage from a URL to a PDF file
pdfkit.from_url('http://google.com', 'out.pdf')
PYTHON

Erstellen von PDF-Dateien aus HTML-Dateien

import pdfkit

# Convert an HTML file to a PDF file
pdfkit.from_file('index.html', 'out.pdf')
import pdfkit

# Convert an HTML file to a PDF file
pdfkit.from_file('index.html', 'out.pdf')
PYTHON

Erstellen von PDF-Dateien aus HTML-Vorlagen

Sie können HTML-Vorlagen als String übergeben, um sie als Ausgabedatei in ein PDF zu konvertieren.

import pdfkit

# HTML content to convert to PDF
html_string = """
    <html>
        <head>
        <meta name="pdfkit-page-size" content="Legal"/>
        <meta name="pdfkit-orientation" content="Landscape"/>
        </head>
        <body>Hello World!</body>
    </html>
    """

# Convert HTML string to a PDF file
pdfkit.from_string(html_string, 'out.pdf')
import pdfkit

# HTML content to convert to PDF
html_string = """
    <html>
        <head>
        <meta name="pdfkit-page-size" content="Legal"/>
        <meta name="pdfkit-orientation" content="Landscape"/>
        </head>
        <body>Hello World!</body>
    </html>
    """

# Convert HTML string to a PDF file
pdfkit.from_string(html_string, 'out.pdf')
PYTHON

PDFKit ermöglicht es Ihnen, einfach PDFs in Python mit HTML-Vorlagen zu erstellen.

Die IronPDF-Bibliothek

IronPDF is a useful tool to PDF-Dateien zu erstellen in .NET-Projekten. Eine häufige Nutzung dieser Bibliothek ist das Rendern von "HTML zu PDF", bei dem HTML als Design-Sprache zum Rendern eines PDF-Dokuments verwendet wird.

IronPDF verwendet eine .NET Chromium-Engine, um HTML-Seiten in PDF-Dateien zu rendern. Bei der HTML-zu-PDF-Konvertierung besteht keine Notwendigkeit, komplexe APIs zur Positionierung oder Gestaltung von PDFs zu verwenden. IronPDF unterstützt auch alle standardmäßigen Webtechnologien: HTML, ASPX, JS, CSS und Bilder.

Es ermöglicht Ihnen auch, eine .NET-PDF-Bibliothek mit HTML5, CSS, JavaScript und Bildern zu erstellen. Sie können mühelos Stempel, Kopf- und Fußzeilen zu einem PDF hinzufügen und bearbeiten. Darüber hinaus macht es das sehr einfach, PDF-Text zu lesen und Bilder zu extrahieren.

Um mit IronPDF zu beginnen, müssen Sie das NuGet-Paket installieren (stellen Sie sicher, dass dieser Schritt authentifiziert ist oder in einer .NET-Entwicklungsumgebung ausgeführt wird):

pip install ironpdf

Das folgende Beispiel hilft Ihnen, ein PDF direkt von einer URL zu erstellen:

from ironpdf import ChromePdfRenderer

# Instantiate Renderer
renderer = ChromePdfRenderer()

# Create a PDF from a URL
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/")

# Export to a file
pdf.SaveAs("url.pdf")
from ironpdf import ChromePdfRenderer

# Instantiate Renderer
renderer = ChromePdfRenderer()

# Create a PDF from a URL
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/")

# Export to a file
pdf.SaveAs("url.pdf")
PYTHON

Der folgende Code hilft Ihnen, eine PDF-Datei aus HTML-Code zusammen mit jedem CSS oder JavaScript zu erstellen:

from ironpdf import ChromePdfRenderer

# Instantiate Renderer
renderer = ChromePdfRenderer()

# Create a PDF from an HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")

# Export to a file
pdf.SaveAs("output.pdf")

# Advanced Example with HTML Assets
# Load external HTML assets: Images, CSS, and JavaScript.
# An optional BasePath is set as the file location to load assets from
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", base_path=r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
from ironpdf import ChromePdfRenderer

# Instantiate Renderer
renderer = ChromePdfRenderer()

# Create a PDF from an HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")

# Export to a file
pdf.SaveAs("output.pdf")

# Advanced Example with HTML Assets
# Load external HTML assets: Images, CSS, and JavaScript.
# An optional BasePath is set as the file location to load assets from
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", base_path=r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
PYTHON

Sie können aus dem obigen Code sehen, dass er ziemlich einfach und sauber ist. Es sind nur wenige Codezeilen erforderlich, um eine PDF-Datei aus HTML-Code zu erstellen. Es ist eine schnelle, zuverlässige und zeitsparende Lösung mit genauen Ergebnissen.

Laden Sie IronPDF herunter und probieren Sie es kostenlos aus. Nach der Testphase beginnen die Lizenzen bei $799.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen