Modifier un PDF en Java (Tutoriel complet)
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 tutoriel pourl'édition de documents PDF en C#.NET et VB.NET est également disponible
Ce tutoriel suppose que le lecteur sait déjà comment utiliser IronPDF pourconvertir du contenu HTML en PDF. Envisagez de lire d'abord le tutoriel HTML to PDF avant de poursuivre ce tutoriel si vous n'êtes pas familiarisé avec cette fonctionnalité(ou besoin de rafraîchir le flux de travail de base).
Comment éditer un fichier PDF en Java ?
- Installer la bibliothèque Java pour éditer les fichiers PDF
- Modifier la structure du document avec la fusion, la suppression et le fractionnement de PDF en Java
- Superposition de l'arrière-plan et du premier plan avec plusieurs couches
- Ajouter un en-tête, un pied de page, des tampons et des signets personnalisés
- Appliquer et modifier des formulaires de saisie de texte interactifs dans les PDF
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 l'arrière-plan et l'avant-plan
- Ajouter un PDF en arrière-plan
- Ajouter le PDF en avant-plan
Images et extraction 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
Éditer le contenu du 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 de formulaires dans les PDF
- Créer et modifier des formulaires
- Remplir les formulaires existants
- Envoyer un PDF pour impression
Pour commencer
Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit.
Il y a deux façons d'incorporer la bibliothèque IronPDF dans un projet Java :
Ajouter IronPDF for Java comme dépendance dans un projet Java configuré par Maven
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>2024.11.4</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.
Téléchargez le fichier JAR d'IronPDF directement à partir dele dépôt Maven d'IronPDF.
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"));
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");
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"));
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);
}
En savoir plusjoindre des 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"));
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");
Définir la taille personnalisée des documents PDF
IronPDF permet aux développeurs de créer des documents PDF de dimensions non standard, au-delà du format A4 classique(8½ par 11 pouces ou 21,59 par 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"));
En savoir plus sur les astuces de lataille personnalisée des PDF.
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 PDF créés avec IronPDF sont orientés vers le portrait, mais les développeurs peuvent le modifier en utilisant une instance ChromePdfRenderOptions lors de la conversion du contenu(tels 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"));
Si vous souhaitez obtenir plus d'informations, vous pouvez consulter la section du site web d'IronPDF sur réglage de l'orientation du 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 sur tous les côtés(en haut, en 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"));
Visitez le site web d'IronPDF pour en savoir plus surdé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));
}
Ajouter un arrière-plan et un premier plan
IronPDF propose les méthodes addBackground
et addForeground
pourajouter un élément d'arrière-plan ou de premier plan spécifique aux PDF. 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"));
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"));
Extraction d'images et de texte
Les fonctions complètes de création et d'édition de PDF d'IronPDF comprennent la possibilité decontenu de l'extrait granulairement avec ses méthodes d'extraction de contenu.
La méthode extractAllText
est disponible pour tous les objets PdfDocument
et renvoie une chaîne de caractères contenant tout le texte du document PDF. De plus, extractAllImages
renvoie une collection de toutes les images incorporé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);
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();
}
Modifier les propriétés du document
Ajouter et utiliser des métadonnées PDF
IronPDF offre la possibilité demodifier les métadonnées du PDF et des fonctions de sécurité, notamment la lecture seule, l'impossibilité d'imprimer, la protection par mot de passe et le cryptage des PDF. Dans IronPDF for Java, le MetadataManager
peut être utilisé pour accéder aux métadonnées d'un PDF et les modifier. La classe MetadataManager
fournit un accès direct au contenu des métadonnées et permet aux développeurs de lire et de modifier facilement les propriétés communes des métadonnées par le biais de getters et setters portant le même nom.
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"));
Signatures numériques
IronPDF for Java permet la signature sécurisée de fichiers PDF nouveaux ou existants à l'aide de 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. Il suffit de suivre les instructions décrites dans leTutoriel 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);
Compression des PDF
IronPDF réduit la taille des fichiers PDF grâce à la méthode compressImages
de la classe PdfDocument
, ce qui facilite la compression des PDF contenant des images de grande taille. 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"));
Édition du contenu du PDF
Ajouter des en-têtes et des pieds de page
IronPDF offre la possibilité deajouter des en-têtes et des pieds de page HTML personnalisésen PDF à l'aide des classes ChromePdfRenderOptions
et HtmlHeaderFooter
. IronPDF permetdes en-têtes et des pieds de page personnalisés à ajouter aux PDF grâce à la classe TextHeaderFooter
, qui permet de spécifier un 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 telles que {date}, {temps}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);
}
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);
}
Schémas et signets
Avec le BookmarkManager
, les développeurs peuvent créer une structure hiérarchique deles signets dans un PDFpermettant aux utilisateurs de naviguer facilement entre les 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"));
Ajouter et modifier des annotations
IronPDF permet d'ajouter des "notes autocollantes"annotations sur des pages spécifiques d'un PDF à l'aide des classes AnnotationManager
et AnnotationOptions
. Les développeurs peuvent créer des annotations basées sur le texte en fournissant du texte et des(x,y) comme arguments au constructeur AnnotationOptions
, puis utiliser la méthode addTextAnnotation
du AnnotationManager
pour ajouter l'annotation à la page désiré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"));
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);
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));
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);
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);
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);
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é et 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 FormManager
, en utilisant le nom ou l'index correspondant. 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"));
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"));
Envoyer le PDF pour impression
La méthode d'impression d'IronPDF permet aux développeurs de facilementintégrer 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();
}