Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Iron Software presenta elBiblioteca IronPDF for Pythonuna solución que revoluciona la facilidad con la que se realizan tareas de edición de PDF en Python. Ya sea que necesites insertar firmas, añadir pies de página en HTML, incrustar marcas de agua, incluir anotaciones o editar archivos PDF, IronPDF for Python es tu herramienta ideal. La biblioteca garantiza la legibilidad del código, admite la creación de PDF mediante programación, facilita la depuración y se implanta sin problemas en todas las plataformas y entornos compatibles.
Este artículo tutorial explorará estas amplias funciones con ejemplos de código Python ilustrativos y explicaciones completas. Al final de esta guía, tendrás una comprensión sólida de cómo usar IronPDF for Python para todas tus necesidades de edición de PDF.
Instale la biblioteca PDF de Python usando el instalador pip
.
Aplique la clave de licencia para la biblioteca PDF de Python.
Cargue el documento PDF para editarlo.
Edite el documento PDF utilizando diferentes opciones como Dividir, Copiar Páginas y otras Operaciones PDF.
SaveAs
.IronPDF simplifica el proceso de añadir páginas en posiciones específicas, extraer páginas específicas o un rango de páginas, y eliminar páginas de cualquier PDF. Se encarga de todos los procesos complejos por usted, facilitándole la realización de estas tareas de forma eficaz.
Puede añadir páginas a documentos PDF especificando el contenido, el tamaño y la posición de la página. Después de realizar los cambios deseados, puede guardar el archivo PDF de salida utilizando la función Guardar como
.
from ironpdf import *
# Set a log path
Logger.EnableDebugging = True
Logger.LogFilePath = "Custom.log"
Logger.LoggingMode = Logger.LoggingModes.All
pdf = PdfDocument("C:\\Users\\Administrator\\Downloads\\Documents\\sample.pdf")
renderer = ChromePdfRenderer()
coverPagePdf = renderer.RenderHtmlAsPdf("<h1>Cover Page</h1><hr>")
pdf.PrependPdf(coverPagePdf)
pdf.SaveAs("report_with_cover.pdf")
Puede copiar páginas de un documento PDF a otro archivo PDF existente especificando el número de página y el destino. Además, tiene la opción de crear un nuevo archivo PDF a partir de las páginas PDF copiadas. También es posible seleccionar una o varias páginas de un mismo archivo PDF para copiarlas.
from ironpdf import *
pdf = PdfDocument("C:\\Users\\Administrator\\Downloads\\Documents\\sample.pdf")
# Copy pages 5 to 7 and save them as a new document.
pdf.CopyPages(2, 4).SaveAs("report_highlight.pdf")
Puede eliminar páginas del archivo PDF de entrada especificando el número de página.
from ironpdf import *
pdf = PdfDocument("report.pdf")
pdf.RemovePage(pdf.PageCount-1)
pdf.SaveAs("Report-Minus-1.pdf")
La sencilla API de IronPDF facilita la combinación de varios PDF en uno o la descomposición de un PDF existente en archivos independientes.
Puede unir varios documentos PDF en un solo documento especificando los documentos PDF de entrada y los documentos PDF de salida.
from ironpdf import *
html_a = """<p> [PDF_A] </p>
<p> [PDF_A] 1st Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_A] 2nd Page</p>"""
html_b = """<p> [PDF_B] </p>
<p> [PDF_B] 1st Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_B] 2nd Page</p>"""
renderer = ChromePdfRenderer()
pdfdoc_a = renderer.RenderHtmlAsPdf(html_a)
pdfdoc_b = renderer.RenderHtmlAsPdf(html_b)
merged = PdfDocument.Merge(pdfdoc_a, pdfdoc_b)
merged.SaveAs("Merged.pdf")
Puede dividir un documento PDF en varios documentos o extraer páginas específicas de archivos PDF especificando el documento PDF de entrada y los documentos PDF de salida o los números de página.
from ironpdf import *
html = """<p> Hello Iron </p>
<p> This is 1st Page </p>
<div style='page-break-after: always;'></div>
<p> This is 2nd Page</p>
<div style='page-break-after: always;'></div>
<p> This is 3rd Page</p>"""
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(html)
# take the first page
page1doc = pdf.CopyPage(0)
page1doc.SaveAs("Split1.pdf")
# take pages 2 & 3
page23doc = pdf.CopyPages(1, 2)
page23doc.SaveAs("Split2.pdf")
Puedes agregar y utilizar metadatos PDF con IronPDF for Python. Esto puede ser beneficioso para añadir información sobre derechos de autor, realizar un seguimiento de los cambios o, simplemente, hacer que sus documentos PDF sean más fáciles de buscar.
Los metadatos PDF son un conjunto de datos almacenados en un documento PDF. Estos datos pueden incluir el título, el autor, el asunto, las palabras clave, la fecha de creación y la fecha de modificación del documento PDF. Además, puede incluir datos personalizados que usted añada según sus necesidades.
from ironpdf import *
# Open an Encrypted File, alternatively create a new PDF from Html
pdf = PdfDocument.FromFile("encrypted.pdf", "password")
# Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = Now()
pdf.SaveAs("MetaData-Updated.pdf")
IronPDF le permite firmar digitalmente archivos PDF nuevos o existentes utilizando certificados digitales X509Certificate2 .pfx
y .p12
. Cuando un PDF se firma utilizando este método, cualquier modificación del documento requeriría una validación con el certificado, lo que garantizaría la integridad del documento.
Encontrará más información sobre cómo generar un certificado de firma gratuito con Adobe Reader enSitio web de Adobe.
Además de la firma criptográfica, IronPDF también admite el uso de una imagen de firma manuscrita o de un sello de empresa como forma alternativa de firmar el documento.
from ironpdf import *
# Cryptographically sign an existing PDF in 1 line of code!
PdfSignature(r".\certificates\IronSoftware.p12", "123456").SignPdfFile("any.pdf")
##### Advanced example for more control #####
# Step 1. Create a PDF.
renderer = ChromePdfRenderer()
doc = renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>")
# Step 2. Create a signature.
# You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.
# Read https://helpx.adobe.com/acrobat/using/digital-ids.html
signature = PdfSignature(r"certificates\IronSoftware.pfx", "123456")
# Step 3. Optional signing options and a handwritten signature graphic.
signature.SigningContact = "support@ironsoftware.com"
signature.SigningLocation = "Chicago, USA"
signature.SigningReason = "To show how to sign a PDF"
# Step 4. Sign the PDF with the PdfSignature. Multiple signing certificates may be used.
doc.Sign(signature)
# Step 5. The PDF is not signed until saved to file, stream or byte array.
doc.SaveAs("signed.pdf")
IronPDF hace que sea muy fácil añadir archivos adjuntos a sus documentos PDF y eliminarlos cuando lo desee. Esto significa que puedes insertar archivos adicionales en tus PDFs y extraerlos según sea necesario, todo con la ayuda de IronPDF.
from ironpdf import *
# Instantiate the Renderer and create PdfDocument from HTML
renderer = ChromePdfRenderer()
my_pdf = renderer.RenderHtmlFileAsPdf("my-content.html")
# Open PDF document to be attached
pdf = PdfDocument.FromFile("new_sample.pdf")
# Here we can add an attachment with a name and a byte []
attachment1 = my_pdf.Attachments.AddAttachment("attachment_1", pdf.BinaryData)
# And here is an example of removing an attachment
my_pdf.Attachments.RemoveAttachment(attachment1)
my_pdf.SaveAs("my-content.pdf")
IronPDF tiene la función de comprimir PDFs para ayudar a reducir su tamaño de archivo. Un método consiste en reducir el tamaño de las imágenes incrustadas en el documento PDF mediante el método CompressImages
.
En lo que respecta a la calidad de la imagen, con imágenes JPEG, una calidad del 100% no supone prácticamente ninguna pérdida de calidad, mientras que una calidad del 1% es muy baja. En general, una calidad de imagen igual o superior al 90% se considera de alta calidad. Una imagen de calidad media se sitúa entre el 80% y el 90%, y una imagen de baja calidad oscila entre el 70% y el 80%. Si baja del 70%, la calidad de la imagen se deteriora significativamente, pero esto puede ayudar a reducir drásticamente el tamaño total del archivo PDF.
Se recomienda probar diferentes porcentajes de calidad para encontrar el equilibrio adecuado entre calidad y tamaño de archivo que se adapte a sus necesidades. Ten en cuenta que la pérdida notable de calidad tras la reducción puede variar en función del tipo de imagen que estés tratando, ya que algunas imágenes pueden perder nitidez más que otras.
from ironpdf import *
pdf = PdfDocument("document.pdf")
# Quality parameter can be 1-100, where 100 is 100% of original quality
pdf.CompressImages(60)
pdf.SaveAs("document_compressed.pdf")
# Second optional parameter can scale down the image resolution according to its visible size in the PDF document. Note that this may cause distortion with some image configurations
pdf.CompressImages(90, True)
pdf.SaveAs("document_scaled_compressed.pdf")
Añadir encabezados y pies de página a sus documentos PDF es muy sencillo con IronPDF. El programa ofrece dos tipos distintos de HeaderFooter
: TextHeaderFooter
y HtmlHeaderFooter
. TextHeaderFooter
es ideal para encabezados y pies de página que contengan sólo texto y puedan necesitar incorporar campos merge como "{página} de{total-páginas}". Por otro lado, HtmlHeaderFooter
es una opción más avanzada que puede manejar cualquier contenido HTML y formatearlo ordenadamente, lo que la hace adecuada para encabezados y pies de página más complejos.
Con IronPDF for Python, puedes utilizar la función HtmlHeaderFooter
para crear encabezados o pies de página HTML para tu documento PDF a partir de HTML. Esto significa que puedes diseñar tu encabezado o pie de página utilizando HTML, y IronPDF for Python lo convertirá perfectamente para que se ajuste a tu PDF, asegurando que cada detalle sea exacto. Por lo tanto, si tienes un diseño HTML para un encabezado o pie de página, IronPDF for Python puede aplicarlo a tu documento PDF con precisión.
from ironpdf import *
import os
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Build a footer using html to style the text
# mergeable fields are
# {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title}
renderer.RenderingOptions.HtmlFooter = HtmlHeaderFooter()
renderer.RenderingOptions.HtmlFooter.MaxHeight = 15 # millimeters
renderer.RenderingOptions.HtmlFooter.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
renderer.RenderingOptions.HtmlFooter.DrawDividerLine = True
# Use sufficient MarginBottom to ensure that the HtmlFooter does not overlap with the main PDF page content.
renderer.RenderingOptions.MarginBottom = 25 # mm
# Build a header using an image asset
# Note the use of BaseUrl to set a relative path to the assets
renderer.RenderingOptions.HtmlHeader = HtmlHeaderFooter()
renderer.RenderingOptions.HtmlHeader.MaxHeight = 20 # millimeters
renderer.RenderingOptions.HtmlHeader.HtmlFragment = "<img src='iron.png'>"
renderer.RenderingOptions.HtmlHeader.BaseUrl = os.path.abspath("C:/Users/lyty1/OneDrive/Documents/IronPdfPythonNew")
# Use sufficient MarginTop to ensure that the HtmlHeader does not overlap with the main PDF page content.
renderer.RenderingOptions.MarginTop = 25 # mm
from ironpdf import *
# Initiate PDF Renderer
renderer = ChromePdfRenderer()
# Add a header to every page easily
renderer.RenderingOptions.FirstPageNumber = 1 # use 2 if a cover page will be appended
renderer.RenderingOptions.TextHeader.DrawDividerLine = True
renderer.RenderingOptions.TextHeader.CenterText = "{url}"
renderer.RenderingOptions.TextHeader.Font = FontTypes.Helvetica
renderer.RenderingOptions.TextHeader.FontSize = 12
renderer.RenderingOptions.MarginTop = 25 # create 25mm space for header
# Add a footer too
renderer.RenderingOptions.TextFooter.DrawDividerLine = True
renderer.RenderingOptions.TextFooter.Font = FontTypes.Arial
renderer.RenderingOptions.TextFooter.FontSize = 10
renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}"
renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"
renderer.RenderingOptions.MarginBottom = 25 # create 25mm space for footer
# Mergeable fields are
# {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title}
Un esquema, también conocido como "marcador", es una herramienta que le ayuda a ir rápidamente a las páginas importantes de un documento PDF. Si utiliza Adobe Acrobat Reader, podrá ver estos marcadores(que pueden organizarse en una jerarquía) en la barra lateral izquierda de la aplicación.
La biblioteca IronPDF for Python facilita aún más trabajar con marcadores. Puede incorporar automáticamente los marcadores existentes en los documentos PDF. Además, puedes añadir más marcadores, editarlos u organizarlos en grupos con IronPDF.
from ironpdf import *
# Create a new PDF or edit an existing document.
pdf = PdfDocument.FromFile("existing.pdf")
# Add bookmark
pdf.Bookmarks.AddBookMarkAtEnd("Author's Note", 2)
pdf.Bookmarks.AddBookMarkAtEnd("Table of Contents", 3)
# Store new bookmark in a variable to add nested bookmarks to
summaryBookmark = pdf.Bookmarks.AddBookMarkAtEnd("Summary", 17)
# Add a sub-bookmark within the summary
conclusionBookmark = summaryBookmark.Children.AddBookMarkAtStart("Conclusion", 18)
# Add another bookmark to end of highest-level bookmark list
pdf.Bookmarks.AddBookMarkAtEnd("References", 20)
pdf.SaveAs("existing.pdf")
Puede agregar y editar anotaciones en documentos PDF con IronPDF for Python. Las anotaciones pueden utilizarse para resaltar texto, añadir comentarios o crear enlaces. También puede editar las anotaciones existentes.
from ironpdf import *
# Load an existing PDF or create a new one
pdf = PdfDocument("existing.pdf")
# Create a TextAnnotation object
annotation = TextAnnotation()
annotation.Title = "This is the major title"
annotation.Subject = "This is a subtitle"
annotation.Contents = "This is the long 'sticky note' comment content..."
annotation.Icon = TextAnnotation.AnnotationIcon.Help
annotation.Opacity = 0.9
annotation.Printable = False
annotation.Hidden = False
annotation.OpenByDefault = True
annotation.ReadOnly = False
annotation.Rotateable = True
# Add the annotation to a specific page and location within the PDF
pdf.AddTextAnnotation(annotation, 1, 150, 250)
# Save the PDF
pdf.SaveAs("existing.pdf")
IronPDF for Python te permite agregar fondos y primeros planos a documentos PDF. Esto puede ser útil para añadir marcas de agua, crear plantillas personalizadas o simplemente hacer que sus documentos PDF tengan un aspecto más atractivo visualmente. Puede utilizar imágenes, colores o degradados como fondos o primeros planos.
from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Render a PDF from a URL
pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
# Add a PDF as background
pdf.AddBackgroundPdf("MyBackground.pdf")
# Add a PDF as foreground overlay to the first page
pdf.AddForegroundOverlayPdfToPage(0, "MyForeground.pdf", 0)
# Save the merged PDF
pdf.SaveAs("Complete.pdf")
IronPDF for Python permite estampar y agregar marcas de agua a documentos PDF. Esto puede ser útil para añadir información sobre derechos de autor, evitar copias no autorizadas o simplemente dar un aspecto más profesional a sus documentos PDF. Puede estampar documentos PDF con texto, imágenes o marcas de agua. También puedes controlar el tamaño, la posición y la opacidad de los sellos y las marcas de agua.
Puede aplicar un sello a un documento PDF con IronPDF for Python. Esto puede ser útil para añadir un logotipo, una firma u otra información identificativa a un documento PDF. Puede elegir el tipo, la posición y el tamaño del sello. También puede ajustar la opacidad del sello.
from ironpdf import *
# Create an HtmlStamper object to stamp an image onto a PDF
stamper = HtmlStamper("<img src='https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg'/>")
stamper.HorizontalAlignment = HorizontalAlignment.Center
stamper.VerticalAlignment = VerticalAlignment.Bottom
stamper.IsStampBehindContent = False
stamper.Opacity = 30
# Load an existing PDF document and apply the stamp to it
pdf = PdfDocument.FromFile("Sample.pdf")
pdf.ApplyStamp(stamper).SaveAs("stampedimage.pdf")
IronPDF for Python te permite agregar una marca de agua a un documento PDF. Esto puede ser útil para evitar copias no autorizadas o simplemente para dar un aspecto más profesional a sus documentos PDF. Puede elegir el texto, la fuente, el tamaño y el color de la marca de agua. También puedes establecer la opacidad de la marca de agua.
from ironpdf import *
# Instantiate the Renderer and create PdfDocument from URL
renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
# Apply watermark
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, VerticalAlignment.Middle, HorizontalAlignment.Center)
# Save your new PDF
pdf.SaveAs("Watermarked.pdf")
Puede crear y editar formularios en documentos PDF con IronPDF for Python. Esto puede ser útil para recopilar datos de los usuarios o simplemente para hacer que sus documentos PDF sean más interactivos. Puede añadir campos de formulario como cuadros de texto, casillas de verificación y botones de opción. También puede recopilar datos de formularios de los usuarios.
from ironpdf import *
# Step 1. Creating a PDF with editable forms from HTML using form and input tags
# Radio Button and Checkbox can also be implemented with input type 'radio' and 'checkbox'
form_html = """
<html>
<body>
<h2>Editable PDF Form</h2>
<form>
First name: <br> <input type='text' name='firstname' value=''> <br>
Last name: <br> <input type='text' name='lastname' value=''> <br>
<br>
<p>Please specify your gender:</p>
<input type='radio' id='female' name='gender' value= 'Female'>
<label for='female'>Female</label> <br>
<br>
<input type='radio' id='male' name='gender' value='Male'>
<label for='male'>Male</label> <br>
<br>
<input type='radio' id='non-binary/other' name='gender' value='Non-Binary / Other'>
<label for='non-binary/other'>Non-Binary / Other</label>
<br>
<p>Please select all medical conditions that apply:</p>
<input type='checkbox' id='condition1' name='Hypertension' value='Hypertension'>
<label for='condition1'> Hypertension</label><br>
<input type='checkbox' id='condition2' name='Heart Disease' value='Heart Disease'>
<label for='condition2'> Heart Disease</label><br>
<input type='checkbox' id='condition3' name='Stoke' value='Stoke'>
<label for='condition3'> Stoke</label><br>
<input type='checkbox' id='condition4' name='Diabetes' value='Diabetes'>
<label for='condition4'> Diabetes</label><br>
<input type='checkbox' id='condition5' name='Kidney Disease' value='Kidney Disease'>
<label for='condition5'> Kidney Disease</label><br>
</form>
</body>
</html>
"""
# Instantiate Renderer
renderer = ChromePdfRenderer()
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
renderer.RenderHtmlAsPdf(form_html).SaveAs("BasicForm.pdf")
# Step 2. Reading and Writing PDF form values.
form_document = PdfDocument.FromFile("BasicForm.pdf")
# Set and read the value of the "firstname" field
first_name_field = form_document.Form.GetFieldByName("firstname")
first_name_field.Value = "Minnie"
print("FirstNameField value: {}".format(first_name_field.Value))
# Set and read the value of the "lastname" field
last_name_field = form_document.Form.GetFieldByName("lastname")
last_name_field.Value = "Mouse"
print("LastNameField value: {}".format(last_name_field.Value))
form_document.SaveAs("FilledForm.pdf")
IronPDF for Python es una potente biblioteca de PDF para Python que te permite crear, manipular y editar documentos PDF desde Python. Con esta biblioteca, manipular documentos PDF se ha convertido en algo extraordinariamente sencillo. Ofrece una amplia gama de funciones, como la posibilidad de editar la estructura del documento, manipular páginas, combinar y dividir PDF, editar las propiedades del documento y añadir y utilizar metadatos PDF.
IronPDF for Python es fácil de usar y se puede integrar sin problemas en cualquier proyecto de Python. Es una valiosa herramienta para cualquiera que necesite trabajar con documentos PDF en Python. La licencia de IronPDF for Python comienza desde $749. Encontrará más información enel sitio web de IronPDF.
9 productos API .NET para sus documentos de oficina