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:
- Reportlab
- 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 reportlabpip install reportlabUwaga: 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.
- 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.
- 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()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 !!'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)Na koniec zapisujemy plik PDF, gdy wszystko zostanie narysowane na obszarze roboczym.
# Saving the PDF
pdf.save()# Saving the PDF
pdf.save()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 pdfkitpip install pdfkitTworzenie 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')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')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')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")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")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.










