Modifier un PDF en Java (Tutoriel complet)

Chaknith Bin
Chaknith Bin
décembre 28, 2022
Mise à jour décembre 10, 2024
Partager:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Ce tutoriel donne un aperçu de haut niveau de la façon dont les développeurs Java peuvent modifier le contenu et la structure des documents PDF existants à l'aide d'IronPDF. Cela inclut les documents PDF rendus à partir de HTML à l'aide des fonctions de conversion HTML d'IronPDF, ainsi que les PDF produits à l'aide d'autres apps et bibliothèques logicielles tierces

Un didacticiel pour modifier des documents PDF en C#.NET et VB.NET est également disponible.

Ce tutoriel suppose que le lecteur sait déjà comment utiliser IronPDF pour convertir du contenu HTML en PDFs. Envisagez de lire d'abord le tutoriel HTML vers PDF avant de poursuivre ce tutoriel si vous n'êtes pas familier avec la fonctionnalité (ou si vous avez besoin de vous rafraîchir la mémoire sur le flux de travail de base).


Table des matières

  • Modifier la structure du document

    • Manipulation de documents PDF

    • Ajouter, copier et supprimer des pages

    • Fusionner et diviser des PDF

    • Définir la taille personnalisée des documents PDF

    • Définir l'orientation du PDF
  • Définir des marges personnalisées pour le PDF
  • Convertir des documents PDF en images
  • Ajouter un arrière-plan et un premier plan

    • Ajouter un PDF en arrière-plan
  • Ajouter le PDF en avant-plan
  • Extraction d'images et de texte

    • Contenu de l'extrait
  • Extraire des images
  • Modifier les propriétés du document

    • Ajouter et utiliser des métadonnées PDF

    • Signatures numériques
  • Compression des PDF
  • Modifier le contenu PDF

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

    • Schémas et signets

    • Ajouter et modifier des annotations

    • Estampillage et filigrane

    • Aperçu de Stamper

    • Exemples de tampons

    • Estampiller du texte sur un PDF

    • Apposer une image sur un PDF

    • Apposer un code-barres sur un PDF

    • Apposer un code QR sur un PDF
  • Ajouter un filigrane à un PDF
  • Utilisation des formulaires dans les PDF

    • Créer et modifier des formulaires
  • Remplir les formulaires existants
  • Envoyer le PDF pour impression

    Pour commencer

    Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit.

    Première étape :
    green arrow pointer


Il y a deux façons d'incorporer la bibliothèque IronPDF dans un projet Java :

  1. Ajouter IronPDF for Java comme dépendance dans un projet Java configuré par Maven

  2. Téléchargez le fichier JAR IronPDF et ajoutez-le manuellement au chemin de classe du projet.

    Pour installer IronPDF dans un projet Java à l'aide de Maven, incluez les artefacts indiqués ci-dessous dans la section des dépendances du fichier pom.xml du projet Java.

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>com.ironsoftware</artifactId>
   <version>2025.3.6</version>
</dependency>

Les développeurs qui préfèrent gérer le fichier JAR manuellement peuvent télécharger le fichier JAR de la bibliothèque IronPDF et l'ajouter au chemin de classe de leur projet.


Contenu du tutoriel

Modifier la structure du document

Manipulation de documents PDF

IronPDF facilite la gestion des PDF grâce à sa capacité à ajouter des PDF à des index spécifiques, à copier des pages en tant que plage ou individuellement, et à supprimer des pages en toute simplicité. Toutes ces tâches sont gérées de manière transparente en arrière-plan.

Ajouter des pages

import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;

PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
PdfDocument coverPagePdf = PdfDocument.renderHtmlAsPdf("<h1>Cover Page</h1><hr>");
PDF.prependPdf(coverPagePdf);
PDF.saveAs(Paths.get("report_with_cover.pdf"));
JAVA

Copier les pages

import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;

PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
PDF.copyPages(0,1).saveAs("report_highlight.pdf");
JAVA

Supprimer des pages

import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;

PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
PDF.removePages(PageSelection.lastPage()).saveAs(Paths.get("assets/lastPageRemove.pdf"));
JAVA

Joindre une page de couverture

import com.ironsoftware.ironpdf.PdfDocument;  
import com.ironsoftware.ironpdf.headerfooter.HeaderFooterOptions;
import java.io.IOException;  
import java.nio.file.Paths;

// Create a Sample Cover Page using RenderHtmlAsPdf
PdfDocument coverPage = PdfDocument.renderHtmlAsPdf("<h1>This is a Cover Page</h1>");
PdfDocument webpage = PdfDocument.renderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");

// Set the page number of the PDF document to be created to 2.
HeaderFooterOptions headerFooterOptions = new HeaderFooterOptions();
headerFooterOptions.setFirstPageNumber(1);
TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("");
footer.setCenterText("Page {page}");
footer.setRightText("");
webpage.addTextFooter(footer, headerFooterOptions);

// Convert a web page's content to a PDF document.
// Merge the cover page with the web page and save the new PDF to the filesystem.
try {
    PdfDocument.merge(coverPage, webpage).saveAs(Paths.get("assets/cover_page_pdf.pdf"));
} catch (IOException e) {
    throw new RuntimeException(e);
}
JAVA

En savoir plus sur l'ajout de pages de couverture dans les documents PDF.

Fusionner et diviser des PDF

IronPDF for Java simplifie le processus de fusion de plusieurs PDF en un seul ou de division d'un PDF existant grâce à son API conviviale.

Joignez plusieurs documents PDF existants en un seul document PDF.

import com.ironsoftware.ironpdf.PdfDocument;  
import java.io.IOException;  
import java.nio.file.Paths;

String htmlA = "<p> [PDF_A] </p>"
        + "<p> [PDF_A] 1st Page </p>"
        + "<div style = 'page-break-after: always;' ></div>"
        + "<p> [PDF_A] 2nd Page</p>";
String htmlB = "<p> [PDF_B] </p>"
        + "<p> [PDF_B] 1st Page </p>"
        + "<div style = 'page-break-after: always;' ></div>"
        + "<p> [PDF_B] 2nd Page</p>";

PdfDocument pdfA = PdfDocument.renderHtmlAsPdf(htmlA);
PdfDocument pdfB = PdfDocument.renderHtmlAsPdf(htmlB);
PdfDocument merged = PdfDocument.merge(pdfA, pdfB);

merged.saveAs(Paths.get("assets/merged.pdf"));
JAVA

Fractionner un PDF et extraire des pages

import com.ironsoftware.ironpdf.PdfDocument;  
import java.io.IOException;  
import java.nio.file.Paths;
PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
PdfDocument copied = PDF.copyPage(0);
copied.saveAs("assets/Split.pdf");
JAVA

Définir la taille personnalisée des documents PDF

IronPDF permet aux développeurs de créer des documents PDF avec des dimensions non standard, au-delà du format A4 conventionnel (8½ x 11 pouces ou 21,59 x 27,94 cm).

import com.ironsoftware.ironpdf.*;  
import com.ironsoftware.ironpdf.render.*;  
import java.io.IOException;  
import java.nio.file.Paths;

String html = "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>";  

ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();  
renderOptions.setPaperSize(PaperSize.Custom);  

/*  
 * Setting page sizes using different measuring units: 
 * 1. setCustomPaperWidth( width ) / setCustomPaperHeight( height ): for inches 
 * 2. setCustomPaperSizeInCentimeters( width, height ): for centimeters. 
 * 3. setCustomPaperSizeInMillimeters( width, height ): for millimeters 
 * 4. setCustomPaperSizeInPixelsOrPoints( width, height ): for pixels/points 
 */
renderOptions.setCustomPaperSizeInCentimeters(13.97, 13.97);  
PdfDocument.renderHtmlAsPdf(html, renderOptions).saveAs(Paths.get("assets/CustomPaperSize.pdf"));
JAVA

