Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
PDF (Portable Document Format) 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 de manera programática 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. Analizaremos sus características, funcionalidades y compararemos sus ofertas para entender sus fortalezas y debilidades y cómo se diferencian de usar documentos PDF de Acrobat directamente.
IronPDF es una poderosa biblioteca de Java que permite a los desarrolladores crear, manipular y convertir PDFs de manera programática. Proporciona una amplia gama de funcionalidades, como generar PDFs a partir de HTML, imágenes o documentos existentes, fusionar 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 con documentos PDF de Acrobat directamente. También proporciona documentación extensa 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, incluidos 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 de Java desarrollada por Qoppa Software que se enfoca específicamente en imprimir documentos PDF de manera programática 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 Java.
jPDFPrint permite a los desarrolladores imprimir documentos PDF en cualquier impresora instalada en el sistema, controlar la configuración de carga e 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 características como impresión dúplex, impresión de folletos, impresión silenciosa sin intervención del usuario y 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 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 de Java desarrollada por Qoppa Software que se enfoca espec�ficamente en imprimir documentos PDF de manera program�tica 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 Java.
jPDFPrint permite a los desarrolladores imprimir documentos PDF en cualquier impresora instalada en el sistema, controlar la configuraci�n de carga e 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 caracter�sticas como impresi�n d�plex, impresi�n de folletos, impresi�n silenciosa sin intervenci�n del usuario y 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.
//importar el software de terceros de Qoppa para simplemente llamar a la biblioteca
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 {
// Cargar la p�gina HTML
URL url = new URL("http://www.example.com");
String html = org.apache.commons.io.IOUtils.toString(url);
// Crear un objeto PDFPrinterJob
PDFPrinterJob printerJob = new PDFPrinterJob();
// Establecer el archivo de salida
File outputFile = new File("output.pdf");
printerJob.setOutputFile(outputFile);
// Imprimir la p�gina HTML en el archivo de salida
printerJob.printHTML(html);
}
}
Ambas bibliotecas son muy sofisticadas y �tiles para manipular documentos PDF, como imprimir documentos PDF, 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 centra en la carga e impresi�n program�tica de archivos PDF. Aqu� hay una descripci�n general de c�mo usarlo:
Importar las Clases Necesarias: Comience importando las clases necesarias de la biblioteca jPDFPrint en su aplicaci�n Java.
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
. Puede 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.Imprimir el PDF: Llame al m�todo 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 ("Servicios PS disponibles: " + factories.length);
if(factories.length == 0)
{
System.err.println ("�No hay f�bricas PS disponibles!");
System.exit(0);
}
// Abrir el archivo PDF
PDFPrint pdfPrint = new PDFPrint ("test.pdf", null);
// Abrir el archivo de salida
FileOutputStream fos = new FileOutputStream("output.ps");
// Usar el primer servicio disponible
StreamPrintService sps = factories [0].getPrintService(fos);
DocPrintJob pj = sps.createPrintJob();
// Definir tama�o de papel
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(MediaSizeName.NA_LETTER);
// Crear un simple doc utilizando PDFPrint como Printable e imprimirlo
SimpleDoc doc = new SimpleDoc(pdfPrint, flavor, null);
pj.print(doc, aset);
// Cerrar el flujo de salida PS
fos.close();
}
catch (Throwable t)
{
t.printStackTrace();
}
}
}
IronPDF es una poderosa biblioteca de Java utilizada en la aplicaci�n Java para la manipulaci�n de PDF, incluida la generaci�n, conversi�n y manipulaci�n de documentos PDF. Aqu� hay una descripci�n general de c�mo usar IronPDF:
Importar las Clases Necesarias: Comience importando las clases necesarias de la biblioteca IronPDF en su aplicaci�n Java.
import com.ironsoftware.ironpdf.*;
Generaci�n de PDF: Para generar un documento PDF, tiene varias opciones con IronPDF. Por ejemplo, puede convertir entrada de Java, contenido HTML a PDF utilizando la clase HtmlToPdfRenderer
, que es un comando de impresi�n de documentos PDF, como se muestra en el c�digo de ejemplo para impresi�n silenciosa o env�o de documentos a PDF. Tambi�n puede crear documentos PDF de manera program�tica agregando elementos como texto, im�genes, tablas y anotaciones.
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
// Aplicar su clave de licencia
License.setLicenseKey("YOUR-LICENSE-KEY");
// Establecer una ruta de registro
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Renderizar el HTML como PDF. Almacenado en myPdf como tipo PdfDocument;
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");
// Guardar el PdfDocument en un archivo
myPdf.saveAs(Paths.get("html_saved.pdf"));
Manipulaci�n de Documentos: IronPDF proporciona una variedad de m�todos y propiedades para manipular documentos PDF existentes. Puede fusionar m�ltiples PDFs en un solo documento, dividir un PDF en varios archivos, extraer texto e im�genes, agregar marcas de agua, cifrar y descifrar PDFs, y mucho m�s.
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;
// Inicializar el objeto HeaderFooterOptions.
HeaderFooterOptions options = new HeaderFooterOptions();
PdfDocument pdf = PdfDocument.renderUrlAsPdf("http://www.google.com");
// Agregar un encabezado a cada p�gina f�cilmente
// Los campos combinables son:
// {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title}
options.setFirstPageNumber(1); // usar 2 si se agregar� una p�gina de portada
TextHeaderFooter textHeader = new TextHeaderFooter();
textHeader.setDrawDividerLine(true);
textHeader.setCenterText("{url}");
textHeader.setFont(FontTypes.getHelvetica());
textHeader.setFontSize(12);
pdf.addTextHeader(textHeader, options);
// Agregar un pie de p�gina tambi�n
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("Fall� al guardar el PDF");
throw new RuntimeException(e);
}
Conversi�n de PDF: Adem�s de generar PDFs a partir de HTML, IronPDF le permite convertir o imprimir documentos PDF de Acrobat a varios formatos, como im�genes (JPEG, PNG, TIFF), HTML e incluso hojas de c�lculo de Excel.
try {
List<BufferedImage> images = pdf.extractAllImages();
System.out.println("N�mero de im�genes extra�das del sitio web: " + 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("Fall� al extraer im�genes del sitio web");
exception.printStackTrace();
}
saveAs
para enviar documentos a un flujo o respuesta HTTP.Si bien tanto jPDFPrint como IronPDF ofrecen capacidades de manipulaci�n de PDF, IronPDF proporciona un conjunto de funcionalidades m�s completo y flexible. IronPDF se destaca en varios aspectos:
Conversión de HTML a PDF: IronPDF sobresale en la conversión de contenido HTML a PDF, lo que lo convierte en una opción adecuada para aplicaciones que requieren la generación dinámica de PDF a partir de páginas web o plantillas HTML.
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
// Aplicar su clave de licencia
License.setLicenseKey("YOUR-LICENSE-KEY");
// Establecer una ruta de registro
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Renderizar el HTML como PDF. Almacenado en myPdf como tipo PdfDocument;
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");
// Guardar el PdfDocument en un archivo
myPdf.saveAs(Paths.get("html_saved.pdf"));
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
// Caso 1: Generar un PDF a partir de una cadena de contenido de texto enriquecido
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();
}
// Caso 2: Generar un PDF a partir de un archivo RTF ubicado en una ruta del sistema de archivos
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 buscan una solución poderosa y flexible de manipulación de PDF con capacidades de conversión de HTML a PDF, características extensivas de manipulación de documentos y excelente soporte deben dar preferencia a IronPDF sobre jPDFPrint.
Sin embargo, es esencial evaluar los requisitos específicos de su proyecto y evaluar las características, documentación y soporte ofrecidos por cada biblioteca para tomar una decisión informada que se alinee con las necesidades de su aplicación.
jPDFPrint se enfoca únicamente en la impresión de archivos PDF y proporciona un control extenso sobre el proceso de impresión.
// Declaración de importación para IronPDF Java
import com.ironsoftware.ironpdf.*;
// Aplicar su clave de licencia
License.setLicenseKey("YOUR-LICENSE-KEY");
// Establecer una ruta de registro
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Renderizar la página de la URL como PDF. Almacenado en myPdf como tipo PdfDocument
PdfDocument myPdf = PdfDocument.renderUrlAsPdf("/java");
// Guardar el PdfDocument en un archivo
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 configuraciones de impresión e interactuar con 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 completa y tutoriales. Su amplio conjunto de características puede requerir más esfuerzo para aprender e integrar, pero sus capacidades ofrecen un rango más amplio de posibilidades para la manipulación de PDF.
IronPDF sobresale en la conversión de HTML a PDF, permitiendo a los desarrolladores generar documentos PDF directamente a partir de contenido HTML, incluidos estilos CSS e interactividad JavaScript.
jPDFPrint no proporciona capacidades nativas de conversión de HTML a PDF. Su enfoque principal es la impresión de archivos PDF existentes en lugar de generarlos a partir de HTML.
jPDFPrint proporciona características avanzadas de impresión como impresión dúplex, impresión de folletos, marcas de agua y más. Ofrece un control detallado sobre el proceso de impresión y permite la personalización de comandos de impresora.
IronPDF, por otro lado, 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 proporcionan soporte para desarrolladores. Qoppa Software, el creador de jPDFPrint, ofrece documentación completa, tutoriales y soporte al cliente receptivo. IronPDF también proporciona documentación extensa y recursos, incluidos tutoriales y un equipo de soporte dedicado.
Los modelos de licencias y precios difieren entre IronPDF y jPDFPrint. Los desarrolladores deben considerar los requisitos de su proyecto, presupuesto y restricciones de licencia al elegir entre las dos bibliotecas.
IronPDF ofrece una estructura de precios directa y abierta basada en la cantidad de desarrolladores que utilizarán el producto. Se puede comprar una licencia para un solo desarrollador, un grupo de desarrolladores o una organización con un número ilimitado de desarrolladores. Los costos son los siguientes:
Puede usar IronPDF en cualquier número 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.
Qoppa PDF ofrece una variedad de opciones de licencia, incluidas licencias perpetuas, anuales y por suscripción. El precio varía según los componentes y la funcionalidad específicos que necesite. Por ejemplo, una licencia perpetua del Servidor de Automatización de PDF de Qoppa cuesta $4,000, mientras que una licencia anual cuesta $1,500.
También se proporciona un esquema de licencias basado en regalías para la orquestación de servicios web por Qoppa PDF. Esto implica que se le cobrará según el volumen de archivos PDF que procese su servicio en línea.
Las bibliotecas Java IronPDF y jPDFPrint proporcionan características distintas para la manipulación de PDF. Mientras que jPDFPrint se enfoca en la impresión programática de archivos PDF con características avanzadas y control detallado, IronPDF ofrece un conjunto completo de funcionalidades, incluida la generación de PDF a partir de HTML, manipulación de documentos y extracción. IronPDF es una biblioteca PDF versátil para Java que permite a los desarrolladores manipular archivos PDF de manera programática. Proporciona funcionalidad extensa, como creación de PDF, edición, fusión, división y conversión desde HTML. IronPDF ofrece una API fácil de usar, características fáciles de usar 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 la impresión programática de archivos PDF. Proporciona características avanzadas, como selección de impresora, selección de rango de páginas, impresión dúplex y configuraciones de tamaño y orientación de papel. jPDFPrint también ofrece una API intuitiva, documentación detallada y excelente soporte al cliente.
IronPDF ofrece una estructura de precios más directa y abierta que jPDFPrint. El modelo de licencia de IronPDF se basa en el número de desarrolladores que utilizará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 económicas que las de jPDFPrint, con precios que van desde $749 hasta $2,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 desde HTML. IronPDF también proporciona documentación extensa, una API fácil de usar y una interfaz fácil de usar que simplifican el proceso de desarrollo para la manipulación de PDF.
Productos de Iron Software - Los desarrolladores que buscan comprar IronPDF o cualquier otro producto de Iron Software pueden aprovechar la oferta "Compra 5, Paga 2" disponible en el sitio web de Iron Software. Esta oferta proporciona un descuento sustancial para los desarrolladores que compran múltiples productos de Iron Software, incluidos IronPDF, IronOCR y IronBarcode, entre otros.
9 productos API .NET para sus documentos de oficina