Bibliotecă de conversie Python HTML în PDF cu sursă deschisă
Încercați această bibliotecă Python gratuită și cu sursă deschisă pentru a converti documente HTML în PDF.
Ce este xhtml2pdf?
Xhtml2pdf este o bibliotecă Python open source concepută pentru conversia conținutului HTML în documente PDF, cu un accent principal pe păstrarea structurii și stilului original. Această bibliotecă puternică convertește fără probleme paginile web în PDF-uri profesionale pregătite pentru imprimare.
GitHub Stats
Name: xhtml2pdfLanguage: Python
Stars: 2.3K
Forks: 649
License: Apache License 2.0
Repository was last updated at 2025-04-13
Noțiuni introductive cu xhtml2pdf
Aveți nevoie de versiunea Python 3.8.0 sau mai mare pentru a instala și utiliza xhtml2pdf. Deci, mai întâi instalați Python și apoi utilizați comenzile de mai jos pentru a instala xhtml2pdf pe computer folosind pip și mediu virtual.
Linux
python -m venv env
. env/bin/activate
pip install xhtml2pdf
MacOS
python -m venv env
. env/bin/activate
pip install xhtml2pdf
Windows
python -m venv env
.\env\Scripts\activate
pip install xhtml2pdf
Conversia șirului HTML în document PDF
Putem converti un șir HTML într-un document PDF folosind biblioteca xhtml2pdf. Stocăm conținutul HTML complet într-o variabilă și apoi trecem acea variabilă la funcția pisa.CreatePDF(html_content, dest, encoding). Această metodă ne oferă conținutul PDF în care hyperlinkurile, imaginile și alte elemente sunt gestionate într-un obiect BytesIO pe care l-am transmis. În cele din urmă, creăm un fișier PDF folosind datele stocate în obiectul BytesIO. Verificați fragmentul de cod de mai jos pentru detalii:
# Import the pisa module from the xhtml2pdf library | |
from xhtml2pdf import pisa | |
# Import the BytesIO class from the io module | |
from io import BytesIO | |
# HTML content that is to be converted to a PDF | |
html_content = """ | |
<!DOCTYPE html> | |
<html> | |
<body> | |
<h1>Example with Hyperlinks</h1> | |
<p>Visit <a href="https://www.example.com">Example</a></p> | |
</body> | |
</html> | |
""" | |
# Create a BytesIO object to store the PDF output | |
pdf_output = BytesIO() | |
# Use xhtml2pdf to convert the HTML content to a PDF and store it in pdf_output | |
pisa.CreatePDF(html_content, dest=pdf_output, encoding='utf-8') | |
# Open a PDF file for writing in binary mode | |
with open("html-to-pdf.pdf", "wb") as pdf_file: | |
# Write the PDF content to the file | |
pdf_file.write(pdf_output.getvalue()) |
Captura de ecran de mai jos afișează documentul PDF convertit din șirul HTML:
Conversia fișierului HTML în document PDF
De asemenea, putem converti un fișier HTML într-un PDF utilizând biblioteca xhtml2pdf. Citim conținutul fișierului HTML într-o variabilă și apoi trecem acea variabilă la metoda pisa.CreatePDF(html_content, dest, encoding). După aceea, urmează aceiași pași ca și în exemplul anterior pentru a crea documentul PDF folosind obiectul BytesIO, așa cum este demonstrat în fragmentul de cod de mai jos:
# Import the pisa module from the xhtml2pdf library | |
from xhtml2pdf import pisa | |
# Import the BytesIO class from the io module | |
from io import BytesIO | |
# Open the HTML file for reading | |
with open("file.html", "r", encoding="utf-8") as file: | |
# Read the content of the file and store it as a string | |
html_content = file.read() | |
# Create a BytesIO object to store the PDF output | |
pdf_output = BytesIO() | |
# Convert the HTML content to a PDF document | |
pisa.CreatePDF(html_content, dest=pdf_output, encoding='utf-8') | |
# Open a PDF file for writing in binary mode | |
with open("html-file-to-pdf.pdf", "wb") as pdf_file: | |
# Write the PDF content to the file | |
pdf_file.write(pdf_output.getvalue()) |
Captura de ecran de mai jos afișează documentul PDF care a fost convertit din fișierul HTML:
Concluzie
În rezumat, xhtml2pdf este o bibliotecă Python open-source care convertește HTML în documente PDF în timp ce gestionează hyperlinkuri, imagini și foi de stil externe. xhtml2pdf nu include biblioteci front-end în timpul conversiei HTML în PDF, așa că atunci când există variabile în HTML, cum ar fi {{name}}, acestea apar în PDF exact așa cum sunt scrise în HTML, în loc să arate valorile lor reale.
În plus, nu are suport pentru paginile dinamice care depind de JavaScript pentru a prelua conținut și nu urmează aspecte complexe specificate de CSS (de exemplu, aplică culorile, dimensiunile fonturilor etc. menționate în CSS, dar ignoră aspectul CSS). cum ar fi umplutură, margine, afișare etc). În ciuda acestor constrângeri, xhtml2pdf rămâne un instrument valoros pentru nevoile directe de conversie statică din HTML în PDF.