Découvrez plus de conseils sur la taille personnalisée des PDFs.

Définir l'orientation du PDF

IronPDF for Java permet de modifier l'orientation des pages dans les PDF nouveaux et existants. Par défaut, les nouveaux fichiers PDF créés avec IronPDF sont en orientation portrait, mais les développeurs peuvent le modifier en utilisant une instance de ChromePdfRenderOptions lors de la conversion de contenu (tel que HTML, RTF et URL) en PDF.

import com.ironsoftware.ironpdf.PdfDocument;  
import com.ironsoftware.ironpdf.edit.PageSelection;  
import com.ironsoftware.ironpdf.page.PageRotation;  
import com.ironsoftware.ironpdf.render.*;  
import java.io.IOException;  
import java.nio.file.Paths;

// Use the setPaperOrientation method to set rendered PDFs in portrait or landscape orientation.  
// Note: This will only work for newly-created PDFs!  
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();  
renderOptions.setPaperOrientation(PaperOrientation.LANDSCAPE);  
PdfDocument newPdf = PdfDocument.renderUrlAsPdf("https://ironpdf.com", renderOptions);  
newPdf.saveAs(Paths.get("assets/LandscapePdf.pdf"));  

// Use the rotatePage/rotateAllPages methods to adjust the page orientation for existing PDFs  
PdfDocument existingPdf = PdfDocument.fromFile(Paths.get("assets/example.pdf"));  

// Get the orientation of the first page of the existing PDF document.  
PageRotation firstPageRotation = existingPdf.getPagesInfo().get(0).getPageRotation();  
System.out.println(firstPageRotation);  

// Rotate the first page of the document only 90 degrees clockwise.  
existingPdf.rotatePage(PageRotation.CLOCKWISE_90, PageSelection.firstPage());  

// Rotate all pages of the document clockwise.  
existingPdf.rotateAllPages(PageRotation.CLOCKWISE_270);  

existingPdf.saveAs(Paths.get("assets/ExistingPdfRotated.pdf"));
JAVA

Si vous souhaitez obtenir plus d'informations, vous pouvez visiter la section du site Web d'IronPDF sur la configuration de l'orientation PDF.

Définir des marges personnalisées pour le PDF

IronPDF crée de nouveaux PDF avec une marge par défaut de 25 mm de chaque côté (haut, bas, gauche, droite). Cependant, les développeurs peuvent personnaliser chaque marge avec des mesures spécifiques pour répondre aux exigences de conception à l'aide d'IronPDF.

import com.ironsoftware.ironpdf.PdfDocument;  
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;  
import java.io.IOException;  
import java.nio.file.Paths;

// Set Margins (in millimeters)  
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();  
renderOptions.setMarginTop(40);  
renderOptions.setMarginLeft(20);  
renderOptions.setMarginRight(20);  
renderOptions.setMarginBottom(40);  

PdfDocument.renderHtmlFileAsPdf("assets/wikipedia.html", renderOptions).saveAs(Paths.get("assets/MyContent.pdf"));
JAVA

Visitez le site web d'IronPDF pour en savoir plus sur la définition de marges personnalisées pour les documents PDF.

Convertir des documents PDF en images

IronPDF peut exporter des pages d'un fichier PDF chargé, un contenu source converti ou un PDF modifié avec des en-têtes, des pieds de page, des marges, etc. en images qui peuvent être enregistrées dans un système de fichiers, stockées dans une base de données ou transmises sur des réseaux.

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.image.ToImageOptions;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.List;

PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/composite.pdf"));

// Extract all the pages from the PDF file.
List<BufferedImage> extractedImages = pdf.toBufferedImages();

// With the ToImageOptions object, specify maximum image dimensions for each
// extracted image, as well as their DPI
ToImageOptions rasterOptions = new ToImageOptions();
rasterOptions.setImageMaxHeight(100);
rasterOptions.setImageMaxWidth(100);

