Erstellen Sie PDF-Dateien mit Python

2024-01-09 08:09:31

PDF (Portable Document Format) ist ein beliebtes Dateiformat, das häufig zum Erstellen von Rechtsdokumenten, Verträgen, Berichten, Rechnungen, Handbüchern, E-Books und mehr verwendet wird. Es bietet ein vielseitiges und zuverlässiges Format zum einheitlichen Teilen, Speichern und Präsentieren elektronischer Dokumente, unabhängig von Software, Hardware oder Betriebssystemen.

Aufgrund dieser Vorteile gewinnt die automatisierte Generierung von PDF-Dokumenten in verschiedenen Bereichen zunehmend an Bedeutung. Um den PDF-Erstellungsprozess in Python zu automatisieren, können Sie Skripte schreiben, die PDFs basierend auf bestimmten Anforderungen oder Eingabedaten generieren. Dieser Artikel enthält detaillierte Beispiele, um die Verwendung zu veranschaulichen Python zum Erstellen von PDF-Dateien programmatisch.

Python PDF Generator-Bibliothek

Um PDFs mit Python zu generieren, müssen wir die Spire.PDF for Python-Bibliothek verwenden. Es handelt sich um eine leistungsstarke Python-Bibliothek, die Funktionen zur PDF-Generierung und -Verarbeitung bietet. Damit können wir mit Python PDFs von Grund auf erstellen und verschiedene PDF-Elemente zu PDF-Seiten hinzufügen.

Um die Python-PDF-Generator-Bibliothek zu installieren, verwenden Sie einfach den folgenden pip-Befehl zur Installation von PyPI:

pip install Spire.PDF

Hintergrundwissen

Bevor wir beginnen, lernen wir einige Hintergrundinformationen zum Erstellen einer PDF-Datei mit der Bibliothek Spire.PDF for Python kennen.

PDF-Seite: Eine Seite in Spire.PDF for Python wird durch die Klasse PdfPageBase dargestellt, die aus einem Clientbereich und Rändern rundherum besteht. Der Inhaltsbereich dient dem Benutzer zum Schreiben verschiedener Inhalte, und die Ränder sind normalerweise leere Kanten.

Koordinatensystem: Wie in der Abbildung unten dargestellt, befindet sich der Ursprung des Koordinatensystems auf der Seite in der oberen linken Ecke des Clientbereichs, wobei die x-Achse horizontal nach rechts und die y-Achse vertikal nach unten verläuft. Alle zum Clientbereich hinzugefügten Elemente basieren auf den angegebenen X- und Y-Koordinaten.

Create PDF Files with Python

Klassen und Methoden: Die folgende Tabelle listet einige der Kernklassen und Methoden auf, die zum Erstellen von PDFs in Python verwendet werden.

Mitglied Beschreibung
PDFDocument-Klasse Stellt ein PDF-Dokumentmodell dar.
PDFPageBase-Klasse Stellt eine Seite in einem PDF-Dokument dar.
PdfSolidBrush-Klasse Stellt einen Pinsel dar, der jedes Objekt mit einer Volltonfarbe füllt.
PdfTrueTypeFont-Klasse Stellt eine True-Type-Schriftart dar.
PdfStringFormat-Klasse Stellt Informationen zum Textformat dar, z. B. Ausrichtung, Zeichenabstand und Einzug.
PDFTextWidget-Klasse Stellt den Textbereich dar, der sich über mehrere Seiten erstrecken kann.
PDFTextLayout-Klasse Stellt die Textlayoutinformationen dar.
PdfDocument.Pages.Add()-Methode Fügt eine Seite zu einem PDF-Dokument hinzu.
PdfPageBase.Canvas.DrawString()-Methode Zeichnet eine Zeichenfolge an der angegebenen Stelle auf einer Seite mit angegebenen Schriftart- und Pinselobjekten.
PdfPageBase.Canvas.DrawImage()-Methode Zeichnet ein Bild an einer angegebenen Stelle auf einer Seite.
PDFTextWidget.Draw()-Methode Zeichnet das Text-Widget an der angegebenen Stelle auf einer Seite.
PdfDocument.SaveToFile()-Methode Speichert das Dokument in einer PDF-Datei.

