UTILISATION D'IRONPDF POUR PYTHON

Comment éditer un fichier PDF en Python

Mise à jour septembre 28, 2024
Partager:

Introduction

Iron Software présente l'initiativeBibliothèque IronPDF for Pythonune solution qui révolutionne la facilité avec laquelle les tâches d'édition de PDF sont effectuées dans Python. Que vous ayez besoin d'insérer des signatures, d'ajouter des pieds de page HTML, d'intégrer des filigranes, d'inclure des annotations ou de modifier des fichiers PDF, IronPDF for Python est votre outil incontournable. La bibliothèque garantit que votre code reste lisible, prend en charge la création de PDF par programmation, facilite le débogage et se déploie de manière transparente sur toutes les plateformes et dans tous les environnements compatibles.

Cet article de tutoriel explorera ces fonctionnalités étendues avec des exemples de code Python illustratifs et des explications complètes. À la fin de ce guide, vous aurez une compréhension solide de l'utilisation de IronPDF for Python pour tous vos besoins d'édition de PDF.

Comment éditer des fichiers PDF en Python

  1. Installez la bibliothèque PDF pour Python en utilisant l'installateur pip.

  2. Appliquez la clé de licence pour la bibliothèque Python PDF.

  3. Charger le document PDF pour l'éditer.

  4. Modifiez le document PDF à l'aide de différentes options telles que la division, la copie de pages et d'autres opérations PDF.

  5. Sauvegarder le fichier modifié en utilisant la fonction SaveAs.

Modifier la structure du document

Manipuler les pages

IronPDF simplifie le processus d'ajout de pages à des positions spécifiques, d'extraction de pages spécifiques ou d'une plage de pages, et de suppression de pages de n'importe quel PDF. Il gère tous les processus complexes pour vous, ce qui facilite l'exécution efficace de ces tâches.

Ajouter des pages

Vous pouvez ajouter des pages aux documents PDF en spécifiant le contenu, la taille et la position des pages. Après avoir effectué les modifications souhaitées, vous pouvez enregistrer le fichier PDF de sortie à l'aide de la fonction SaveAs.

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

Copier les pages

Vous pouvez copier des pages d'un document PDF vers un autre fichier PDF existant en spécifiant le numéro de page et la destination. En outre, vous avez la possibilité de créer un nouveau fichier PDF à partir des pages PDF copiées. Il est également possible de sélectionner une ou plusieurs pages d'un même fichier PDF pour les copier.

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

Supprimer des pages

Vous pouvez supprimer des pages du fichier PDF d'entrée en spécifiant le numéro de page.

from ironpdf import *

pdf = PdfDocument("report.pdf")
pdf.RemovePage(pdf.PageCount-1)
pdf.SaveAs("Report-Minus-1.pdf")
PYTHON

Fusionner et diviser des PDF

L'API conviviale d'IronPDF facilite la combinaison de plusieurs PDF en un seul ou la décomposition d'un PDF existant en fichiers distincts.

Joindre plusieurs PDF existants en un seul document PDF

Vous pouvez fusionner plusieurs documents PDF en un seul document en spécifiant les documents PDF d'entrée et les documents PDF de sortie.

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

Fractionner un PDF et extraire des pages

Vous pouvez diviser un document PDF en plusieurs documents ou extraire des pages spécifiques de fichiers PDF en spécifiant le document PDF d'entrée et les documents PDF de sortie ou les numéros de page.

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

Modifier les propriétés du document

Ajouter et utiliser des métadonnées PDF

Vous pouvez ajouter et utiliser les métadonnées PDF avec IronPDF for Python. Cela peut s'avérer utile pour ajouter des informations sur les droits d'auteur, suivre les modifications ou simplement rendre vos documents PDF plus facilement consultables.

Les métadonnées PDF sont un ensemble de données stockées dans un document PDF. Ces données peuvent inclure le titre, l'auteur, le sujet, les mots-clés, la date de création et la date de modification du document PDF. En outre, il peut inclure des données personnalisées que vous ajoutez en fonction de vos besoins.

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

Signatures numériques

IronPDF vous permet de signer numériquement des fichiers PDF nouveaux ou existants à l'aide de certificats numériques .pfx et .p12 X509Certificate2. Lorsqu'un PDF est signé à l'aide de cette méthode, toute modification du document doit être validée à l'aide du certificat, ce qui garantit l'intégrité du document.

Vous trouverez de plus amples informations sur la génération gratuite d'un certificat de signature avec Adobe Reader à l'adresse suivanteSite web d'Adobe.

Outre la signature cryptographique, IronPDF prend également en charge l'utilisation d'une image de signature manuscrite ou d'une image de cachet d'entreprise comme moyen alternatif de signer le document.

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

Pièces jointes PDF

IronPDF permet d'ajouter très facilement des pièces jointes à vos documents PDF et de les supprimer quand vous le souhaitez. Cela signifie que vous pouvez ajouter des fichiers supplémentaires dans vos PDF et les retirer au besoin, le tout avec l'aide d'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

Compression des PDF

IronPDF dispose d'une fonction permettant de compresser les PDF afin de réduire leur taille de fichier. L'une des méthodes consiste à réduire la taille des images intégrées dans le document PDF à l'aide de la méthode CompressImages.

En ce qui concerne la qualité de l'image, avec les images JPEG, une qualité de 100 % n'entraîne pratiquement aucune perte de qualité de l'image, tandis qu'une qualité de 1 % donne un résultat de très mauvaise qualité. En général, une qualité d'image de 90 % ou plus est considérée comme de haute qualité. Une image de qualité moyenne se situe entre 80 % et 90 %, et une image de faible qualité entre 70 % et 80 %. Si vous descendez en dessous de 70 %, la qualité de l'image se détériore considérablement, mais cela permet de réduire considérablement la taille globale du document PDF.