// Call the toBufferedImage method along with a PageSelection object to choose the pages from which to
// extract the images
//
// Available PageSelection methods include: allPages, lastPage, firstPage, singlePage(int pageIndex),
// and pageRange(int startingPage, int endingPage)
List<BufferedImage> sizedExtractedImages = pdf.toBufferedImages(rasterOptions, PageSelection.allPages());

// Save all the extracted images to a file location
int i = 1;
for (BufferedImage extractedImage : sizedExtractedImages) {
    String fileName = "assets/images/" + i++ + ".png";
    ImageIO.write(extractedImage, "PNG", new File(fileName));
}
JAVA

Ajouter un arrière-plan et un premier plan

IronPDF fournit les méthodes addBackground et addForeground pour ajouter un élément de fond ou de premier plan spécifique aux PDFs. Ces méthodes permettent aux développeurs d'incorporer le contenu d'un PDF à l'arrière-plan ou à l'avant-plan d'un autre PDF, ce qui est efficace pour générer des collections de PDF basées sur un modèle de conception commun.

Ajouter un PDF en arrière-plan

import com.ironsoftware.ironpdf.*;  
import java.io.IOException;  
import java.nio.file.Paths;

// Load background PDFs from the filesystem (or create them programmatically)  
PdfDocument backgroundPdf = PdfDocument.fromFile(Paths.get("assets/MyBackground.pdf"));  

// Render content (HTML, URL, etc) as a PDF Document  
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://www.nuget.org/packages/IronPdf");  

// Add the background PDFs to the newly-rendered document.  
pdf.addBackgroundPdf(backgroundPdf);  

pdf.saveAs(Paths.get("assets/BackgroundPdf.pdf"));
JAVA

Ajouter le PDF en avant-plan

import com.ironsoftware.ironpdf.*;  
import java.io.IOException;  
import java.nio.file.Paths;

// Load foreground PDFs from the filesystem (or create them programmatically)  
PdfDocument foregroundPdf = PdfDocument.fromFile(Paths.get("assets/MyForeground.pdf"));  

// Render content (HTML, URL, etc) as a PDF Document  
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://www.nuget.org/packages/IronPdf");  

// Add the foreground PDFs to the newly-rendered document.  
pdf.addForegroundPdf(foregroundPdf);  

pdf.saveAs(Paths.get("assets/BackgroundForegroundPdf.pdf"));
JAVA

Extraction d'images et de texte

Les fonctions complètes de création et d'édition de PDF d'IronPDF comprennent la possibilité d'extraire du contenu de manière granulaire avec ses méthodes d'extraction de contenu.

La méthode extractAllText est disponible sur tous les objets PdfDocument et renvoie une chaîne contenant tout le texte du document PDF. De plus, extractAllImages renvoie une collection de toutes les images intégrées dans le PDF, chacune sous la forme d'un objet BufferedImage. Pour récupérer les images sous forme d’octets bruts, utilisez la méthode extractAllRawImages.

Contenu de l'extrait

PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://unsplash.com/");
String text = pdf.extractAllText();
System.out.println("Text extracted from the website: " + text);
JAVA

Extraire des images

PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://unsplash.com/");
try {
    List<BufferedImage> images = pdf.extractAllImages();
    System.out.println("Number of images extracted from the website: " + images.size());

    int i = 0;
    for (BufferedImage image : images) {
        ImageIO.write(image, "PNG", Files.newOutputStream(Path.of("assets/extracted_" + ++i + ".png")));
    }
} catch(Exception exception) {
    System.out.println("Failed to extract images from the website");
    exception.printStackTrace();
}
JAVA

Modifier les propriétés du document

Ajouter et utiliser des métadonnées PDF

IronPDF offre la possibilité de modifier les métadonnées PDF et les fonctionnalités de sécurité, y compris rendre les PDF en lecture seule, impossibles à imprimer, protégés par mot de passe et chiffrés. Dans IronPDF for Java, le MetadataManager peut être utilisé pour accéder et modifier les métadonnées d'un PDF. La classe MetadataManager offre un accès direct au contenu des métadonnées et permet aux développeurs de lire et d'éditer facilement les propriétés de métadonnées communes via des accesseurs et mutateurs portant les mêmes noms.

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.security.PdfPrintSecurity;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Date;