So erstellen Sie PDFs mit Python

Im Folgenden sind die Hauptschritte zum Erstellen von PDF-Dateien in Python aufgeführt:

  • Installieren Sie Spire.PDF for Python.
  • Module importieren.
  • Erstellen Sie ein PDF-Dokument über die PdfDocument-Klasse.
  • Fügen Sie mit der Methode PdfDocument.Pages.Add() eine Seite zum PDF hinzu und geben Sie ein Objekt der Klasse PdfPageBase zurück.
  • Erstellen Sie den gewünschten PDF-Pinsel und die gewünschte Schriftart.
  • Zeichnen Sie eine Textzeichenfolge oder ein Text-Widget an einer angegebenen Koordinate auf der PDF-Seite mit der Methode PdfPageBase.Canvas.DrawString() oder PdfTextWidget.Draw().
  • Speichern Sie das PDF-Dokument mit der Methode PdfDocument.SaveToFile().

Python zum Erstellen von PDF-Dateien von Grund auf

Das folgende Codebeispiel zeigt, wie Sie mit Python eine PDF-Datei erstellen und Text und Bilder einfügen. Mit Spire.PDF for Python können Sie auch andere PDF-Elemente einfügen, z Listen, Hyperlinks, Formulare und Stempel.

  • Python
from spire.pdf.common import *
from spire.pdf import *

# Create a pdf document
pdf = PdfDocument()

# Add a page to the PDF
page = pdf.Pages.Add()

# Specify title text and paragraph content
titleText = "Spire.PDF for Python"
paraText = "Spire.PDF for Python is a professional PDF development component that enables developers to create, read, edit, convert, and save PDF files in Python programs without depending on any external applications or libraries. This Python PDF class library provides developers with various functions to create PDF files from scratch or process existing PDF documents completely through Python programs."

# Create solid brushes
titleBrush = PdfSolidBrush(PdfRGBColor(Color.get_Blue()))
paraBrush = PdfSolidBrush(PdfRGBColor(Color.get_Black()))

# Create fonts
titleFont = PdfFont(PdfFontFamily.Helvetica, 14.0, PdfFontStyle.Bold)
paraFont = PdfTrueTypeFont("Arial", 12.0, PdfFontStyle.Regular, True)

# Set the text alignment
textAlignment = PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle)

# Draw title on the page
page.Canvas.DrawString(titleText, titleFont, titleBrush, page.Canvas.ClientSize.Width / 2, 40.0, textAlignment)

# Create a PdfTextWidget object to hold the paragraph content
textWidget = PdfTextWidget(paraText, paraFont, paraBrush)

# Create a rectangle where the paragraph content will be placed
rect = RectangleF(PointF(0.0, 50.0), page.Canvas.ClientSize)

# Set the text layout
textLayout = PdfTextLayout()
textLayout.Layout = PdfLayoutType.Paginate

# Draw the widget on the page
textWidget.Draw(page, rect, textLayout)

# Load an image
image = PdfImage.FromFile("Python.png")

# Draw the image at a specified location on the page
page.Canvas.DrawImage(image, 12.0, 130.0)

#Save the PDF document
pdf.SaveToFile("CreatePDF.pdf")
pdf.Close()

Create PDF Files with Python

Python zum Generieren von PDF aus einer Textdatei

Das folgende Codebeispiel zeigt den Prozess des Lesens von Text aus einer TXT-Datei und dessen Zeichnen an einer bestimmten Stelle auf einer PDF-Seite.

  • Python
from spire.pdf.common import *
from spire.pdf import *

def ReadFromTxt(fname: str) -> str:
    with open(fname, 'r') as f:
        text = f.read()
    return text

# Create a pdf document
pdf = PdfDocument()