Il est recommandé d'essayer différents pourcentages de qualité afin de trouver le bon équilibre entre la qualité et la taille du fichier. Gardez à l'esprit que la perte de qualité perceptible après la réduction peut varier en fonction du type d'image que vous traitez, certaines images perdant plus de clarté que d'autres.

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

Édition du contenu du PDF

Ajouter des en-têtes et des pieds de page

L'ajout d'en-têtes et de pieds de page à vos documents PDF est très simple avec IronPDF. Le logiciel fournit deux types distincts de HeaderFooter : TextHeaderFooter et HtmlHeaderFooter. TextHeaderFooter est idéal pour les en-têtes et les pieds de page qui ne contiennent que du texte et qui peuvent avoir besoin d'incorporer des champs de fusion tels que "{page} de{nombre total de pages}". D'autre part, HtmlHeaderFooter est une option plus avancée qui peut gérer n'importe quel contenu HTML et le formater proprement, ce qui la rend appropriée pour des en-têtes et des pieds de page plus complexes.

En-tête et pied de page HTML

Avec IronPDF for Python, vous pouvez utiliser la fonctionnalité HtmlHeaderFooter pour créer des en-têtes ou des pieds de page HTML pour votre document PDF à partir de HTML. Cela signifie que vous pouvez concevoir votre en-tête ou pied de page en utilisant HTML, et IronPDF for Python le convertira parfaitement pour s'adapter à votre PDF, en garantissant que chaque détail est exactement comme il faut. Ainsi, si vous avez un design HTML pour un en-tête ou un pied de page, IronPDF for Python peut l'appliquer à votre document PDF avec précision.

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

Texte de l'en-tête et du pied de page

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

Schémas et signets

Un plan, également appelé "signet", est un outil qui vous permet d'accéder rapidement aux pages importantes d'un document PDF. Si vous utilisez Adobe Acrobat Reader, vous pouvez voir ces signets(qui peuvent être organisées en hiérarchie) dans la barre latérale gauche de l'application.

La bibliothèque IronPDF for Python rend encore plus facile le travail avec les signets. Il peut automatiquement intégrer les signets existants dans les documents PDF. De plus, vous pouvez ajouter d'autres signets, les modifier ou les organiser en groupes à l'aide d'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

Ajouter et modifier des annotations

Vous pouvez ajouter et modifier des annotations aux documents PDF avec IronPDF for Python. Les annotations peuvent être utilisées pour surligner du texte, ajouter des commentaires ou créer des liens. Vous pouvez également modifier les annotations existantes.

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

Ajouter des arrière-plans et des avant-plans

IronPDF for Python vous permet d'ajouter des arrière-plans et des avant-plans aux documents PDF. Cela peut être utile pour ajouter des filigranes, créer des modèles personnalisés ou simplement rendre vos documents PDF plus attrayants sur le plan visuel. Vous pouvez utiliser des images, des couleurs ou des dégradés comme arrière-plan ou premier plan.

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

Estampillage et filigrane

IronPDF for Python vous permet de tamponner et d'ajouter un filigrane aux documents PDF. Cela peut être utile pour ajouter des informations sur les droits d'auteur, empêcher les copies non autorisées ou simplement donner un aspect plus professionnel à vos documents PDF. Vous pouvez apposer du texte, des images ou des filigranes sur des documents PDF. Vous pouvez également contrôler la taille, la position et l'opacité des tampons et des filigranes.

Appliquer un tampon sur un PDF

Vous pouvez appliquer un tampon à un document PDF avec IronPDF for Python. Cette fonction peut être utile pour ajouter un logo, une signature ou d'autres informations d'identification à un document PDF. Vous pouvez choisir le type, la position et la taille du tampon. Vous pouvez également définir l'opacité du cachet.

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

Ajouter un filigrane à un PDF

IronPDF for Python vous permet d'ajouter un filigrane à un document PDF. Cela peut s'avérer utile pour empêcher les copies non autorisées ou simplement pour donner à vos documents PDF une apparence plus professionnelle. Vous pouvez choisir le texte, la police, la taille et la couleur du filigrane. Vous pouvez également définir l'opacité du filigrane.

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

Utilisation de formulaires dans les PDF

Vous pouvez créer et modifier des formulaires dans des documents PDF avec IronPDF for Python. Cela peut être utile pour collecter des données auprès des utilisateurs ou simplement pour rendre vos documents PDF plus interactifs. Vous pouvez ajouter des champs de formulaire tels que des zones de texte, des cases à cocher et des boutons radio. Vous pouvez également collecter des données de formulaire auprès des utilisateurs.

Créer et modifier des formulaires

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

Conclusion

IronPDF for Python est une bibliothèque PDF Python puissante qui vous permet de créer, manipuler et éditer des documents PDF depuis Python. Grâce à cette bibliothèque, la manipulation des documents PDF est devenue remarquablement facile. Il offre un large éventail de fonctionnalités, notamment la possibilité de modifier la structure des documents, de manipuler les pages, de fusionner et de diviser les PDF, de modifier les propriétés des documents et d'ajouter et d'utiliser des métadonnées PDF.

IronPDF for Python est convivial et peut être intégré sans problème dans n'importe quel projet Python. Il constitue un outil précieux pour tous ceux qui ont besoin de travailler avec des documents PDF en Python. La licence IronPDF for Python commence à partir de $749. Vous pouvez trouver plus d'informations surle site web d'IronPDF.

< PRÉCÉDENT
Comment générer des formulaires PDF en Python
SUIVANT >
Comment extraire un texte spécifique d'un PDF en Python

Prêt à commencer ? Version : 2024.11.1 vient de paraître

Installation gratuite de pip Voir les licences > ;