// Open an encrypted file (or create a new one from HTML)
PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/encrypted.pdf"), "password");

// Edit file metadata
MetadataManager metadata = pdf.getMetadata();
metadata.setAuthor("Satoshi Nakamoto");
metadata.setKeywords("SEO, Friendly");
metadata.setModifiedDate(new Date().toString());

// Edit file security settings
// The code below makes the PDF read only and disallows users to copy, paste, and print
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setAllowUserCopyPasteContent(false);
securityOptions.setAllowUserAnnotations(false);
securityOptions.setAllowUserPrinting(PdfPrintSecurity.FULL_PRINT_RIGHTS);
securityOptions.setAllowUserFormData(false);
securityOptions.setOwnerPassword("top-secret");
securityOptions.setUserPassword("sharable");

// Change or set the document encryption password
SecurityManager securityManager = pdf.getSecurity();
securityManager.removePasswordsAndEncryption();
securityManager.makePdfDocumentReadOnly("secret-key");

securityManager.setSecurityOptions(securityOptions);
pdf.saveAs(Paths.get("assets/secured.pdf"));
JAVA

Signatures numériques

IronPDF for Java permet la signature sécurisée de fichiers PDF nouveaux ou existants en utilisant des certificats numériques X509Certificate2 au format .pfx ou .p12. En signant numériquement un PDF, l'authenticité du fichier est garantie et il ne peut être modifié sans une validation adéquate du certificat. Cela renforce la fiabilité du document.

Si vous cherchez un moyen gratuit de générer un certificat de signature, Adobe Reader est là pour vous aider. Suivez simplement les instructions décrites dans le tutoriel Adobe Digital ID.

Outre le processus traditionnel de signature numérique, IronPDF for Java offre également la possibilité de signer les PDF à l'aide d'une image de signature manuscrite ou d'un cachet de l'entreprise. Les entreprises peuvent ainsi plus facilement personnaliser leurs documents et ajouter une couche de sécurité supplémentaire.

import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;
PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));

File path = new File("assets/Ironpdf.pfx");
byte [] certificate = new byte [(int)path.length()];

Signature signature = new Signature(certificate,"1234");

SignatureManager manager = PDF.getSignature();

manager.SignPdfWithSignature(signature);
JAVA

Compression des PDF

IronPDF réduit la taille des fichiers PDF avec sa méthode compressImages dans la classe PdfDocument, facilitant la compression des PDF qui incluent de grandes images. Cette optimisation permet de réaliser des économies significatives en termes d'espace de stockage et de coûts lors de la transmission de fichiers PDF par courrier électronique ou par d'autres canaux de communication.

import com.ironsoftware.ironpdf.*;
import java.io.IOException;  
import java.nio.file.Paths;

PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/document.pdf"));  

// Valid image compression values range from 1 to 100, where 100 represents 100% of the  
// original image quality.  
pdf.compressImages(60);  
pdf.saveAs(Paths.get("assets/document_compressed.pdf"));  

// The 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(Paths.get("assets/document_scaled_compressed.pdf"));
JAVA

Édition du contenu du PDF

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

IronPDF offre la possibilité d'ajouter des en-têtes et pieds de page HTML personnalisés aux PDF en utilisant les classes ChromePdfRenderOptions et HtmlHeaderFooter. IronPDF permet d'ajouter des en-têtes et pieds de page de texte personnalisés aux PDFs grâce à la classe TextHeaderFooter, qui permet de spécifier du texte pour les régions gauche, droite ou centrale de l'en-tête/pied de page. Cela inclut l'utilisation de balises de modélisation intégrées comme {date}, {time}, et {page}, ou tout autre texte personnalisé souhaité.

En-tête et pied de page HTML

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.headerfooter.HtmlHeaderFooter;
import java.io.IOException;
import java.nio.file.Paths;

PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
// Build a footer using HTML
// Merge Fields are: {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title}
HtmlHeaderFooter footer = new HtmlHeaderFooter();
footer.setMaxHeight(15); // millimeters
footer.setHtmlFragment("<center><i>{page} of {total-pages}</i></center>");
footer.setDrawDividerLine(true);
pdf.addHtmlFooter(footer);
List<PdfDocument> pdfs = new ArrayList<>();

// Build a header using an image asset
// Note the use of BaseUrl to set a relative path to the assets
HtmlHeaderFooter header = new HtmlHeaderFooter();
header.setMaxHeight(20); // millimeters
header.setHtmlFragment("<img src=\"logo.png\" />");
header.setBaseUrl("./assets/");
pdf.addHtmlHeader(header);
try {
    pdf.saveAs(Paths.get("assets/html_headers_footers.pdf"));
} catch (IOException e) {
    throw new RuntimeException(e);
}
JAVA

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

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.font.FontTypes;
import com.ironsoftware.ironpdf.headerfooter.TextHeaderFooter;
import com.ironsoftware.ironpdf.headerfooter.HeaderFooterOptions;
import java.io.IOException;

// Initialize HeaderFooterOptions object.
HeaderFooterOptions options = new HeaderFooterOptions();
PdfDocument pdf = PdfDocument.renderUrlAsPdf("http://www.google.com");

// Add a header to every page easily
// Mergeable fields are:
// {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title}
options.setFirstPageNumber(1); // use 2 if a cover page will be appended
TextHeaderFooter textHeader = new TextHeaderFooter();
textHeader.setDrawDividerLine(true);
textHeader.setCenterText("{url}");
textHeader.setFont(FontTypes.getHelvetica());
textHeader.setFontSize(12);
pdf.addTextHeader(textHeader, options);

// Add a footer too
TextHeaderFooter textFooter = new TextHeaderFooter();
textFooter.setDrawDividerLine(true);
textFooter.setFont(FontTypes.getArial());
textFooter.setFontSize(10);
textFooter.setLeftText("{date} {time}");
textFooter.setRightText("{page} of {total-pages}");
pdf.addTextFooter(textFooter, options);

try {
    pdf.saveAs(Paths.get("assets/text_headers_footers.pdf"));
} catch (IOException e) {
    System.out.println("Failed to save PDF");
    throw new RuntimeException(e);
}
JAVA

Schémas et signets

Avec le BookmarkManager, les développeurs peuvent créer une structure hiérarchique de signets au sein d'un PDF, permettant aux utilisateurs de naviguer facilement vers différentes sections du document. Pour ajouter un nouveau signet, les développeurs peuvent utiliser la méthode add, en spécifiant le titre et le numéro de page du signet. Les signets peuvent également être imbriqués dans d'autres signets pour créer une structure plus organisée.

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.Bookmark;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.List;

// Load an existing PDF from the file system (or create a new one from HTML)
PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/book.pdf"));

// Add top-level bookmarks to pages of the PDF using their page indices
BookmarkManager bookmarks = pdf.getBookmark();
bookmarks.addBookMarkAtEnd("Author's Note", 2);
bookmarks.addBookMarkAtEnd("Table of Contents", 3);
bookmarks.addBookMarkAtEnd("Summary", 10);
bookmarks.addBookMarkAtEnd("References", 12);

// Retrieve a reference to the Summary bookmark so that we can add a sublist of bookmarks to it.
List<Bookmark> bookmarkList = bookmarks.getBookmarks();
Bookmark bookmark = bookmarkList.get(2);
bookmark.AddChildBookmark("Conclusion", 11);

// Save the PDF to the filesystem
pdf.saveAs(Paths.get("assets/bookmarked.pdf"));
JAVA

Ajouter et modifier des annotations

