Przejdź do treści stopki
NARZęDZIA PDF DLA JęZYKA PYTHON

Jak utworzyć plik PDF w języku Python

PDF (Portable Document Format) to najpopularniejszy format plików cyfrowych służący do wysyłania i odbierania danych online. Jest on używany głównie w celu zachowania formatowania danych oraz zabezpieczenia ich za pomocą zaszyfrowanego hasła. Rozszerzenie PDF jest niezależne od aplikacji, sprzętu lub systemów operacyjnych.

W tym artykule stworzymy plik PDF w języku programowania Python. Dostępnych jest wiele opcji online, ale w tym przypadku użyjemy biblioteki Python do tworzenia plików PDF. Poniżej przedstawiono dwie znane biblioteki służące do generowania dokumentów PDF zawierających jedną lub wiele stron w języku Python:

  1. Reportlab
  2. PDFKit

Spośród wyżej wymienionych bibliotek Python do obsługi plików PDF możemy użyć dowolnej z nich do generowania plików PDF.

Jak utworzyć plik PDF w języku Python?

Przyjrzyjmy się obu bibliotekom po kolei.

Tworzenie plików PDF przy użyciu biblioteki Reportlab

Biblioteka Reportlab to darmowy zestaw narzędzi open source do obsługi plików PDF, który pozwala w łatwy sposób tworzyć pliki PDF. Oferuje szereg narzędzi do rysowania, umożliwiających dodawanie obrazów i tekstu w określonym miejscu na wielu stronach. Można również tworzyć zaszyfrowane pliki PDF przy użyciu metody encryptCanvas.

Instalacja

Aby zainstalować Reportlab, wymagany jest menedżer pakietów pip. Automatycznie pobiera i instaluje żądany pakiet za pomocą polecenia pip. Wystarczy wpisać następujące polecenie w oknie cmd systemu Windows lub w PowerShell:

pip install reportlab
pip install reportlab
SHELL

Uwaga: Podczas instalacji Pythona należy dodać go do zmiennej środowiskowej ścieżki, aby móc wykonać powyższe polecenie z dowolnego miejsca w cmd lub PowerShell. Zaleca się stosowanie Pip dla Python 3+, ponieważ jest to zaktualizowana wersja.

Otwórz nowy plik Python

Aby korzystać z biblioteki Reportlab, musimy napisać kod w pliku Python i uruchomić go w celu utworzenia plików PDF.

  1. Wyszukaj i otwórz domyślną powłokę IDLE języka Python za pomocą paska wyszukiwania systemu Windows, a następnie naciśnij klawisze Ctrl + N lub wybierz opcję "Nowy plik" z karty Plik. Spowoduje to otwarcie edytora tekstu do pisania kodu.
  2. Następnie zapisz plik pod odpowiednią nazwą. Nazywam to "createpdf.py".

Kod w języku Python do tworzenia plików PDF

Poniższy kod narysuje elementy dokumentu i wygeneruje plik PDF w ciągu kilku sekund:

# 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

Wyjaśnienie kodu

Po zaimportowaniu wszystkich modułów i pakietów najpierw zainicjowaliśmy całą zawartość, która zostanie zapisana w pliku PDF.

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

Teraz tworzymy obszar roboczy PDF, ustalamy tytuł dokumentu, a następnie dodajemy wyśrodkowany tytuł i podtytuł na obszarze roboczym, używając odpowiednich czcionek i rozmiarów.

# 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

Na koniec zapisujemy plik PDF, gdy wszystko zostanie narysowane na obszarze roboczym.

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

Możemy również użyć metod drawString i drawText do utworzenia prostego pliku PDF przy użyciu biblioteki Reportlab w języku Python.

Tworzenie plików PDF przy użyciu biblioteki PDFKit

Biblioteka PDFKit jest jednym z najlepszych rozwiązań do tworzenia plików PDF w języku Python. Może tworzyć pliki PDF przy użyciu kodu HTML. Możesz renderować proste i złożone pliki HTML lub HTML z adresów URL do idealnej, gotowej do druku strony PDF. Jednak PDFKit integruje funkcje wkhtmltopdf do konwersji HTML na PDF. Aby zainstalować wkhtmltopdf na systemach Windows, Linux i Mac, odwiedź tę stronę.

Uwaga: W systemie operacyjnym Windows wkhtmltopdf zostanie zainstalowany w folderze Program Files.

Instalacja

Użyj następującego polecenia, aby zainstalować PDFKit:

pip install pdfkit
pip install pdfkit
SHELL

Tworzenie plików PDF z adresów URL

Tworzenie plików PDF za pomocą PDFKit jest bardzo proste i wymaga zaledwie jednej linii kodu.

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

Tworzenie plików PDF z plików HTML

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

Tworzenie plików PDF z szablonów HTML

Szablony HTML można przekazać jako ciąg znaków, aby przekonwertować je na plik PDF jako plik wyjściowy.

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 pozwala w prosty sposób tworzyć pliki PDF w języku Python przy użyciu szablonów HTML.

Biblioteka IronPDF

IronPDF to przydatne narzędzie do tworzenia plików PDF w projektach .NET. Typowym zastosowaniem tej biblioteki jest renderowanie "HTML do PDF", gdzie HTML służy jako język projektowania do renderowania dokumentu PDF.

IronPDF wykorzystuje silnik .NET Chromium do renderowania stron HTML do plików PDF. Dzięki konwersji HTML do PDF nie ma potrzeby korzystania ze skomplikowanych interfejsów API do pozycjonowania lub projektowania plików PDF. IronPDF obsługuje również wszystkie standardowe technologie stron internetowych: HTML, ASPX, JS, CSS oraz obrazy.

Umożliwia również tworzenie biblioteki PDF .NET przy użyciu HTML5, CSS, JavaScript i obrazów. Możesz bez wysiłku edytować, stemplować oraz dodawać nagłówki i stopki do plików PDF. Ponadto bardzo ułatwia to odczytywanie tekstu z plików PDF i wyodrębnianie obrazów.

Aby rozpocząć pracę z IronPDF, należy zainstalować pakiet NuGet (upewnij się, że ten krok jest uwierzytelniony lub uruchomiony w środowisku programistycznym .NET):

pip install ironpdf

Poniższy przykład pomoże Ci utworzyć plik PDF bezpośrednio z adresu URL:

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

Poniższy kod pomoże Ci utworzyć plik PDF z kodu HTML wraz z dowolnym kodem CSS lub JavaScript:

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

Jak widać na powyższym kodzie, jest on dość prosty i przejrzysty. Do utworzenia pliku PDF z kodu HTML potrzeba zaledwie kilku wierszy kodu. To szybkie, niezawodne i oszczędzające czas rozwiązanie, zapewniające dokładne wyniki.

Pobierz IronPDF i wypróbuj go za darmo. Po okresie próbnym cena licencji zaczyna się od $799.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie