Biblioteca de Editor de PDF en Java (Cómo & Ejemplo de Código)
La biblioteca Java PDF de IronPDF es una herramienta poderosa para editar y crear documentos PDF dentro de aplicaciones Java. Simplifica una amplia gama de funciones de edición de PDF, como agregar firmas, pies de página HTML, marcas de agua y anotaciones.
Con IronPDF, puedes crear fácilmente archivos PDF programáticamente, depurar eficientemente tu código y desplegar tus proyectos en muchas plataformas o entornos compatibles.
El objetivo principal de la mayoría de las bibliotecas Java PDF es la generación dinámica de archivos PDF. IronPDF sobresale en esta tarea, ofreciendo una variedad de características para satisfacer tus necesidades.
Este artículo profundiza en algunas de las características más importantes de IronPDF, proporcionando ejemplos de código y explicaciones. Al final, tendrás una comprensión sólida del uso de IronPDF para editar PDFs en Java, perfecto para tus necesidades de edición de PDF.
Cómo utilizar la biblioteca Java PDF Editor
- Instalar biblioteca Java para editar PDF
- Añadir, copiar y eliminar PDF con los métodos
prependPdf,copyPagesyremovePages - Fusionar PDF con el método
mergey dividir PDF con el métodocopyPages - Crear nuevo PDF con tamaño de papel personalizado
- editar metadatos de PDF
Editar estructura del documento
Manipulación de documentos PDF
IronPDF hace que gestionar PDFs sea sencillo con su capacidad de agregar PDFs en índices específicos, copiar páginas ya sea como un rango o individualmente, y eliminar páginas con facilidad. Todas estas tareas se manejan sin inconvenientes en segundo plano.
Añadir páginas
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;
public class AddPagesExample {
public static void main(String[] args) {
try {
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"));
} catch (IOException e) {
e.printStackTrace();
}
}
}import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;
public class AddPagesExample {
public static void main(String[] args) {
try {
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"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Páginas de copia
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;
public class CopyPagesExample {
public static void main(String[] args) {
try {
PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
PDF.copyPages(0, 1).saveAs("report_highlight.pdf");
} catch (IOException e) {
e.printStackTrace();
}
}
}import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;
public class CopyPagesExample {
public static void main(String[] args) {
try {
PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
PDF.copyPages(0, 1).saveAs("report_highlight.pdf");
} catch (IOException e) {
e.printStackTrace();
}
}
}Borrar páginas
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
public class DeletePagesExample {
public static void main(String[] args) {
try {
PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
PDF.removePages(PageSelection.lastPage()).saveAs(Paths.get("assets/lastPageRemove.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
public class DeletePagesExample {
public static void main(String[] args) {
try {
PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
PDF.removePages(PageSelection.lastPage()).saveAs(Paths.get("assets/lastPageRemove.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Adjunte una portada
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.headerfooter.HeaderFooterOptions;
import com.ironsoftware.ironpdf.headerfooter.TextHeaderFooter;
import java.io.IOException;
import java.nio.file.Paths;
public class AttachCoverPageExample {
public static void main(String[] args) {
// Create a Sample Cover Page using RenderHtmlAsPdf
PdfDocument coverPage = PdfDocument.renderHtmlAsPdf("<h1>This is a Cover Page</h1>");
PdfDocument webpage = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
// 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);
}
}
}import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.headerfooter.HeaderFooterOptions;
import com.ironsoftware.ironpdf.headerfooter.TextHeaderFooter;
import java.io.IOException;
import java.nio.file.Paths;
public class AttachCoverPageExample {
public static void main(String[] args) {
// Create a Sample Cover Page using RenderHtmlAsPdf
PdfDocument coverPage = PdfDocument.renderHtmlAsPdf("<h1>This is a Cover Page</h1>");
PdfDocument webpage = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
// 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);
}
}
}Conoce más sobre cómo adjuntar una portada en documentos PDF en IronPDF.
Fusionar y dividir PDF
IronPDF for Java simplifica el proceso de fusionar múltiples PDFs en uno o dividir un PDF existente usando su API fácil de usar.
Unir varios documentos PDF existentes en un único documento PDF
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class MergePdfsExample {
public static void main(String[] args) {
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"));
}
}import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class MergePdfsExample {
public static void main(String[] args) {
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"));
}
}Dividir un PDF y extraer páginas
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class SplitPdfExample {
public static void main(String[] args) {
try {
PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
PdfDocument copied = PDF.copyPage(0);
copied.saveAs("assets/Split.pdf");
} catch (IOException e) {
e.printStackTrace();
}
}
}import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class SplitPdfExample {
public static void main(String[] args) {
try {
PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
PdfDocument copied = PDF.copyPage(0);
copied.saveAs("assets/Split.pdf");
} catch (IOException e) {
e.printStackTrace();
}
}
}Configurar el tamaño personalizado de los documentos PDF
IronPDF permite a los desarrolladores crear documentos PDF con dimensiones no estándar, más allá del tamaño convencional A4 (8½ por 11 pulgadas o 21.59 por 27.94 cm).
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import com.ironsoftware.ironpdf.render.PaperSize;
import java.io.IOException;
import java.nio.file.Paths;
public class CustomSizeExample {
public static void main(String[] args) {
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"));
}
}import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import com.ironsoftware.ironpdf.render.PaperSize;
import java.io.IOException;
import java.nio.file.Paths;
public class CustomSizeExample {
public static void main(String[] args) {
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"));
}
}Aquí hay más trucos sobre el tamaño personalizado de los PDFs en IronPDF.
Orientación del PDF
IronPDF para Java permite la modificación de la orientación de la página en nuevos y existentes PDFs. Por defecto, nuevos PDFs creados con IronPDF están configurados en orientación vertical, pero los desarrolladores pueden cambiarla usando una instancia de [ChromePdfRenderOptions](/java/object-reference/api/com/Iron Software/ironpdf/render/ChromePdfRenderOptions.html) al convertir contenido (como HTML, RTFs y URLs) en PDFs.
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;
public class SetOrientationExample {
public static void main(String[] args) {
// Load an existing PDF
PdfDocument existingPdf = PdfDocument.fromFile("assets/sample.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"));
}
}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;
public class SetOrientationExample {
public static void main(String[] args) {
// Load an existing PDF
PdfDocument existingPdf = PdfDocument.fromFile("assets/sample.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"));
}
}Para más información, visita el tutorial de establecimiento de orientación de PDF en el sitio web de IronPDF.
Configurar márgenes personalizados de PDF
IronPDF crea nuevos PDFs con un margen predeterminado de 25mm en todos los lados (superior, inferior, izquierdo, derecho). Sin embargo, los desarrolladores pueden personalizar cada margen con medidas específicas usando IronPDF.
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import java.io.IOException;
import java.nio.file.Paths;
public class CustomMarginsExample {
public static void main(String[] args) {
// Set Margins (in millimeters)
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();
renderOptions.setMarginTop(40);
renderOptions.setMarginLeft(20);
renderOptions.setMarginRight(20);
renderOptions.setMarginBottom(40);
try {
PdfDocument.renderHtmlFileAsPdf("assets/wikipedia.html", renderOptions).saveAs(Paths.get("assets/MyContent.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import java.io.IOException;
import java.nio.file.Paths;
public class CustomMarginsExample {
public static void main(String[] args) {
// Set Margins (in millimeters)
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();
renderOptions.setMarginTop(40);
renderOptions.setMarginLeft(20);
renderOptions.setMarginRight(20);
renderOptions.setMarginBottom(40);
try {
PdfDocument.renderHtmlFileAsPdf("assets/wikipedia.html", renderOptions).saveAs(Paths.get("assets/MyContent.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Visita el sitio web de IronPDF para aprender más sobre establecer márgenes personalizados para documentos PDF.
Convertir documentos PDF en imágenes
IronPDF puede exportar páginas de un archivo PDF cargado, contenido fuente convertido, o un PDF modificado con encabezados, pies de página, márgenes, etc., en imágenes que pueden guardarse en un sistema de archivos, almacenarse en una base de datos, o transmitirse a través de redes.
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;
public class ConvertPdfToImagesExample {
public static void main(String[] args) {
try {
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));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}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;
public class ConvertPdfToImagesExample {
public static void main(String[] args) {
try {
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));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}Añadir fondo y primer plano
IronPDF proporciona métodos [addBackgroundPdf](/java/object-reference/api/com/Iron Software/ironpdf/PdfDocument.html#addBackgroundPdf(com.Iron Software.ironpdf.PdfDocument)) y [addForegroundPdf](/java/object-reference/api/com/Iron Software/ironpdf/PdfDocument.html#addForegroundPdf(com.Iron Software.ironpdf.PdfDocument)) para agregar un elemento específico de fondo o primer plano a los PDFs. Estos métodos permiten a los desarrolladores incorporar contenido de un PDF como el fondo o primer plano de otro PDF, haciéndolo eficiente para generar colecciones de PDFs basadas en una plantilla de diseño común.
Añadir PDF como fondo
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class AddBackgroundExample {
public static void main(String[] args) {
try {
// 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://ironpdf.com");
// Add the background PDFs to the newly-rendered document.
pdf.addBackgroundPdf(backgroundPdf);
pdf.saveAs(Paths.get("assets/BackgroundPdf.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class AddBackgroundExample {
public static void main(String[] args) {
try {
// 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://ironpdf.com");
// Add the background PDFs to the newly-rendered document.
pdf.addBackgroundPdf(backgroundPdf);
pdf.saveAs(Paths.get("assets/BackgroundPdf.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Añadir PDF como primer plano
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class AddForegroundExample {
public static void main(String[] args) {
try {
PdfDocument foregroundPdf = PdfDocument.fromFile(Paths.get("assets/MyForeground.pdf"));
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
pdf.addForegroundPdf(foregroundPdf);
pdf.saveAs(Paths.get("assets/BackgroundForegroundPdf.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class AddForegroundExample {
public static void main(String[] args) {
try {
PdfDocument foregroundPdf = PdfDocument.fromFile(Paths.get("assets/MyForeground.pdf"));
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
pdf.addForegroundPdf(foregroundPdf);
pdf.saveAs(Paths.get("assets/BackgroundForegroundPdf.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Editar propiedades del documento
Añadir y utilizar metadatos PDF
IronPDF ofrece la capacidad de modificar los metadatos y características de seguridad del PDF, incluyendo hacer que los PDFs sean de solo lectura, no imprimibles, protegidos con contraseña y encriptados. En IronPDF para Java, el [MetadataManager](/java/object-reference/api/com/Iron Software/ironpdf/metadata/MetadataManager.html) puede acceder y editar los metadatos de un PDF. La clase MetadataManager proporciona acceso directo al contenido de metadatos y permite a los desarrolladores leer y editar propiedades comunes de metadatos a través de getters y setters con los mismos nombres.
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.metadata.MetadataManager;
import com.ironsoftware.ironpdf.security.PdfPrintSecurity;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import com.ironsoftware.ironpdf.security.SecurityManager;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Date;
public class EditMetadataExample {
public static void main(String[] args) {
try {
// 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"));
} catch (IOException e) {
e.printStackTrace();
}
}
}import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.metadata.MetadataManager;
import com.ironsoftware.ironpdf.security.PdfPrintSecurity;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import com.ironsoftware.ironpdf.security.SecurityManager;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Date;
public class EditMetadataExample {
public static void main(String[] args) {
try {
// 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"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Firmas digitales
IronPDF para Java permite firmar de manera segura archivos PDF nuevos o existentes usando certificados digitales X509Certificate2 en formato .pfx o .p12. Al firmar digitalmente un PDF, se garantiza su autenticidad, previniendo alteraciones sin la validación adecuada del certificado. Esto mejora la confiabilidad del documento.
Para una manera gratuita de generar un certificado de firma, Adobe Reader ofrece instrucciones en su tutorial de ID Digital.
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;
public class DigitalSignatureExample {
public static void main(String[] args) {
try {
PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
// Load the X509Certificate2 digitals certificates from .pfx or .p12 formats
File path = new File("assets/Ironpdf.pfx");
byte[] certificate = new byte[(int) path.length()];
// Sign PDF with a specific signature
Signature signature = new Signature(certificate, "1234");
SignatureManager manager = PDF.getSignature();
manager.signPdfWithSignature(signature);
PDF.saveAs(Paths.get("assets/signed_sample.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}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;
public class DigitalSignatureExample {
public static void main(String[] args) {
try {
PdfDocument PDF = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
// Load the X509Certificate2 digitals certificates from .pfx or .p12 formats
File path = new File("assets/Ironpdf.pfx");
byte[] certificate = new byte[(int) path.length()];
// Sign PDF with a specific signature
Signature signature = new Signature(certificate, "1234");
SignatureManager manager = PDF.getSignature();
manager.signPdfWithSignature(signature);
PDF.saveAs(Paths.get("assets/signed_sample.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Comprimir PDF
IronPDF reduce el tamaño del archivo PDF con su método [compressImages](/java/object-reference/api/com/Iron Software/ironpdf/PdfDocument.html#compressImages(int)) en la clase [PdfDocument](/java/object-reference/api/com/Iron Software/ironpdf/PdfDocument.html), facilitando la compresión de PDFs con imágenes grandes. Esta optimización conlleva a ahorros significativos en espacio de almacenamiento y costo al transmitir PDFs por correo electrónico y otros canales de comunicación.
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class CompressPdfExample {
public static void main(String[] args) {
try {
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"));
} catch (IOException e) {
e.printStackTrace();
}
}
}import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class CompressPdfExample {
public static void main(String[] args) {
try {
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"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Edición de contenido PDF
Añadir encabezados y pies de página
IronPDF te permite agregar encabezados y pies de página HTML personalizados usando las clases ChromePdfRenderOptions y [HtmlHeaderFooter](/java/object-reference/api/com/Iron Software/ironpdf/headerfooter/HtmlHeaderFooter.html). También soporta encabezados y pies de página de texto personalizados a través de la clase [TextHeaderFooter](/java/object-reference/api/com/Iron Software/ironpdf/headerfooter/TextHeaderFooter.html), la cual permite especificar texto para las regiones izquierda, derecha o central del encabezado/pie de página. Las etiquetas de plantilla como {fecha}, {hora} y {página} pueden usarse con texto personalizado.
Cabecera y pie de página HTML
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.headerfooter.HtmlHeaderFooter;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
public class HtmlHeaderFooterExample {
public static void main(String[] args) {
try {
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);
pdf.saveAs(Paths.get("assets/html_headers_footers.pdf"));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.headerfooter.HtmlHeaderFooter;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
public class HtmlHeaderFooterExample {
public static void main(String[] args) {
try {
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);
pdf.saveAs(Paths.get("assets/html_headers_footers.pdf"));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}Cabecera y pie de página
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;
import java.nio.file.Paths;
public class TextHeaderFooterExample {
public static void main(String[] args) {
try {
// 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 coverpage 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);
pdf.saveAs(Paths.get("assets/text_headers_footers.pdf"));
} catch (IOException e) {
System.out.println("Failed to save PDF");
throw new RuntimeException(e);
}
}
}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;
import java.nio.file.Paths;
public class TextHeaderFooterExample {
public static void main(String[] args) {
try {
// 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 coverpage 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);
pdf.saveAs(Paths.get("assets/text_headers_footers.pdf"));
} catch (IOException e) {
System.out.println("Failed to save PDF");
throw new RuntimeException(e);
}
}
}Marcas
Con la clase [BookmarkManager](/java/object-reference/api/com/Iron Software/ironpdf/bookmark/BookmarkManager.html), los desarrolladores pueden crear una estructura jerárquica de marcadores dentro de un PDF, permitiendo a los usuarios navegar fácilmente a diferentes secciones. Para agregar un nuevo marcador, usa el método add, especificando el título y el número de página del marcador. Los marcadores pueden anidarse para crear una estructura más organizada.
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;
public class BookmarksExample {
public static void main(String[] args) {
try {
// 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"));
} catch (IOException e) {
e.printStackTrace();
}
}
}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;
public class BookmarksExample {
public static void main(String[] args) {
try {
// 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"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Añadir y editar anotaciones
IronPDF puede agregar anotaciones estilo "nota adhesiva" a páginas específicas de un PDF usando las clases [AnnotationManager](/java/object-reference/api/com/Iron Software/ironpdf/annotation/AnnotationManager.html) y [AnnotationOptions](/java/object-reference/api/com/Iron Software/ironpdf/annotation/AnnotationOptions.html). Crea anotaciones basadas en texto proporcionando texto y coordenadas (x, y) al constructor de AnnotationOptions, luego usa el método [addTextAnnotation](/java/object-reference/api/com/Iron Software/ironpdf/annotation/AnnotationManager.html#addTextAnnotation(com.Iron Software.ironpdf.annotation.AnnotationOptions,int)) del AnnotationManager para agregar la anotación a la página deseada.
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;
public class AnnotationExample {
public static void main(String[] args) {
try {
// 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"));
} catch (IOException e) {
e.printStackTrace();
}
}
}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;
public class AnnotationExample {
public static void main(String[] args) {
try {
// 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"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Sellado y marca de agua
IronPDF para Java tiene una potente API que ofrece amplias capacidades de estampado y marca de agua. Con su interfaz fácil de usar, los desarrolladores pueden agregar rápidamente imágenes y sellos HTML a sus PDFs. Ya sea que necesites un logotipo de la empresa, un aviso de confidencialidad, o un identificador único, IronPDF te tiene cubierto, permitiéndote agregar sellos a tus PDFs con facilidad y profesionalismo.
Sellar texto en 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;
public class StampTextExample {
public static void main(String[] args) {
try {
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);
pdf.saveAs(Paths.get("assets/stamped_sample.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}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;
public class StampTextExample {
public static void main(String[] args) {
try {
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);
pdf.saveAs(Paths.get("assets/stamped_sample.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Etiquetar una imagen en 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;
public class StampImageExample {
public static void main(String[] args) {
try {
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));
pdf.saveAs(Paths.get("assets/image_stamped_sample.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}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;
public class StampImageExample {
public static void main(String[] args) {
try {
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));
pdf.saveAs(Paths.get("assets/image_stamped_sample.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Etiquetar un BarCode en 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;
public class StampBarcodeExample {
public static void main(String[] args) {
try {
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);
pdf.saveAs(Paths.get("assets/barcode_stamped_sample.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}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;
public class StampBarcodeExample {
public static void main(String[] args) {
try {
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);
pdf.saveAs(Paths.get("assets/barcode_stamped_sample.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Etiquetar un código QR en 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;
public class StampQrCodeExample {
public static void main(String[] args) {
try {
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);
pdf.saveAs(Paths.get("assets/qrcode_stamped_sample.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}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;
public class StampQrCodeExample {
public static void main(String[] args) {
try {
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);
pdf.saveAs(Paths.get("assets/qrcode_stamped_sample.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Añadir una marca de agua a un PDF
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;
public class AddWatermarkExample {
public static void main(String[] args) {
try {
PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
String html = "<h1> Example Title <h1/>";
int watermarkOpacity = 30;
pdf.applyWatermark(html, watermarkOpacity);
pdf.saveAs(Paths.get("assets/watermarked_sample.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;
public class AddWatermarkExample {
public static void main(String[] args) {
try {
PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/sample.pdf"));
String html = "<h1> Example Title <h1/>";
int watermarkOpacity = 30;
pdf.applyWatermark(html, watermarkOpacity);
pdf.saveAs(Paths.get("assets/watermarked_sample.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Uso de formularios en PDF
IronPDF for Java proporciona una forma sencilla y eficiente de establecer y recuperar valores de campos de texto de formulario en un documento PDF usando la clase [FormManager](/java/object-reference/api/com/Iron Software/ironpdf/form/FormManager.html). Los desarrolladores pueden llamar al método [setFieldValue](/java/object-reference/api/com/Iron Software/ironpdf/form/FormManager.html#setFieldValue(java.lang.String,java.lang.String)) para proporcionar el nombre y valor del campo de texto.
Recupera el valor de un campo de formulario directamente a través de la colección de objetos FormField de FormManager, utilizando el nombre o índice relevante. Este nivel de control sobre los campos de formulario hace fácil trabajar con formularios PDF dinámicos e interactivos.
Crear y editar formularios
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import java.io.IOException;
import java.nio.file.Paths;
public class CreateAndEditFormsExample {
public static void main(String[] args) {
try {
// #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 Use Case: 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"));
} catch (IOException e) {
e.printStackTrace();
}
}
}import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import java.io.IOException;
import java.nio.file.Paths;
public class CreateAndEditFormsExample {
public static void main(String[] args) {
try {
// #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 Use Case: 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"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Rellenar formularios existentes
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class FillExistingFormsExample {
public static void main(String[] args) {
try {
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"));
} catch (IOException e) {
e.printStackTrace();
}
}
}import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class FillExistingFormsExample {
public static void main(String[] args) {
try {
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"));
} catch (IOException e) {
e.printStackTrace();
}
}
}Enviar PDF para imprimir
El método de impresión de IronPDF permite a los desarrolladores integrar fácilmente la impresión de PDF en sus aplicaciones. Al llamar al método [print](/java/object-reference/api/com/Iron Software/ironpdf/PdfDocument.html#print()), el cuadro de diálogo de impresión del sistema operativo se abrirá, ofreciendo a los usuarios opciones para ajustar configuraciones como la impresora, el tamaño del papel y el número de copias.
import com.ironsoftware.ironpdf.PdfDocument;
import java.awt.print.PrinterException;
public class PrintPdfExample {
public static void main(String[] args) {
try {
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Created with IronPDF!</h1>");
pdf.print();
} catch (PrinterException exception) {
System.out.println("Failed to print PDF");
exception.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}import com.ironsoftware.ironpdf.PdfDocument;
import java.awt.print.PrinterException;
public class PrintPdfExample {
public static void main(String[] args) {
try {
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Created with IronPDF!</h1>");
pdf.print();
} catch (PrinterException exception) {
System.out.println("Failed to print PDF");
exception.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}Conclusión
IronPDF es una biblioteca PDF completa para Java que ofrece una amplia gama de características para crear, editar y manipular documentos PDF. Tiene métodos robustos para la extracción de texto e imagen, permitiendo a los desarrolladores acceder y procesar el contenido de PDF. IronPDF también proporciona flexibilidad para personalizar los metadatos de PDF y configuraciones de seguridad, como hacer que un PDF sea de solo lectura o protegido con contraseña. Incluye un método para comprimir PDFs, reduciendo el tamaño del archivo y mejorando la eficiencia de transmisión.
La biblioteca permite la adición de encabezados y pies de página personalizados, así como anotaciones, a un documento PDF. La característica de marcadores permite a los desarrolladores añadir marcadores para una fácil navegación dentro de un PDF.
IronPDF ofrece una clave de prueba gratuita que permite a los usuarios probar sus características y capacidades antes de realizar una compra. La licencia Java de IronPDF comienza en $799, ofreciendo una solución rentable para negocios e individuos que deseen asegurar y gestionar sus archivos PDF.
Preguntas Frecuentes
¿Cuáles son las características principales de la biblioteca de edición de PDF en Java?
La biblioteca de edición de PDF para Java ofrece herramientas completas para editar y crear PDFs, incluyendo la adición de firmas, pies de página en HTML, marcas de agua y anotaciones. También admite la unión y división de PDFs, personalizar tamaños y orientaciones, y convertir PDFs a imágenes.
¿Cómo puedo integrar una biblioteca de PDF en mi proyecto Java?
Para integrar una biblioteca de PDF como IronPDF en su proyecto Java, descargue la biblioteca del sitio oficial de IronPDF y agréguela como una dependencia en la configuración de construcción de su proyecto.
¿Cómo puedo modificar la estructura de un documento PDF en Java?
Puede modificar la estructura de un documento PDF en Java usando IronPDF. Utilice métodos como prependPdf, copyPages y removePages para agregar, copiar y eliminar páginas.
¿Es posible establecer márgenes y metadatos personalizados para PDFs?
Sí, IronPDF le permite establecer márgenes personalizados y modificar metadatos del PDF, incluyendo autor y palabras clave, usando la clase MetadataManager.
¿Puedo convertir documentos PDF a formatos de imagen usando Java?
Con IronPDF, puede convertir páginas de PDF a formatos de imagen usando el método toBufferedImages, donde puede definir dimensiones de imagen y DPI.
¿Cómo agrego marcas de agua personalizadas a archivos PDF?
Para agregar marcas de agua personalizadas a archivos PDF, use el método applyWatermark de IronPDF. Puede especificar el contenido de la marca de agua, como HTML, y ajustar su opacidad.
¿IronPDF admite protección por contraseña para documentos PDF?
Sí, IronPDF admite protección con contraseña, permitiéndole asegurar documentos evitando accesos y alteraciones no autorizadas.
¿Qué herramientas están disponibles para manejar formularios PDF en Java?
IronPDF proporciona una clase FormManager para crear, editar y completar formularios PDF. Facilita el establecimiento y la recuperación de valores de los campos de formularios.
¿Cómo puedo asegurar la seguridad de los documentos con firmas digitales en PDFs?
IronPDF permite la firma segura de documentos PDF usando certificados digitales X509Certificate2, asegurando autenticidad y previniendo cambios no autorizados.
¿Es posible comprimir archivos PDF para reducir su tamaño?
IronPDF incluye métodos para comprimir archivos PDF, lo que ayuda a reducir los tamaños de archivo manteniendo la calidad del documento.