IronPDF permet d'ajouter des annotations de type "note adhésive" à des pages spécifiques d'un PDF en utilisant les classes AnnotationManager et AnnotationOptions. Les développeurs peuvent créer des annotations basées sur du texte en fournissant du texte et des coordonnées (x,y) en tant qu'arguments au constructeur AnnotationOptions, puis utiliser la méthode addTextAnnotation du AnnotationManager pour ajouter l'annotation à la page souhaitée.

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.annotation.AnnotationIcon;
import com.ironsoftware.ironpdf.annotation.AnnotationManager;
import com.ironsoftware.ironpdf.annotation.AnnotationOptions;
import java.io.IOException;
import java.nio.file.Paths;

// Create a new PDF or load an existing one from the filesystem
PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/example.pdf"));

// Create an annotation to be placed at a specific location on a page.
AnnotationOptions annotation = new AnnotationOptions(
        "This is a major title",                                // Title of the annotation
        "This is the long 'sticky note' comment content...",    // Content of the annotation
        150,                                                    // x-axis coordinate location
        250                                                     // y-axis coordinate location
);
annotation.setIcon(AnnotationIcon.HELP);
annotation.setOpacity(0.9);
annotation.setPrintable(false);
annotation.setHidden(false);
annotation.setOpen(true);
annotation.setReadonly(true);
annotation.setRotateable(true);

// Add the annotation to a specific page of the PDF
AnnotationManager annotationManager = pdf.getAnnotation();
annotationManager.addTextAnnotation(annotation, 0);

// Save the PDF with the modifications
pdf.saveAs(Paths.get("assets/annotated.pdf"));
JAVA

Estampillage et filigrane

IronPDF for Java dispose d'une API puissante qui offre des possibilités étendues d'estampillage et de filigrane des PDF. Grâce à son interface conviviale, les développeurs peuvent rapidement ajouter des images et des tampons HTML à leurs PDF en toute simplicité. Que vous ayez besoin d'ajouter un logo d'entreprise, un avis de confidentialité ou un identifiant unique, IronPDF est là pour vous aider. L'API permet d'ajouter facilement des tampons accrocheurs à vos PDF, leur donnant ainsi une touche professionnelle et personnalisée.

Estampiller du texte sur un PDF

import java.io.IOException;
import java.nio.file.Paths;

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.stamp.TextStamper;
import com.ironsoftware.ironpdf.stamp.VerticalAlignment;
PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
TextStamper stamper1 = new TextStamper();
stamper1.setText("Hello World! Stamp One Here!");
stamper1.setFontFamily("Bungee Spice");
stamper1.setUseGoogleFont(true);

stamper1.setFontSize(100);
stamper1.setBold(true);
stamper1.setItalic(false);
stamper1.setVerticalAlignment(VerticalAlignment.TOP);

PDF.applyStamp(stamper1);
JAVA

Apposer une image sur un PDF

import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.stamp.ImageStamper;

PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
ImageStamper imageStamper = new ImageStamper(Paths.get("assets/logo.png"));
// Apply to every page, one page, or some pages
PDF.applyStamp(imageStamper);
PDF.applyStamp(imageStamper, PageSelection.singlePage(2));
PDF.applyStamp(imageStamper, PageSelection.pageRange(0, 2));
JAVA

Apposer un code-barres sur un PDF

import java.io.IOException;
import java.nio.file.Paths;

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.stamp.BarcodeEncoding;
import com.ironsoftware.ironpdf.stamp.BarcodeStamper;
import com.ironsoftware.ironpdf.stamp.HorizontalAlignment;
import com.ironsoftware.ironpdf.stamp.VerticalAlignment;
PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
BarcodeStamper barcodeStamp = new BarcodeStamper("IronPDF", BarcodeEncoding.Code39);

barcodeStamp.setHorizontalAlignment(HorizontalAlignment.LEFT);
barcodeStamp.setVerticalAlignment(VerticalAlignment.BOTTOM);

PDF.applyStamp(barcodeStamp);
JAVA

Apposer un code QR sur un PDF