# Add a page to the PDF
page = pdf.Pages.Add(PdfPageSize.A4(), PdfMargins(20.0, 20.0))

# Create a PdfFont and brush
font = PdfFont(PdfFontFamily.TimesRoman, 12.0)
brush = PdfBrushes.get_Black()

# Get content from a .txt file
text = ReadFromTxt("text.txt")

# Create a PdfTextWidget object to hold the text content
textWidget = PdfTextWidget(text, font, brush)

# Create a rectangle where the text content will be placed
rect = RectangleF(PointF(0.0, 50.0), page.Canvas.ClientSize)

# Set the text layout
textLayout = PdfTextLayout()
textLayout.Layout = PdfLayoutType.Paginate

# Draw the widget on the page
textWidget.Draw(page, rect, textLayout)

# Save the generated PDF file
pdf.SaveToFile("GeneratePdfFromText.pdf", FileFormat.PDF)
pdf.Close()

Create PDF Files with Python

Python zum Erstellen eines mehrspaltigen PDF

Mehrspaltige PDFs werden häufig in Zeitschriften oder Zeitungen verwendet. Das folgende Codebeispiel zeigt den Prozess der Erstellung einer zweispaltigen PDF-Datei durch Zeichnen von Text in zwei separaten rechteckigen Bereichen auf einer PDF-Seite.

  • Python
from spire.pdf.common import *
from spire.pdf import *

# Creates a PDF document
pdf = PdfDocument()

# Add a page to the PDF
page = pdf.Pages.Add()

# Define paragraph text
s1 = "Databases allow access to various services which, in turn, allow you to access your accounts and perform transactions all across the internet. " + "For example, your bank's login page will ping a database to figure out if you've entered the right password and username. " + "Your favorite online shop pings your credit card's database to pull down the funds needed to buy that item you've been eyeing."
s2 = "Databases make research and data analysis much easier because they are highly structured storage areas of data and information. " + "This means businesses and organizations can easily analyze databases once they know how a database is structured. " + "Common structures and common database querying languages (e.g., SQL) make database analysis easy and efficient."

# Get width and height of page
pageWidth = page.GetClientSize().Width
pageHeight = page.GetClientSize().Height

# Create a PDF font and brush
font = PdfFont(PdfFontFamily.TimesRoman, 12.0)
brush = PdfBrushes.get_Black()

# Set the text alignment
format = PdfStringFormat(PdfTextAlignment.Left)

# Draws text at a specified location on the page
page.Canvas.DrawString(s1, font, brush, RectangleF(10.0, 20.0, pageWidth / 2 - 8, pageHeight), format)
page.Canvas.DrawString(s2, font, brush, RectangleF(pageWidth / 2 + 8, 20.0, pageWidth / 2 - 8, pageHeight), format)

# Save the PDF document
pdf.SaveToFile("CreateTwoColumnPDF.pdf")
pdf.Close()

Create PDF Files with Python

Kostenlose Lizenz zum Erstellen von PDFs in Python

Du kannst Holen Sie sich eine kostenlose temporäre Lizenz von Spire.PDF for Python zum Generieren von PDF-Dokumenten ohne Wasserzeichen und Einschränkungen.

Abschluss

In diesem Blogbeitrag finden Sie eine Schritt-für-Schritt-Anleitung zum Erstellen von PDF-Dateien basierend auf dem in der Spire.PDF for Python-Bibliothek definierten Koordinatensystem. In den Codebeispielen erfahren Sie mehr über den Prozess und die Methoden zum Einfügen von Text und Bildern in PDFs und zum Konvertieren von TXT-Dateien in PDFs. Wenn Sie andere PDF-Verarbeitungs- und Konvertierungsfunktionen der Python PDF-Bibliothek erkunden möchten, können Sie sich diese ansehen Online-Dokumentation.

Bei Problemen während der Nutzung wenden Sie sich bitte per E-Mail oder Forum an unser technisches Support-Team. E-Mail oder Forum.

Siehe auch