USO DE IRONPDF FOR .NET

Cómo editar un archivo PDF en Python

Actualizado 24 de agosto, 2023
Compartir:

Introducción

Iron Software presenta el Biblioteca Python IronPDF una solución que revoluciona la facilidad con la que se realizan tareas de edición de PDF en Python. Si necesita insertar firmas, añadir pies de página HTML, incrustar marcas de agua, incluir anotaciones o editar archivos PDF, IronPDF Python es la herramienta que necesita. 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.

En este artículo tutorial, exploraremos estas amplias funciones con ejemplos ilustrativos de código Python y explicaciones exhaustivas. Al final de esta guía, usted tendrá una sólida comprensión de cómo utilizar IronPDF Python para todas sus necesidades de edición de PDF.

Cómo editar archivos PDF en Python

  1. Instale la biblioteca PDF de Python con el instalador pip.
  2. Aplique la clave de licencia para la biblioteca PDF de Python.
  3. Cargue el documento PDF para editarlo.
  4. Edite el documento PDF utilizando diferentes opciones como Dividir, Copiar Páginas y otras Operaciones PDF.
  5. Guarde el archivo modificado utilizando la función SaveAs.

Editar la estructura del documento

Manipular páginas

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.

Añadir páginas

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")
PYTHON

Páginas de copia

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")
PYTHON

Borrar páginas

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")
PYTHON

Fusionar y dividir 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.

Unir varios PDF existentes en un único documento PDF

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")
PYTHON

Dividir un PDF y extraer páginas

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")
PYTHON

Editar las propiedades del documento

Añadir y utilizar metadatos PDF

Puede añadir y utilizar metadatos PDF con IronPDF 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")
PYTHON

Firmas digitales

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 en Sitio 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, steam or byte array.
doc.SaveAs("signed.pdf")
PYTHON

Archivos adjuntos en PDF

IronPDF hace que sea muy fácil añadir archivos adjuntos a sus documentos PDF y eliminarlos cuando lo desee. Esto significa que puede incluir archivos adicionales en sus PDF y eliminarlos cuando sea necesario, todo ello 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")
PYTHON

Comprimir 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")
PYTHON

Editar contenido PDF

Añadir encabezados y pies de página

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.

Encabezado y pie de página HTML

Con IronPDF Python, puede utilizar la función HtmlHeaderFooter para crear encabezados o pies de página HTML para su documento PDF a partir de HTML. Esto significa que puede diseñar su encabezado o pie de página utilizando HTML, y IronPDF Python lo convertirá perfectamente para ajustarlo a su PDF, asegurándose de que cada detalle sea el correcto. Por lo tanto, si tiene un diseño HTML para un encabezado o pie de página, IronPDF Python puede aplicarlo a su 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
PYTHON

Encabezado y pie de página de texto

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}
PYTHON

Esquemas y marcadores

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 Python IronPDF facilita aún más el trabajo 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")
PYTHON

Añadir y editar anotaciones

Puede añadir y editar anotaciones en documentos PDF con IronPDF 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")
PYTHON

Añadir fondos y primeros planos

IronPDF Python le permite añadir 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")
PYTHON

Estampación y marca de agua

IronPDF Python permite estampar sellos y marcas de agua en 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.

Aplicar sello a un PDF

Puede aplicar un sello a un documento PDF con IronPDF 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")
PYTHON

Añadir una marca de agua a un PDF

IronPDF Python le permite añadir 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")
PYTHON

Uso de formularios en PDF

Puede crear y editar formularios en documentos PDF con IronPDF 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.

Crear y editar formularios

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")
PYTHON

Conclusión

IronPDF Python es una potente biblioteca PDF de Python que 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 Python es fácil de usar y puede integrarse perfectamente en cualquier proyecto Python. Es una valiosa herramienta para cualquiera que necesite trabajar con documentos PDF en Python. La licencia Python de IronPDF comienza en $749. Encontrará más información en el sitio web de IronPDF.

< ANTERIOR
Cómo generar formularios PDF en Python
SIGUIENTE >
Cómo extraer texto específico de un PDF en Python

¿Listo para empezar? Versión: 2024.5 recién publicada

Instalación pip gratuita Ver licencias >