import java.io.IOException;
import java.nio.file.Paths;

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.stamp.BarcodeEncoding;
import com.ironsoftware.ironpdf.stamp.BarcodeStamper;
import com.ironsoftware.ironpdf.stamp.HorizontalAlignment;
import com.ironsoftware.ironpdf.stamp.VerticalAlignment;
PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
BarcodeStamper QRStamp = new BarcodeStamper("IronPDF", BarcodeEncoding.QRCode);
QRStamp.setHeight(50);
QRStamp.setWidth(50);
QRStamp.setHorizontalAlignment(HorizontalAlignment.LEFT);
QRStamp.setVerticalAlignment(VerticalAlignment.BOTTOM);
PDF.applyStamp(QRStamp);
JAVA

Ajouter un filigrane à un PDF

import java.io.IOException;
import java.nio.file.Paths;

import com.ironsoftware.ironpdf.PdfDocument;

PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
String html = "<h1> Example Title <h1/>";
int watermarkOpacity = 30;
PDF.applyWatermark(html, watermarkOpacity);
JAVA

Utilisation de formulaires dans les PDF

IronPDF Java offre aux développeurs un moyen simple et efficace de définir et d'extraire des valeurs de champs de texte de formulaire dans un document PDF. En utilisant la classe FormManager, les développeurs peuvent simplement appeler la méthode setFieldValue et fournir le nom du champ de texte désiré ainsi que la valeur à remplir.

Pour récupérer la valeur d'un champ de formulaire, le développeur peut accéder directement au champ via la collection d'objets FormField de FormManager, en utilisant le nom ou l'indice pertinent. Ce niveau de contrôle des champs de formulaire permet aux développeurs de travailler facilement avec des formulaires PDF dynamiques et interactifs.

Créer et modifier des formulaires

import com.ironsoftware.ironpdf.PdfDocument;  
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;  
import java.io.IOException;  
import java.nio.file.*;

// #1 Use Case: Create a PDF Form from HTML Form Markup  
Path outputLocation = Paths.get("assets/BasicForm.pdf");  
String formHTML = "<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=''>"  
  + "</form>"  
  + "</body>"  
  + "</html>";  

ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();  
renderOptions.setCreatePdfFormsFromHtml(true);  
PdfDocument.renderHtmlAsPdf(formHTML, renderOptions).saveAs(outputLocation);  

// #2 UseCase: Writing Values to the PDF Form  
PdfDocument form = PdfDocument.fromFile(outputLocation);  

// Set the value of the firstname input field.  
form.getForm().setFieldValue("firstname", "Minnie");  

// Set the value of the lastname input field.  
form.getForm().setFieldValue("lastname", "Mouse");  

// Save the changes to the PDF Form.  
form.saveAs(Paths.get("assets/BasicForm_Filled.pdf"));
JAVA

Remplir les formulaires existants

import com.ironsoftware.ironpdf.PdfDocument;  
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;  
import java.io.IOException;  
import java.nio.file.*;

PdfDocument form = PdfDocument.fromFile("assets/pdfform.pdf");  

// Set the value of the firstname input field.  
form.getForm().setFieldValue("firstname", "Minnie");  

// Set the value of the lastname input field.  
form.getForm().setFieldValue("lastname", "Mouse");  

// Save the changes to the PDF Form.  
form.saveAs(Paths.get("assets/BasicForm_Filled.pdf"));
JAVA

Envoyer le PDF pour impression

La méthode d'impression d'IronPDF permet aux développeurs d'intégrer facilement l'impression de PDF dans leurs applications. En appelant simplement la méthode d'impression, la boîte de dialogue d'impression du système d'exploitation s'ouvrira, offrant aux utilisateurs la possibilité de régler les paramètres d'impression tels que l'imprimante, la taille du papier et le nombre de copies.

import com.ironsoftware.ironpdf.PdfDocument;
import java.awt.print.PrinterException;

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Created with IronPDF!</h1>");
try {
    pdf.print();
} catch(PrinterException exception) {
    System.out.println("Failed to print PDF");
    exception.printStackTrace();
}
JAVA
Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.