HTML a PDF en Java
IronPDF for Java convierte contenido HTML en documentos PDF precisos a nivel de píxel usando el mismo motor de renderizado encontrado en los navegadores modernos. Las aplicaciones Java pueden generar PDFs desde cadenas HTML, archivos HTML locales o páginas web en vivo, sin requerir ningún software de renderizado adicional o un entorno GUI.
Este tutorial cubre los tres métodos de conversión de HTML a PDF disponibles en IronPDF for Java, además de opciones de instalación, licenciamiento y configuración. Los desarrolladores que ya usan IronPDF for .NET encontrarán familiar la API de Java; el tutorial .NET equivalente está disponible en el Tutorial de HTML a PDF for .NET.
Inicio rápido: Generar un PDF desde HTML
El siguiente ejemplo crea un PDF de una página desde una cadena HTML y lo guarda en disco. Después de instalar la biblioteca a través de Maven (Paso 1), este es todo el código requerido:
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/quickstart-html-string.java
import com.ironsoftware.ironpdf.*;
// Apply your license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");
// Render an HTML string to a PDF file
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>Generated in Java.</p>");
pdf.saveAs("output.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/quickstart-html-string.java
import com.ironsoftware.ironpdf.*;
// Apply your license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");
// Render an HTML string to a PDF file
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>Generated in Java.</p>");
pdf.saveAs("output.pdf");
Comience a usar IronPDF en su proyecto hoy con una prueba gratuita.
Tabla de contenido
- ¿Cómo instalo IronPDF en un proyecto Java?
- ¿Cómo convierto una cadena HTML a PDF en Java?
- ¿Cómo cargo activos locales en una cadena HTML?
- ¿Cómo convierto una URL a PDF en Java?
- ¿Cómo convierto un archivo HTML a PDF en Java?
- ¿Cómo personalizo la configuración de salida de PDF?
- ¿Cómo agrego encabezados y pies de página a un PDF?
- ¿Cómo configuro márgenes personalizados y tamaño de página?
- ¿Cómo agrego una marca de agua a un PDF?
- ¿Cómo extraigo texto de un PDF en Java?
- ¿Cómo extraigo imágenes de un PDF en Java?
- ¿Cómo comprimo un archivo PDF?
- ¿Cómo imprimo un PDF programáticamente?
- Próximos pasos
¿Cómo instalo IronPDF en un proyecto Java?
IronPDF for Java está disponible en el repositorio Central de Maven. El método de instalación recomendado es Maven, aunque también se admite la instalación manual de JAR para proyectos que no utilizan un sistema de construcción.
Instalar como una dependencia de Maven
Agrega los siguientes artefactos a la sección dependencies del archivo pom.xml de tu proyecto:
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/maven-dependency.xml
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2024.9.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.5</version>
</dependency>
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/maven-dependency.xml
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2024.9.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.5</version>
</dependency>
El primer artefacto incorpora IronPDF. The second is an SLF4J logging implementation. IronPDF utiliza SLF4J para emitir mensajes de diagnóstico durante la renderización; you can substitute it with Logback or Log4j 2, or omit logging entirely.
Ejecuta mvn install en la raíz del proyecto para descargar las dependencias. Verifica la última versión de IronPDF antes de fijar un número de versión, ya que el registro de cambios enumera todas las versiones actuales y pasadas.
Instalar el JAR manualmente
Los desarrolladores que no usan Maven pueden descargar el JAR completo de IronPDF directamente desde Maven Central y agregarlo al classpath del proyecto. El JAR completo incluye todas las dependencias transitivas.
Importar el paquete de IronPDF
Todas las clases de renderización y manipulación de PDF se encuentran en el paquete com.ironsoftware.ironpdf. Agrega esta declaración de importación a cualquier archivo fuente de Java que use IronPDF:
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/import-package.java
import com.ironsoftware.ironpdf.*;
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/import-package.java
import com.ironsoftware.ironpdf.*;
Configurar la clave de licencia
Sin una clave de licencia, IronPDF renderiza los PDFs con una marca de agua en mosaico en cada página. Para eliminar la marca de agua, pasa una clave de licencia válida a License.setLicenseKey antes de llamar a cualquier método de renderización:
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-license-key.java
import com.ironsoftware.ironpdf.*;
// Set the license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-license-key.java
import com.ironsoftware.ironpdf.*;
// Set the license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");
Coloca esta llamada al inicio de la aplicación, antes de que se ejecute cualquier lógica de generación de PDF. Comienza una prueba gratuita para obtener una clave de prueba, o consulta las opciones de licencia para uso en producción.
Configurar la ruta del archivo de logs
IronPDF escribe diagnósticos de renderización en un archivo de registro llamado IronPdfEngine.log en el directorio de trabajo de la aplicación. Llama a Settings.setLogPath para cambiar el nombre o la ubicación del archivo:
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-log-path.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
// Configure logging before calling any rendering methods
Settings.setLogPath(Paths.get("logs/ironpdf.log"));
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-log-path.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
// Configure logging before calling any rendering methods
Settings.setLogPath(Paths.get("logs/ironpdf.log"));
Settings.setLogPath antes de cualquier método de conversión o manipulación de PDF. Las llamadas hechas después de que ha comenzado la renderización no tendrán efecto.¿Cómo convierto una cadena HTML en PDF en Java?
PdfDocument.renderHtmlAsPdf convierte una cadena de HTML en un objeto PdfDocument, el cual luego puede guardarse en el disco o pasarse a otros métodos de procesamiento. Este método acepta cualquier HTML compatible con W3C, incluyendo el marcado de página completa con elementos <head> y <body>.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Convert a simple HTML string to PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save the resulting PDF to a file
pdf.saveAs("htmlstring_to_pdf.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Convert a simple HTML string to PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save the resulting PDF to a file
pdf.saveAs("htmlstring_to_pdf.pdf");
El método devuelve una instancia de PdfDocument. Llama a saveAs para escribir el PDF en el disco, o usa getBinaryData para recuperar los bytes brutos del PDF para transmisión o almacenamiento.
renderHtmlAsPdf procesa todo el contenido de HTML, CSS y JavaScript de la misma manera que un navegador compatible con los estándares. El PDF resultante refleja exactamente cómo se vería la página cuando se visualiza en Chrome.
Para obtener más detalles sobre este método, consulta el ejemplo de código de cadena HTML a PDF en la página de ejemplos de IronPDF Java.
¿Cómo cargo activos locales en una cadena HTML?
El HTML a menudo referencia activos externos (hojas de estilo, imágenes, scripts) por ruta relativa. renderHtmlAsPdf acepta un segundo argumento opcional que establece la ruta base para resolver estas referencias. La ruta base puede apuntar a un directorio local o a una URL.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-local-assets.java
import com.ironsoftware.ironpdf.*;
// HTML with references to local stylesheets and images
String html = "<html>"
+ "<head>"
+ "<title>Invoice</title>"
+ "<link rel='stylesheet' type='text/css' href='style.css'>"
+ "</head>"
+ "<body>"
+ "<div class='content'>"
+ "<h1>Invoice #1001</h1>"
+ "<img src='logo.png' alt='Company Logo'/>"
+ "</div>"
+ "</body>"
+ "</html>";
// The second argument resolves relative asset paths
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/invoices/");
pdf.saveAs("invoice.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-local-assets.java
import com.ironsoftware.ironpdf.*;
// HTML with references to local stylesheets and images
String html = "<html>"
+ "<head>"
+ "<title>Invoice</title>"
+ "<link rel='stylesheet' type='text/css' href='style.css'>"
+ "</head>"
+ "<body>"
+ "<div class='content'>"
+ "<h1>Invoice #1001</h1>"
+ "<img src='logo.png' alt='Company Logo'/>"
+ "</div>"
+ "</body>"
+ "</html>";
// The second argument resolves relative asset paths
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/invoices/");
pdf.saveAs("invoice.pdf");
El argumento de ruta base funciona tanto con rutas absolutas del sistema de archivos como con cadenas de URL. Esto hace que renderHtmlAsPdf sea adecuado para generar PDFs a partir de plantillas almacenadas en disco o servidas desde un servidor web.
C:\invoices\) deben convertirse a barras diagonales o usar Paths.get() para compatibilidad entre plataformas.¿Cómo convierto una URL a PDF en Java?
PdfDocument.renderUrlAsPdf busca una página web en vivo en la URL especificada y la renderiza como un PDF. El método carga la página completa, incluidas todas las CSS, JavaScript e imágenes externas, antes de renderizar.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/url-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Render a live web page as a PDF document
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("url_to_pdf.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/url-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Render a live web page as a PDF document
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("url_to_pdf.pdf");
renderUrlAsPdf espera a que se complete la ejecución de JavaScript antes de capturar la página renderizada, lo que significa que el contenido generado dinámicamente (como gráficos o datos cargados a través de AJAX) aparecerá en el PDF de salida.
Para la implementación equivalente en .NET u opciones adicionales de URL a PDF, consulta el ejemplo de código de conversión de URL a PDF.
¿Cómo convierto un archivo HTML a PDF en Java?
PdfDocument.renderHtmlFileAsPdf lee un archivo HTML local y lo renderiza como un PDF. Todas las rutas relativas referenciadas en el archivo HTML (hojas de estilo, imágenes, scripts) se resuelven con relación al directorio del archivo HTML.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-file-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Convert a local HTML file to PDF
// IronPDF resolves relative asset paths from the HTML file's directory
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-file-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Convert a local HTML file to PDF
// IronPDF resolves relative asset paths from the HTML file's directory
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
Este enfoque funciona bien para la generación de documentos plantillados: plantillas de facturas, informes o certificados almacenados como archivos HTML junto con sus activos CSS e imágenes asociados. IronPDF renderiza el archivo con la misma precisión que un navegador, preservando todas las reglas de diseño CSS.
renderHtmlFileAsPdf se resuelven desde el directorio de trabajo de la JVM, lo que puede producir resultados inesperados en entornos de servidor.¿Cómo personalizo la configuración de salida de PDF?
La clase PdfRenderOptions controla el diseño de página y el comportamiento de renderización. Crea una instancia de PdfRenderOptions, configura las propiedades requeridas y pásala a cualquiera de los métodos de renderización.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/render-options.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
// Configure rendering options before generating the PDF
PdfRenderOptions options = new PdfRenderOptions();
// Set the zoom level (100 = normal size)
options.setZoom(100);
// Wait for JavaScript to finish before rendering
options.setJavaScriptTimeout(5000);
// Enable printing of background colors and images
options.setPrintBackground(true);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
"<h1>Customized PDF</h1>",
options
);
pdf.saveAs("customized.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/render-options.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
// Configure rendering options before generating the PDF
PdfRenderOptions options = new PdfRenderOptions();
// Set the zoom level (100 = normal size)
options.setZoom(100);
// Wait for JavaScript to finish before rendering
options.setJavaScriptTimeout(5000);
// Enable printing of background colors and images
options.setPrintBackground(true);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
"<h1>Customized PDF</h1>",
options
);
pdf.saveAs("customized.pdf");
La clase PdfRenderOptions proporciona propiedades adicionales para controlar el DPI, el ancho del viewport, la orientación del papel y los valores de tiempo de espera. Consulta el ejemplo de código de configuración de generación de PDF para obtener una lista completa de opciones disponibles.
¿Cómo añado encabezados y pies de página a un PDF?
IronPDF admite tanto encabezados y pies de página basados en texto como basados en HTML. Los encabezados de texto utilizan campos de fusión predefinidos para valores comunes como números de página y títulos de documentos; Los encabezados HTML aceptan cualquier marca HTML para diseños completamente personalizados.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/headers-footers.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Annual Report</h1><p>Content goes here.</p>");
// Create a text-based header using merge fields
TextHeaderFooter header = new TextHeaderFooter();
header.setCenterText("Annual Report");
header.setRightText("{page} of {total-pages}");
header.setFont(com.ironsoftware.ironpdf.font.FontTypes.Helvetica);
header.setFontSize(10.0);
// Create a text-based footer
TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("Confidential");
footer.setRightText("Generated by IronPDF");
pdf.addTextHeaders(header);
pdf.addTextFooters(footer);
pdf.saveAs("report_with_headers.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/headers-footers.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Annual Report</h1><p>Content goes here.</p>");
// Create a text-based header using merge fields
TextHeaderFooter header = new TextHeaderFooter();
header.setCenterText("Annual Report");
header.setRightText("{page} of {total-pages}");
header.setFont(com.ironsoftware.ironpdf.font.FontTypes.Helvetica);
header.setFontSize(10.0);
// Create a text-based footer
TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("Confidential");
footer.setRightText("Generated by IronPDF");
pdf.addTextHeaders(header);
pdf.addTextFooters(footer);
pdf.saveAs("report_with_headers.pdf");
Los campos de fusión {page} y {total-pages} se reemplazan en el momento de la renderización con el número de página actual y el conteo total de páginas. Para diseños más avanzados, como un pie de página con un logo de empresa, usa HtmlHeaderFooter en lugar de TextHeaderFooter.
Para obtener detalles completos sobre los encabezados y pies de página basados en HTML, consulta el ejemplo de código para añadir encabezados y pies de página.
¿Cómo establezco márgenes personalizados y tamaño de página?
El tamaño de la página y los márgenes se configuran en el objeto PdfRenderOptions antes de que se renderice el PDF. IronPDF admite tamaños de papel estándar (A4, Carta, Legal) y dimensiones completamente personalizadas.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/margins-page-size.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
import com.ironsoftware.ironpdf.page.*;
PdfRenderOptions options = new PdfRenderOptions();
// Set margins in millimeters: top, right, bottom, left
options.setMarginTop(25);
options.setMarginRight(20);
options.setMarginBottom(25);
options.setMarginLeft(20);
// Use A4 paper size
options.setPaperSize(PaperSize.A4);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Formatted Document</h1>", options);
pdf.saveAs("formatted_document.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/margins-page-size.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
import com.ironsoftware.ironpdf.page.*;
PdfRenderOptions options = new PdfRenderOptions();
// Set margins in millimeters: top, right, bottom, left
options.setMarginTop(25);
options.setMarginRight(20);
options.setMarginBottom(25);
options.setMarginLeft(20);
// Use A4 paper size
options.setPaperSize(PaperSize.A4);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Formatted Document</h1>", options);
pdf.saveAs("formatted_document.pdf");
Para obtener una lista completa de tamaños y unidades de papel compatibles, consulta el ejemplo de código de tamaño de papel personalizado y el ejemplo de código de márgenes personalizados.
¿Cómo agrego una marca de agua a un PDF?
PdfDocument.applyWatermark aplica una marca de agua de texto o imagen a cada página del documento. La marca de agua se renderiza en una capa separada debajo del contenido de la página por defecto, o encima de ella cuando el indicador isStampBehind se establece en false.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/add-watermark.java
import com.ironsoftware.ironpdf.*;
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Document</h1>");
// Apply an HTML watermark; supports full CSS styling
String watermarkHtml = "<h1 style='color: rgba(200, 0, 0, 0.2); transform: rotate(-45deg); font-size: 60px;'>DRAFT</h1>";
// Second argument: opacity (0-100), third: rotation (degrees), fourth: stamp behind content
pdf.applyWatermark(watermarkHtml, 50, 45, true);
pdf.saveAs("draft_watermarked.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/add-watermark.java
import com.ironsoftware.ironpdf.*;
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Document</h1>");
// Apply an HTML watermark; supports full CSS styling
String watermarkHtml = "<h1 style='color: rgba(200, 0, 0, 0.2); transform: rotate(-45deg); font-size: 60px;'>DRAFT</h1>";
// Second argument: opacity (0-100), third: rotation (degrees), fourth: stamp behind content
pdf.applyWatermark(watermarkHtml, 50, 45, true);
pdf.saveAs("draft_watermarked.pdf");
El enfoque de HTML proporciona un control preciso sobre el estilo de la marca de agua, incluidos fuente, tamaño, color y transparencia. Para configuraciones avanzadas de marca de agua, como patrones de mosaico repetidos o sellos basados en imágenes, consulta la guía de cómo aplicar marcas de agua.
¿Cómo extraigo texto de un PDF en Java?
PdfDocument.extractAllText lee el contenido de texto incrustado en un PDF y lo devuelve como un único String. Este método extrae texto seleccionable de todas las páginas en el documento.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-text.java
import com.ironsoftware.ironpdf.*;
// Load an existing PDF from disk
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("report.pdf"));
// Extract all embedded text from the document
String text = pdf.extractAllText();
System.out.println(text);
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-text.java
import com.ironsoftware.ironpdf.*;
// Load an existing PDF from disk
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("report.pdf"));
// Extract all embedded text from the document
String text = pdf.extractAllText();
System.out.println(text);
La extracción de texto funciona en PDFs donde el texto se almacena como glifos seleccionables. Para PDFs que son escaneos basados en imágenes, considera emparejar IronPDF con una biblioteca de OCR para extraer texto de las imágenes de página renderizadas.
Consulta el ejemplo de código para extraer texto de PDF para obtener opciones adicionales, incluida la extracción de texto por página.
¿Cómo extraigo imágenes de un PDF en Java?
PdfDocument.extractAllImages devuelve una lista de objetos BufferedImage, uno por cada imagen incrustada en el PDF. Las imágenes devueltas pueden guardarse directamente en disco o pasarse a la lógica de procesamiento de imágenes posterior.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-images.java
import com.ironsoftware.ironpdf.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.List;
import javax.imageio.ImageIO;
// Load an existing PDF
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));
// Extract all embedded images
List<BufferedImage> images = pdf.extractAllImages();
for (int i = 0; i < images.size(); i++) {
ImageIO.write(images.get(i), "PNG", new File("extracted_image_" + i + ".png"));
}
System.out.println("Extracted " + images.size() + " image(s).");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-images.java
import com.ironsoftware.ironpdf.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.List;
import javax.imageio.ImageIO;
// Load an existing PDF
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));
// Extract all embedded images
List<BufferedImage> images = pdf.extractAllImages();
for (int i = 0; i < images.size(); i++) {
ImageIO.write(images.get(i), "PNG", new File("extracted_image_" + i + ".png"));
}
System.out.println("Extracted " + images.size() + " image(s).");
Para obtener más opciones de extracción, incluidas la extracción de imágenes de páginas específicas, consulta el ejemplo de código para extraer imágenes de PDF.
¿Cómo comprimo un archivo PDF?
PdfDocument.compressImages reduce el tamaño del archivo PDF al re-codificar las imágenes incrustadas a una calidad inferior. El método acepta un valor de calidad de 1 (calidad mínima, archivo más pequeño) a 100 (calidad máxima).
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/compress-pdf.java
import com.ironsoftware.ironpdf.*;
// Load a large PDF with embedded images
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("large_report.pdf"));
// Compress images to 60% quality to reduce file size
pdf.compressImages(60);
pdf.saveAs("large_report_compressed.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/compress-pdf.java
import com.ironsoftware.ironpdf.*;
// Load a large PDF with embedded images
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("large_report.pdf"));
// Compress images to 60% quality to reduce file size
pdf.compressImages(60);
pdf.saveAs("large_report_compressed.pdf");
La compresión de imagen es la forma más efectiva de reducir el tamaño de PDFs que contienen fotografías o gráficos de alta resolución. Para estrategias adicionales de reducción de tamaño de archivo, como eliminar fuentes incrustadas, consulta el ejemplo de código de compresión de PDF.
¿Cómo imprimo un PDF por programación?
PdfDocument.print envía un PDF a la impresora predeterminada del sistema utilizando la API de impresión estándar de Java. El método acepta un booleano que controla si mostrar un cuadro de diálogo de impresión.
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/print-pdf.java
import com.ironsoftware.ironpdf.*;
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));
// Print silently to the default printer (no dialog shown)
pdf.print(false);
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/print-pdf.java
import com.ironsoftware.ironpdf.*;
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));
// Print silently to the default printer (no dialog shown)
pdf.print(false);
Pasa true al método print para mostrar el cuadro de diálogo de impresión del sistema, permitiendo a los usuarios seleccionar una impresora y configurar las opciones de impresión antes de enviar el trabajo.
Próximos pasos
Este tutorial cubrió los métodos principales de conversión de HTML a PDF en IronPDF for Java, junto con instalación, configuración y operaciones comunes de procesamiento de documentos.
Para ir más allá:
- Navega por el conjunto completo de ejemplos de código HTML a PDF en Java para escenarios de renderización adicionales no cubiertos aquí.
- Lee la documentación de IronPDF for Java para entender el despliegue, la seguridad de los hilos y la configuración del servidor.
- Explora la referencia completa de API de IronPDF for Java para obtener descripciones detalladas de métodos y parámetros.
Comienza una prueba gratuita para generar PDFs sin marcas de agua, o consulta las opciones de licencia para encontrar el plan adecuado para tu proyecto.
Tutorial de acceso rápido
Descargar este tutorial como código fuente Java
El código fuente completo de HTML a PDF para este tutorial está disponible para descargar como un proyecto de IntelliJ empaquetado.
DescargarExplora este tutorial en GitHub
El código fuente de este proyecto está disponible en GitHub como un proyecto de IntelliJ IDEA. Se puede importar en otros IDEs populares de Java, incluidos Eclipse y NetBeans.
Java HTML a PDF en GitHubVer la referencia de la API
Explora la referencia de API de IronPDF for Java, que cubre todos los espacios de nombres, clases, métodos y enumeraciones disponibles en la biblioteca.
Ver la referencia de la APIPreguntas Frecuentes
¿Para qué se utiliza IronPDF for Java?
IronPDF for Java convierte contenido HTML a documentos PDF dentro de aplicaciones Java. Admite convertir cadenas HTML, archivos HTML locales y URLs de páginas web en vivo, y también proporciona herramientas para agregar encabezados y pies de página, aplicar marcas de agua, extraer texto, extraer imágenes y comprimir archivos.
¿Cómo instalo IronPDF en un proyecto Java?
Añada dos dependencias Maven a su pom.xml: com.ironsoftware:ironpdf y org.slf4j:slf4j-simple, luego ejecute mvn install. Alternativamente, descargue el JAR independiente desde Maven Central y añádalo al classpath del proyecto.
¿Cómo convierto una cadena HTML a PDF en Java?
Llame a PdfDocument.renderHtmlAsPdf(htmlString) con su marcado HTML. El método devuelve un objeto PdfDocument. Llame a pdf.saveAs("output.pdf") para escribirlo en disco.
¿Cómo convierto una URL a PDF en Java?
Llame a PdfDocument.renderUrlAsPdf("https://example.com"). IronPDF obtiene la página, espera a que JavaScript se ejecute, luego renderiza la página completamente cargada como un PDF.
¿Cómo convierto un archivo HTML local a PDF en Java?
Llame a PdfDocument.renderHtmlFileAsPdf("C:/ruta/al/archivo.html"). Use una ruta de archivo absoluta. IronPDF resuelve automáticamente referencias de CSS relativas e imágenes desde el directorio del archivo HTML.
¿IronPDF for Java añade una marca de agua a los PDFs generados?
Sin una clave de licencia, IronPDF añade una marca de agua en mosaico a todos los PDFs generados. Establezca una clave de licencia válida con License.setLicenseKey("SU-CLAVE") antes de cualquier llamada de renderizado para eliminar la marca de agua.
¿Qué versión de Java requiere IronPDF?
IronPDF for Java requiere Java 8 o posterior. Es compatible con Spring Boot, Java EE, Micronaut y otros frameworks basados en JVM.
¿Cómo añado números de página a un PDF en Java con IronPDF?
Cree una instancia de TextoEncabezadoPie y llame a setRightText("{page} de {total-pages}"). Pase el objeto a pdf.addTextFooters(footer). Los campos de fusión se reemplazan en el momento de renderizado con números de página reales.
¿Puede IronPDF for Java extraer texto de un PDF?
Sí. Cargue un PDF con PdfDocument.fromFile(Paths.get("file.pdf")), luego llame a pdf.extractAllText() para recuperar todo el contenido de texto seleccionable como una cadena.
¿Cómo reduzco el tamaño de archivo de un PDF en Java?
Llame a pdf.compressImages(quality) donde quality es un entero de 1 a 100. Un valor de 60 proporciona un buen equilibrio entre tamaño de archivo y fidelidad de imagen para la mayoría de los PDFs.





