Tabla de contenido
Instalar con Pip
pip install Spire.PDF
enlaces relacionados
PDF (Formato de documento portátil) es un formato de archivo popular ampliamente utilizado para generar documentos legales, contratos, informes, facturas, manuales, libros electrónicos y más. Proporciona un formato versátil y confiable para compartir, almacenar y presentar documentos electrónicos de manera consistente, independientemente de cualquier software, hardware o sistema operativo.
Dadas estas ventajas, la generación automatizada de documentos PDF está adquiriendo cada vez más importancia en diversos campos. Para automatizar el proceso de creación de PDF en Python, puede escribir scripts que generen archivos PDF en función de requisitos específicos o datos de entrada. Este artículo proporcionará ejemplos detallados para demostrar cómo utilizar Python para crear archivos PDF programáticamente.
- Cómo crear PDF usando Python
- Python para crear archivos PDF desde cero
- Python para generar PDF a partir de un archivo de texto
- Python para crear un PDF de varias columnas
Biblioteca generadora de PDF de Python
Para generar PDF usando Python, necesitaremos usar la biblioteca Spire.PDF for Python. Es una potente biblioteca de Python que proporciona capacidades de generación y procesamiento de PDF. Con él, podemos usar Python para crear archivos PDF desde cero y agregar varios elementos PDF a las páginas PDF.
Para instalar la biblioteca del generador de PDF de Python, simplemente use el siguiente comando pip para instalar desde PyPI:
pip install Spire.PDF
Conocimiento de fondo
Antes de comenzar, aprendamos algunos antecedentes sobre cómo crear un archivo PDF usando la biblioteca Spire.PDF for Python.
Página PDF: una página en Spire.PDF for Python está representada por la clase PdfPageBase, que consta de un área de cliente y márgenes alrededor. El área de contenido es para que los usuarios escriban diversos contenidos y los márgenes suelen ser bordes en blanco.
Sistema de coordenadas: como se muestra en la figura siguiente, el origen del sistema de coordenadas en la página se encuentra en la esquina superior izquierda del área del cliente, con el eje x extendiéndose horizontalmente hacia la derecha y el eje y extendiéndose verticalmente hacia abajo. Todos los elementos agregados al área del cliente se basan en las coordenadas X e Y especificadas.
Clases y métodos: la siguiente tabla enumera algunas de las clases y métodos principales utilizados para crear archivos PDF en Python.
Miembro | Descripción |
Clase de documento Pdf | Representa un modelo de documento PDF. |
Clase PdfPageBase | Representa una página en un documento PDF. |
Clase PdfSolidBrush | Representa un pincel que rellena cualquier objeto con un color sólido. |
Clase PdfTrueTypeFont | Representa una fuente de tipo verdadero. |
Clase PdfStringFormat | Representa información de formato de texto, como alineación, espaciado entre caracteres y sangría. |
Clase PdfTextWidget | Representa el área de texto con capacidad de abarcar varias páginas. |
Clase PdfTextLayout | Representa la información de diseño del texto. |
Método PdfDocument.Pages.Add() | Agrega una página a un documento PDF. |
Método PdfPageBase.Canvas.DrawString() | Dibuja una cadena en la ubicación especificada en una página con fuentes y objetos de pincel especificados. |
Método PdfPageBase.Canvas.DrawImage() | Dibuja una imagen en una ubicación específica de una página. |
Método PdfTextWidget.Draw() | Dibuja el widget de texto en la ubicación especificada en una página. |
Método PdfDocument.SaveToFile() | Guarda el documento en un archivo PDF. |
Cómo crear PDF usando Python
Los siguientes son los pasos principales para crear archivos PDF en Python:
- Instale Spire.PDF for Python.
- Importar módulos.
- Cree un documento PDF a través de la clase PdfDocument.
- Agregue una página al PDF usando el método PdfDocument.Pages.Add() y devuelva un objeto de la clase PdfPageBase.
- Cree el pincel y la fuente PDF que desee.
- Dibuje una cadena de texto o un widget de texto en una coordenada especificada en la página PDF utilizando el método PdfPageBase.Canvas.DrawString() o PdfTextWidget.Draw().
- Guarde el documento PDF utilizando el método PdfDocument.SaveToFile().
Python para crear archivos PDF desde cero
El siguiente ejemplo de código demuestra cómo usar Python para crear un archivo PDF e insertar texto e imágenes. Con Spire.PDF for Python, también puedes insertar otros elementos PDF como listas, hipervínculos, formularios y sellos.
- 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()
Python para generar PDF a partir de un archivo de texto
El siguiente ejemplo de código muestra el proceso de leer texto de un archivo .txt y dibujarlo en una ubicación específica en una página PDF.
- 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()
Python para crear un PDF de varias columnas
Los PDF de varias columnas se utilizan habitualmente en revistas o periódicos. El siguiente ejemplo de código muestra el proceso de creación de un PDF de dos columnas dibujando texto en dos áreas rectangulares separadas en una página PDF.
- 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()
Licencia gratuita para crear PDF en Python
Puede obtenga una licencia temporal gratuita de Spire.PDF for Python para generar documentos PDF sin marcas de agua ni limitaciones.
Conclusión
Esta publicación de blog proporciona una guía paso a paso sobre cómo crear archivos PDF basados en el sistema de coordenadas definido en la biblioteca Spire.PDF for Python. En los ejemplos de código, puede obtener información sobre el proceso y los métodos para insertar texto e imágenes en archivos PDF y convertir archivos TXT a PDF. Si desea explorar otras funciones de conversión y procesamiento de PDF de la biblioteca PDF de Python, puede consultar su documentación en línea.
Para cualquier problema durante el uso, comuníquese con nuestro equipo de soporte técnico por correo electrónico o foro.