Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
PDF (Formato de documento portátil) es un formato de archivo ampliamente utilizado para representar documentos de manera independiente del software de aplicación, software de terceros o controladores, hardware y sistemas operativos como macOS. Manipular archivos PDF programáticamente sin intervención del usuario es un requisito común en diversas aplicaciones. Este artículo explora dos bibliotecas de Java, IronPDF y jPDFPrint, que proporcionan capacidades para manipular archivos PDF de diferentes maneras en un entorno de ejecución de Java. Nos adentraremos en sus características, funcionalidades y compararemos sus ofertas para comprender sus fortalezas y debilidades y cómo se diferencia de usar documentos PDF de Acrobat directamente.
IronPDF es una potente biblioteca de Java que permite a los desarrolladores crear, manipular y convertir archivos PDF programáticamente. Proporciona una amplia gama de funcionalidades, como generar PDFs a partir de HTML, imágenes o documentos existentes, combinar múltiples PDFs, extraer texto e imágenes de PDFs y realizar diversas tareas de manipulación de documentos.
IronPDF ofrece una API fácil de usar con un conjunto completo de métodos y propiedades, lo que facilita a los desarrolladores trabajar directamente con documentos PDF de Acrobat. También proporciona una extensa documentación y tutoriales para guiar a los desarrolladores en el proceso de integración de IronPDF en sus aplicaciones Java.
Una de las características notables de IronPDF es su capacidad para convertir HTML a PDF. Con esta funcionalidad, los desarrolladores pueden generar fácilmente documentos PDF a partir de contenido HTML, incluyendo estilos CSS, interactividad JavaScript e incluso datos dinámicos.
import com.ironpdf.*;
public class HtmlToPdfExample {
public static void main(String [] args) {
HtmlToPdfRenderer renderer = new HtmlToPdfRenderer();
HtmlToPdfOutput output = renderer.RenderHtmlFileAsPdf("input.html");
output.saveAs("output.pdf");
}
}
jPDFPrint es una biblioteca Java desarrollada por software de terceros Qoppa que se centra específicamente en imprimir documentos PDF mediante programación en un entorno de ejecución de Java. Proporciona una API simple y directa para imprimir documentos PDF utilizando el servicio de impresión de documentos de Java.
jPDFPrint permite a los desarrolladores imprimir documentos PDF en cualquier impresora instalada en el sistema, controlar la carga y los ajustes de impresión del documento, como el rango de páginas, la orientación y el escalado, e incluso especificar comandos de impresora personalizados, si es necesario. También admite funciones como la impresión a doble cara, la impresión de folletos, la impresión silenciosa sin intervención del usuario y la adición de marcas de agua.
La biblioteca se integra perfectamente con aplicaciones Java, permitiendo a los desarrolladores incorporar fácilmente la funcionalidad de impresión de PDF en sus soluciones de software de aplicaciones Java.
//import Qoppa third party software to simply call the library
import com.qoppa.pdfPrinter.PDFPrinterJob;
import java.io.File;
import java.io.IOException;
import java.net.URL;
public class HtmlToPdfExample {
public static void main(String [] args) throws IOException {
// Load the HTML page
URL url = new URL("http://www.example.com");
String html = org.apache.commons.io.IOUtils.toString(url);
// Create a PDFPrinterJob object
PDFPrinterJob printerJob = new PDFPrinterJob();
// Set the output file
File outputFile = new File("output.pdf");
printerJob.setOutputFile(outputFile);
// Print the HTML page to the output file
printerJob.printHTML(html);
}
}
Ambas bibliotecas son muy sofisticadas y útiles para manipular documentos PDF, como imprimir documentos PDF y convertir documentos de Microsoft Word a documentos PDF.
jPDFPrint es una biblioteca de Java desarrollada por Qoppa Software utilizando la tecnología PDF propietaria de Qoppa, que se enfoca en la carga y la impresión programática de archivos PDF. Aquí hay una visión general de cómo usarlo:
package jPDFPrintSamples;
import java.io.FileOutputStream;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.SimpleDoc;
import javax.print.StreamPrintService;
import javax.print.StreamPrintServiceFactory;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.MediaSizeName;
PDFPrint
: Cree una instancia de la clase PDFPrint
y pase la ruta del archivo PDF que desea imprimir como parámetro.PDFPrint
. Puedes establecer el nombre de la impresora, especificar el rango de páginas, seleccionar bandejas de papel, elegir la calidad de impresión y configurar otras opciones de impresión para imprimir documentos PDF.print
en el objeto PDFPrint
para iniciar el proceso de impresión. La biblioteca utilizará el Servicio de Impresión de Java para enviar el archivo PDF a la impresora. package jPDFPrintSamples;
import java.io.FileOutputStream;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.SimpleDoc;
import javax.print.StreamPrintService;
import javax.print.StreamPrintServiceFactory;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.MediaSizeName;
import com.qoppa.pdfPrint.PDFPrint;
public class PDFToPS
{
public static void main (String [] args)
{
try
{
DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
String psMimeType = DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType();
StreamPrintServiceFactory [] factories = StreamPrintServiceFactory.lookupStreamPrintServiceFactories(flavor, psMimeType);
System.out.println ("Available PS services: " + factories.length);
if(factories.length == 0)
{
System.err.println ("No PS factories available!");
System.exit(0);
}
// Open the PDF file
PDFPrint pdfPrint = new PDFPrint ("test.pdf", null);
// Open the output file
FileOutputStream fos = new FileOutputStream("output.ps");
// Use the first service available
StreamPrintService sps = factories [0].getPrintService(fos);
DocPrintJob pj = sps.createPrintJob();
// Define paper size
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(MediaSizeName.NA_LETTER);
// Create simple doc using PDFPrint as Printable and print it
SimpleDoc doc = new SimpleDoc(pdfPrint, flavor, null);
pj.print(doc, aset);
// Close the output PS stream
fos.close();
}
catch (Throwable t)
{
t.printStackTrace();
}
}
}
IronPDF es una potente biblioteca de Java utilizada en el Aplicación Java para la manipulación de PDF, incluyendo la generación, conversión y manipulación de documentos. A continuación se muestra una descripción general de cómo usar IronPDF:
import com.ironsoftware.ironpdf.*;
HtmlToPdfRenderer
clase que es el comando de impresión de un documento PDF, como se muestra en el código de ejemplo para imprimir en silencio o enviar documentos a PDF. También puede crear documentos PDF programáticamente agregando elementos como texto, imágenes, tablas y anotaciones. import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
// Apply your license key
License.setLicenseKey("YOUR-LICENSE-KEY");
// Set a log path
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Render the HTML as a PDF. Stored in myPdf as type PdfDocument;
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");
// Save the PdfDocument to a file
myPdf.saveAs(Paths.get("html_saved.pdf"));
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);
}
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();
}
saveAs
para enviar documentos a un flujo o respuesta HTTP.Aunque tanto jPDFPrint como IronPDF ofrecen capacidades de manipulación de PDF, IronPDF proporciona un conjunto más completo de funcionalidades y flexibilidad. IronPDF se destaca en varios aspectos:
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
// Apply your license key
License.setLicenseKey("YOUR-LICENSE-KEY");
// Set a log path
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Render the HTML as a PDF. Stored in myPdf as type PdfDocument;
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");
// Save the PdfDocument to a file
myPdf.saveAs(Paths.get("html_saved.pdf"));
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
// Case 1: Generate a PDF from a string of Rich Text Content
try {
String content = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\nouicompat\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Calibri;}}\n" +
"{\\*\\generator Riched20 10.0.22621}\\viewkind4\\uc1 \n" +
"\\pard\\sa200\\sl276\\slmult1\\b\\f0\\fs160\\lang9 Hello, world!\\par\n" +
"}\n" +
" ";
PdfDocument pdf = PdfDocument.renderRtfAsPdf(content);
pdf.saveAs(Paths.get("assets/rtf_to_pdf.pdf"));
} catch(IOException exception) {
exception.printStackTrace();
}
// Case 2: Generate a PDF from a RTF file located on a filesystem path
try {
PdfDocument pdf = PdfDocument.renderRtfFileAsPdf(Paths.get("assets/test.rtf"));
pdf.saveAs(Paths.get("assets/rtf_to_pdf_2.pdf"));
} catch(IOException exception) {
exception.printStackTrace();
}
Dadas estas ventajas, los desarrolladores que busquen una solución potente y flexible para la manipulación de PDF con capacidades de conversión de HTML a PDF, extensas características de manipulación de documentos y excelente soporte deberían dar preferencia a IronPDF sobre jPDFPrint.
Sin embargo, es esencial evaluar los requisitos específicos de su proyecto y analizar las características, la documentación y el soporte ofrecidos por cada biblioteca para tomar una decisión informada que se alinee con las necesidades de su aplicación.
jPDFPrint se centra únicamente en la impresión de archivos PDF y ofrece un control extenso sobre el proceso de impresión.
package jPDFPrintSamples;
import com.qoppa.pdfPrint.PDFPrint;
public class SimplePrint
{
public static void main (String [] args)
{
try
{
PDFPrint pdfPrint = new PDFPrint("input.pdf", null);
pdfPrint.print(null);
}
catch (Throwable t)
{
t.printStackTrace();
}
}
}
IronPDF ofrece una gama más amplia de funcionalidades, incluyendo la generación de PDF a partir de HTML, manipulación de documentos, extracción de texto e imágenes, y más.
// Import statement for IronPDF Java
import com.ironsoftware.ironpdf.*;
// Apply your license key
License.setLicenseKey("YOUR-LICENSE-KEY");
// Set a log path
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Render the URL page as a PDF. Stored in myPdf as type PdfDocument
PdfDocument myPdf = PdfDocument.renderUrlAsPdf("/java");
// Save the PdfDocument to a file
myPdf.saveAs(Paths.get("url_saved.pdf"));
PdfDocument pdfDocument = PdfDocument.renderUrlAsPdf("/java");
jPDFPrint tiene una API sencilla diseñada específicamente para la impresión de PDF. Proporciona métodos y propiedades para manejar los ajustes de impresión e interactuar con las impresoras.
IronPDF ofrece una API completa con un alcance más amplio de funcionalidad. Proporciona métodos y propiedades para crear, manipular y convertir documentos PDF, junto con un amplio soporte para la conversión de HTML a PDF.
jPDFPrint se integra perfectamente con aplicaciones Java y simplifica las tareas de impresión de PDF. Está bien documentado y es fácil de integrar en proyectos existentes.
IronPDF proporciona una API fácil de usar con documentación y tutoriales exhaustivos. Su amplio conjunto de características puede requerir más esfuerzo para aprender e integrar, pero sus capacidades ofrecen una gama más amplia de posibilidades para la manipulación de PDFs.
IronPDF sobresale en la conversión de HTML a PDF, permitiendo a los desarrolladores generar documentos PDF directamente desde contenido HTML, incluyendo el estilo CSS y la interactividad de JavaScript.
jPDFPrint no proporciona capacidades nativas de conversión de HTML a PDF. Su principal enfoque es imprimir archivos PDF existentes en lugar de generarlos a partir de HTML.
jPDFPrint ofrece funciones avanzadas de impresión como impresión a doble cara, impresión de folletos, marca de agua y más. Ofrece un control detallado sobre el proceso de impresión y permite la personalización de los comandos de la impresora.
Por otro lado, IronPDF no se especializa en características de impresión. Su principal fortaleza radica en la generación, manipulación y extracción de PDF.
Tanto IronPDF como jPDFPrint tienen comunidades activas y brindan soporte para desarrolladores. La tecnología PDF propietaria de Qoppa, creadora de jPDFPrint, ofrece documentación completa, tutoriales y soporte al cliente receptivo. IronPDF también proporciona una extensa documentación y recursos, incluyendo tutoriales y un equipo de soporte dedicado.
Los modelos de licenciamiento y precios difieren entre IronPDF y jPDFPrint. Los desarrolladores deben considerar los requisitos de su proyecto, el presupuesto y las restricciones de licencia al elegir entre las dos bibliotecas.
IronPDF ofrece una estructura de precios sencilla y abierta basada en la cantidad de desarrolladores que utilizarán el producto. Una licencia se puede comprar para un solo desarrollador, un grupo de desarrolladores o una organización con un número ilimitado de desarrolladores. Los costos son los siguientes:
Negocios: $2,999 anuales
Puede usar IronPDF en cualquier cantidad de proyectos con la compra de una licencia, y obtendrá actualizaciones gratuitas y soporte técnico durante un año. Tiene la opción de renovar su licencia a un costo menor después del primer año.
Las licencias perpetuas, anuales y por suscripción son solo algunas de las opciones de licencia que Qoppa PDF ofrece. Dependiendo de las partes específicas y la funcionalidad que necesite, el precio varía. Por ejemplo, una licencia perpetua del Qoppa PDF Automation Server cuesta $4,000, mientras que una licencia anual cuesta $1,500.
Qoppa PDF también proporciona un esquema de licencias basado en regalías para la orquestación de servicios web. Esto implica que se le cobrará según el volumen de archivos PDF que procese su servicio en línea.
IronPDF for Java y las bibliotecas jPDFPrint Java ofrecen características distintas para la manipulación de PDF. Mientras jPDFPrint se centra en la impresión programada de archivos PDF con funciones avanzadas y control detallado, IronPDF ofrece un conjunto completo de funcionalidades, incluida la generación de PDF a partir de HTML, la manipulación de documentos y la extracción. IronPDF es una biblioteca de PDF versátil para Java que permite a los desarrolladores manipular archivos PDF programáticamente. Proporciona una funcionalidad extensa, como la creación, edición, combinación, división y conversión de PDF desde HTML. IronPDF ofrece una API fácil de usar, características intuitivas y documentación completa que simplifican el proceso de desarrollo para la manipulación de PDF.
Por otro lado, jPDFPrint es una biblioteca de Java diseñada específicamente para imprimir archivos PDF programáticamente. Ofrece funciones avanzadas, como la selección de impresora, la selección de rango de páginas, la impresión a doble cara y los ajustes de tamaño y orientación del papel. jPDFPrint también ofrece una API intuitiva, documentación detallada y un excelente soporte al cliente.
IronPDF ofrece una estructura de precios más sencilla y abierta que jPDFPrint. El modelo de licenciamiento de IronPDF se basa en el número de desarrolladores que usarán la biblioteca, con opciones para un solo desarrollador, un equipo de desarrolladores o una organización con un número ilimitado de desarrolladores. Las licencias de IronPDF son ligeramente más baratas que las de jPDFPrint, con precios que van desde $749 hasta $5,999 por año, dependiendo del tipo de licencia. IronPDF también ofrece actualizaciones gratuitas y soporte técnico durante el primer año, con la opción de renovar a un costo menor.
En términos de capacidades técnicas, IronPDF ofrece un conjunto de funcionalidades más completo que jPDFPrint. IronPDF permite a los desarrolladores manipular archivos PDF de múltiples maneras, incluida la creación, edición, fusión, división y conversión de PDF desde HTML. IronPDF también proporciona una documentación extensa, una API fácil de usar y una interfaz intuitiva que simplifica el proceso de desarrollo para la manipulación de PDF.
Productos de Iron Software - Los desarrolladores que deseen comprar IronPDF o cualquier otro producto de Iron Software pueden aprovechar la oferta "Compre 5, Pague 2" disponible en el sitio web de Iron Software. Esta oferta brinda un descuento sustancial para los desarrolladores que compren múltiples productos de Iron Software, incluidos IronPDF, IronOCR e IronBarcode, entre otros.
9 productos API .NET para sus documentos de oficina