Uma comparação entre IronPDF for Java e iTextPDF iText7 for Java
Hoje em dia, os desenvolvedores podem se beneficiar de soluções melhores graças à tecnologia em constante aprimoramento.
O futuro dos processos de desenvolvimento de software reside na automação. Há muito tempo que os arquivos PDF representam dificuldades para os desenvolvedores. Ao trabalhar com PDFs (ou seja, ao produzir conteúdo e converter conteúdo de outros formatos para PDF), há inúmeras considerações a serem feitas. Com o desenvolvimento de inúmeras bibliotecas destinadas a auxiliar na leitura, escrita, criação e até mesmo conversão de PDFs em diversos formatos, essas necessidades agora estão atendidas.
Este artigo comparará duas das bibliotecas PDF mais bem recebidas por desenvolvedores Java para edição, impressão e criação de arquivos PDF:
- Biblioteca Java IronPDF : Uma biblioteca Java para PDF que se concentra na geração de PDFs a partir de HTML.
- Biblioteca ITextPDF: Uma biblioteca de código aberto, desenvolvida principalmente em Java, que se concentra na geração de PDFs usando uma API programável.
Analisaremos as funcionalidades das duas bibliotecas antes de abordarmos o custo de desempenho na conversão e manipulação de PDFs, a fim de determinar qual biblioteca é a mais adequada para sua aplicação. Além disso, a duração de cada biblioteca será registrada para pesquisas futuras.
Instalando o IronPDF Java
Para instalar o IronPDF for Java , basta declará-lo como uma dependência. Para definir o IronPDF como uma dependência, adicione o seguinte ao seu pom.xml:
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>YOUR_VERSION_HERE</version>
</dependency>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>YOUR_VERSION_HERE</version>
</dependency>
Observação: você pode baixar o arquivo .jar manualmente:
- Acesse o repositório Maven do IronPDF for Java para consultar a página do repositório Maven.
- Extraia o conteúdo do arquivo zip.
- Crie uma pasta e copie o conteúdo da pasta compactada.
- Abra o Eclipse IDE.
- Crie um novo projeto Java.
- Adicione os arquivos .jar do IronPDF ao classpath.
- Conclua o assistente de criação de projetos. É isso!
Funcionalidades do IronPDF
Os desenvolvedores podem produzir, ler e manipular PDFs rapidamente com a ajuda da robusta biblioteca IronPDF . O IronPDF utiliza o mecanismo do Chrome em sua essência e oferece uma variedade de recursos práticos e poderosos, incluindo a capacidade de converter arquivos HTML5, JavaScript, CSS e de imagem para PDF. O IronPDF também pode adicionar cabeçalhos e rodapés exclusivos e criar arquivos PDF exatamente como aparecem em um navegador da web. O IronPDF oferece suporte a diversos formatos web, incluindo HTML, ASPX, Razor View e MVC. Os principais atributos do IronPDF são os seguintes:
- Crie, leia e edite PDFs facilmente com programas Java.
- Crie PDFs a partir de qualquer link de URL de site que possua configurações de User-Agents, Proxies, Cookies, Cabeçalhos HTTP e Variáveis de Formulário para suportar login usando formulários de login HTML.
- Remover fotos de publicações em PDF já existentes.
- Adicione texto, fotos, marcadores, marcas d'água e outros elementos a PDFs.
- Mesclar e dividir as páginas de vários documentos PDF.
- Converter arquivos de mídia, incluindo arquivos CSS, em documentos.
Instalando o ITextPDF Java
O iTextPDF está disponível gratuitamente no site do iTextPDF . Esta biblioteca é de código aberto sob o modelo de licenciamento de software AGPL.
Para adicionar a biblioteca iText ao seu aplicativo, inclua o seguinte repositório Maven no seu arquivo pom.xml.
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.2</version>
</dependency>
Baixe diretamente os arquivos .jar do iTextPDF e o arquivo .jar do slf4j.jar. Para usar as bibliotecas, adicione os arquivos .jar do iTextPDF ao classpath do sistema.
Funcionalidades da Biblioteca iText
- Criar PDFs a partir de HTML, XML e imagens (png, jpg, etc.).
- Adicione marcadores, números de página e indicadores a documentos PDF.
- Dividir um arquivo PDF em vários PDFs ou combinar vários PDFs em um único PDF.
- Editar formulários PDF programaticamente.
- Adicione texto, imagens e figuras geométricas a arquivos PDF.
Converter strings HTML em PDFs usando iTextPDF Java
Em iText for Java, HTMLConverter é a classe principal usada para converter HTML em PDF.
Existem três métodos principais em HTMLConverter:
convertToDocument, que retorna um objetoDocument.convertToElements, que retorna uma lista de objetosIElement.convertToPdflida com a conversão de conteúdo HTML para PDF. Este método aceita entrada HTML como um objetoString, um objetoFileou um objetoInputStream, e retorna um objetoFile, um objetoOutputStreamou um objetoDocument.
package com.hmkcode;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.html2pdf.HtmlConverter;
public class App {
// HTML content to be converted to PDF
public static final String HTML = "<h1>Hello</h1>"
+ "<p>This was created using iText</p>"
+ "<a href='http://hmkcode.com'>hmkcode.com</a>";
public static void main(String[] args) throws FileNotFoundException, IOException {
// Convert the HTML content to PDF and save it
HtmlConverter.convertToPdf(HTML, new FileOutputStream("string-to-pdf.pdf"));
System.out.println("PDF Created!");
}
}
package com.hmkcode;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.html2pdf.HtmlConverter;
public class App {
// HTML content to be converted to PDF
public static final String HTML = "<h1>Hello</h1>"
+ "<p>This was created using iText</p>"
+ "<a href='http://hmkcode.com'>hmkcode.com</a>";
public static void main(String[] args) throws FileNotFoundException, IOException {
// Convert the HTML content to PDF and save it
HtmlConverter.convertToPdf(HTML, new FileOutputStream("string-to-pdf.pdf"));
System.out.println("PDF Created!");
}
}
Converter strings HTML em PDFs usando IronPDF Java
A classe PdfDocument do IronPDF oferece vários métodos estáticos que permitem aos desenvolvedores Java produzir texto HTML a partir de diversas fontes. Um desses métodos é o método PdfDocument.renderHtmlAsPdf, que converte uma string de marcação HTML em um documento PDF.
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
public class IronPdfExample {
public static void main(String[] args) {
// Set the license and log path
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Convert the HTML content to a PDF
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");
// Save the generated PDF
myPdf.saveAs(Paths.get("html_saved.pdf"));
}
}
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
public class IronPdfExample {
public static void main(String[] args) {
// Set the license and log path
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Convert the HTML content to a PDF
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");
// Save the generated PDF
myPdf.saveAs(Paths.get("html_saved.pdf"));
}
}
Converter arquivos HTML para PDF usando o iTextPDF em Java
O método convertToPdf pode ser usado para converter qualquer arquivo HTML em PDF.
Imagens e arquivos CSS podem ser incluídos no arquivo HTML. No entanto, eles devem estar no mesmo local que o arquivo HTML. Podemos usar a classe ConverterProperties para definir o caminho base para CSS e imagens referenciadas. Isso é útil quando os arquivos HTML estão localizados em diretórios diferentes.
Considere um arquivo index.html contendo a seguinte marcação.
<html>
<head>
<title>HTML to PDF</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>HTML to PDF</h1>
<p>
<span class="itext">itext</span> 7.1.9
<span class="description"> converting HTML to PDF</span>
</p>
<table>
<tr>
<th class="label">Title</th>
<td>iText - Java HTML to PDF</td>
</tr>
<tr>
<th>URL</th>
<td>http://hmkcode.com/itext-html-to-pdf-using-java</td>
</tr>
</table>
</body>
</html>
<html>
<head>
<title>HTML to PDF</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>HTML to PDF</h1>
<p>
<span class="itext">itext</span> 7.1.9
<span class="description"> converting HTML to PDF</span>
</p>
<table>
<tr>
<th class="label">Title</th>
<td>iText - Java HTML to PDF</td>
</tr>
<tr>
<th>URL</th>
<td>http://hmkcode.com/itext-html-to-pdf-using-java</td>
</tr>
</table>
</body>
</html>
O código-fonte abaixo converte o arquivo index.html em um PDF:
package com.hmkcode;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.html2pdf.HtmlConverter;
public class App {
public static void main(String[] args) throws FileNotFoundException, IOException {
// Convert the HTML file to PDF and save it
HtmlConverter.convertToPdf(new FileInputStream("index.html"),
new FileOutputStream("index-to-pdf.pdf"));
System.out.println("PDF Created!");
}
}
package com.hmkcode;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.html2pdf.HtmlConverter;
public class App {
public static void main(String[] args) throws FileNotFoundException, IOException {
// Convert the HTML file to PDF and save it
HtmlConverter.convertToPdf(new FileInputStream("index.html"),
new FileOutputStream("index-to-pdf.pdf"));
System.out.println("PDF Created!");
}
}
Converter arquivos HTML para PDF usando o IronPDF for Java
O método PdfDocument.renderHtmlFileAsPdf do IronPDF converte arquivos HTML localizados em um computador ou em um caminho de arquivo de rede.
import com.ironsoftware.ironpdf.*;
import java.nio.file.Path;
import java.nio.file.Paths;
public class IronPdfExample {
public static void main(String[] args) {
// Convert the HTML file to PDF and save it
PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("example.html");
myPdf.saveAs(Paths.get("html_file_saved.pdf"));
}
}
import com.ironsoftware.ironpdf.*;
import java.nio.file.Path;
import java.nio.file.Paths;
public class IronPdfExample {
public static void main(String[] args) {
// Convert the HTML file to PDF and save it
PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("example.html");
myPdf.saveAs(Paths.get("html_file_saved.pdf"));
}
}
Adicione imagens a arquivos PDF usando o IronPDF Java.
Você pode usar o método PdfDocument.fromImage do IronPDF para renderizar um grupo de imagens em um único arquivo PDF. O exemplo a seguir usa esse método em uma pequena lista de imagens localizadas em diferentes caminhos do sistema de arquivos.
import com.ironsoftware.ironpdf.*;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
public class IronPdfExample {
public static void main(String[] args) {
// Create an ArrayList containing the list of images that you want to combine
// into ONE PDF document
Path imageA = Paths.get("directoryA/1.png");
Path imageB = Paths.get("directoryB/2.png");
Path imageC = Paths.get("3.png");
List<Path> imageFiles = new ArrayList<>();
imageFiles.add(imageA);
imageFiles.add(imageB);
imageFiles.add(imageC);
// Convert the three images into a PDF and save them.
PdfDocument.fromImage(imageFiles).saveAs(Paths.get("assets/composite.pdf"));
}
}
import com.ironsoftware.ironpdf.*;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
public class IronPdfExample {
public static void main(String[] args) {
// Create an ArrayList containing the list of images that you want to combine
// into ONE PDF document
Path imageA = Paths.get("directoryA/1.png");
Path imageB = Paths.get("directoryB/2.png");
Path imageC = Paths.get("3.png");
List<Path> imageFiles = new ArrayList<>();
imageFiles.add(imageA);
imageFiles.add(imageB);
imageFiles.add(imageC);
// Convert the three images into a PDF and save them.
PdfDocument.fromImage(imageFiles).saveAs(Paths.get("assets/composite.pdf"));
}
}
Adicionar imagens a PDFs usando ITextPDF Java
O exemplo de código completo abaixo usa o iText para converter duas imagens localizadas no diretório de trabalho atual em um único arquivo PDF.
import java.io.*;
import com.itextpdf.io.image.*;
import com.itextpdf.kernel.pdf.*;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Image;
public class InsertImagePDF {
public static void main(String[] args) throws IOException {
String currDir = System.getProperty("user.dir");
// Getting path of current working directory to create the pdf file in the same directory
String pdfPath = currDir + "/InsertImage.pdf";
// Creating PdfWriter object to write the PDF file to the path
PdfWriter writer = new PdfWriter(pdfPath);
// Creating PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating ImageData from images on disk (from given paths) using ImageDataFactory
ImageData imageDataA = ImageDataFactory.create(currDir + "/imageA.jpg");
Image imgA = new Image(imageDataA);
ImageData imageDataB = ImageDataFactory.create(currDir + "/imageB.jpg");
Image imgB = new Image(imageDataB);
// Adding images to the document
doc.add(imgA);
doc.add(imgB);
// Close the document
doc.close();
System.out.println("Image added successfully and PDF file created!");
}
}
import java.io.*;
import com.itextpdf.io.image.*;
import com.itextpdf.kernel.pdf.*;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Image;
public class InsertImagePDF {
public static void main(String[] args) throws IOException {
String currDir = System.getProperty("user.dir");
// Getting path of current working directory to create the pdf file in the same directory
String pdfPath = currDir + "/InsertImage.pdf";
// Creating PdfWriter object to write the PDF file to the path
PdfWriter writer = new PdfWriter(pdfPath);
// Creating PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating ImageData from images on disk (from given paths) using ImageDataFactory
ImageData imageDataA = ImageDataFactory.create(currDir + "/imageA.jpg");
Image imgA = new Image(imageDataA);
ImageData imageDataB = ImageDataFactory.create(currDir + "/imageB.jpg");
Image imgB = new Image(imageDataB);
// Adding images to the document
doc.add(imgA);
doc.add(imgB);
// Close the document
doc.close();
System.out.println("Image added successfully and PDF file created!");
}
}
Licenciamento
O iTextSharp é de código aberto e licenciado sob a AGLP.
Isso garante que qualquer pessoa que utilize um aplicativo que incorpore o iTextSharp tenha direito a uma cópia completa do código-fonte do aplicativo, mesmo que o faça por meio de uma rede corporativa ou da internet.
Se você pretende usar a licença para fins comerciais, entre em contato diretamente com a iText para discutir os preços.
O IronPDF é gratuito para desenvolvimento e pode sempre ser licenciado para uso comercial. Detalhes da licença do IronPDF para uso em projetos individuais, desenvolvedores individuais, agências e corporações globais, bem como para redistribuição SaaS e OEM. Todas as licenças incluem garantia de reembolso de 30 dias, um ano de suporte e atualizações do produto, validade para desenvolvimento/teste/produção e também uma licença permanente (compra única).
O preço do pacote Lite começa em $799.
- Os desenvolvedores podem usufruir do uso ilimitado da biblioteca para desenvolvimento. Em termos de licenciamento geral, as taxas são muito acessíveis.
- Suporte ilimitado gratuito por um ano.
- Períodos de teste gratuitos também estão disponíveis para fins de licenciamento.
- Todas as licenças incluem uma garantia de reembolso de 30 dias.
- As licenças são válidas para todos os ambientes (desenvolvimento, teste, produção, etc.).
- As licenças incluem um ano de suporte incondicional.
- As licenças do IronPDF exigem uma compra única.
IronPDF vs iText
Existem diversas diferenças significativas entre o iText e o IronPDF.
A API do iText é estruturada em torno de um modelo programático. Nesse modelo, a manipulação das propriedades e do conteúdo do PDF é mais granular e de baixo nível. Embora isso dê ao programador mais controle e flexibilidade, também exige a escrita de mais código para implementar os casos de uso.
A API do IronPDF foi estruturada para otimizar a produtividade do desenvolvedor. O IronPDF simplifica a edição, manipulação, criação e outras tarefas complexas de PDFs, permitindo que os desenvolvedores as concluam com apenas algumas linhas de código.
Conclusão
Todos os clientes da Iron Software têm a opção de adquirir o pacote completo com apenas dois cliques. Atualmente, você pode adquirir todas as cinco bibliotecas do Iron Software Suite , juntamente com suporte contínuo para cada uma delas, pelo preço de apenas duas bibliotecas do pacote.
Perguntas frequentes
Como posso converter HTML para PDF usando uma biblioteca Java?
Você pode usar o método renderHtmlAsPdf do IronPDF para converter strings HTML em documentos PDF. Você também pode converter arquivos HTML em PDFs usando o método ` renderHtmlFileAsPdf .
Quais são os passos para instalar a biblioteca Java PDF?
Para instalar o IronPDF for Java, você precisa declará-lo como uma dependência no seu arquivo pom.xml ou baixar manualmente o arquivo .jar do repositório Maven do IronPDF e incluí-lo no classpath do seu projeto.
Como o IronPDF for Java se compara ao iTextPDF?
O IronPDF se concentra em simplificar tarefas com menos linhas de código, usando um mecanismo do Chrome para conversões de HTML para PDF. O iTextPDF oferece um controle mais granular por meio de uma API programática, mas requer mais código para manipulação.
Posso adicionar imagens a um PDF usando uma biblioteca Java para PDF?
Sim, com o IronPDF, você pode usar o método PdfDocument.fromImage para renderizar imagens em um único arquivo PDF, fornecendo uma lista de caminhos de arquivos de imagem.
Quais opções de licenciamento a biblioteca Java PDF oferece?
A IronPDF oferece opções flexíveis de licenciamento, incluindo licenças para projeto único, desenvolvedor individual, agência e corporação, além de opções para redistribuição SaaS e OEM. Todas as licenças incluem garantia de reembolso de 30 dias e um ano de suporte.
É possível editar PDFs usando o IronPDF for Java?
Sim, o IronPDF permite editar, mesclar e manipular documentos PDF. Ele oferece ferramentas para adicionar cabeçalhos e rodapés, além de lidar com diversos formatos web, como HTML, ASPX e MVC.
Existem opções gratuitas disponíveis para bibliotecas Java PDF?
O iTextPDF é de código aberto sob a licença AGPL, que permite o uso gratuito, mas exige o compartilhamento do código-fonte do aplicativo que o utiliza. O IronPDF é gratuito para desenvolvimento, mas requer uma licença para uso comercial.
Qual a melhor maneira de converter arquivos HTML para PDF em Java?
O método ` renderHtmlFileAsPdf do IronPDF permite converter arquivos HTML de um caminho de arquivo local ou de rede em documentos PDF, oferecendo um processo simplificado para desenvolvedores.
Quais recursos o IronPDF oferece para geração de PDFs?
O IronPDF permite criar, ler e editar PDFs com recursos como HTML5, JavaScript, CSS e conversão de imagens para PDF, além de adicionar cabeçalhos/rodapés e muito mais. Ele prioriza a produtividade do desenvolvedor e a facilidade de uso.
O que é necessário para integrar o iTextPDF em um projeto Java?
Para incluir o iTextPDF em seu projeto Java, você precisa adicionar os detalhes do repositório Maven no seu arquivo pom.xml e baixar os arquivos .jar necessários para a integração.











