Gerar PDF a partir de HTML usando Java [Passo a passo]
Este artigo mostrará como gerar PDFs a partir de HTML usando Java. Você pode manipular e renderizar documentos HTML facilmente, incluindo estilos CSS.
Aspose.HTML para Java
permite que suas aplicações realizem uma ampla variedade de tarefas de manipulação de HTML e oferece suporte a HTML5, CSS3, SVG e recursos de HTML Canvas. Com nossa API, você pode carregar páginas da web, analisar, editar o conteúdo e salvar e converter páginas.
Formatos populares que você pode manipular: XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP e outros.
Conjunto rico de recursos
Aspose.HTML para Java oferece muitos recursos em diversas áreas:
• Modelo de objeto de documento – permite editar, criar e remover nós, e é construído de acordo com a documentação oficial de HTML.
• Conversores de alto desempenho. Para mais informações sobre os formatos de arquivo suportados, visite a Lista de Recursos
ou os artigos de Conversão
.
• Processamento de CSS, JavaScript e outros formatos incorporados.
Gerar PDF a partir de HTML com uma única linha de código Java
Você pode gerar PDF a partir de HTML em sua aplicação Java com literalmente uma única linha de código usando os métodos estáticos da classe Conversor .
// Invoke the ConvertHTML method to convert the HTML to PDF.
com.aspose.html.converters.Converter.convertHTML(
"<span>Hello World!!</span>",
".",
new com.aspose.html.saving.PdfSaveOptions(),
"output.pdf"
);
Gerar PDF a partir de HTML linha a linha usando Java
Abaixo estão os passos para gerar PDF a partir de HTML linha a linha:
- Usando a classe HtmlDocument primeiro carregue o arquivo HTML.
- Em seguida, crie uma instância de PdfSaveOptions .
- Com o método ConvertHTML() da classe Conversor salve o HTML como um arquivo PDF. Você precisará passar o HTMLDocument , PdfSaveOptions e o caminho do arquivo de saída para o método ConvertHTML() a fim de gerar PDF a partir de HTML.
// Prepare an HTML code and save it to the file.
String code = "<span>Hello World!!</span>";
try (java.io.FileWriter fileWriter = new java.io.FileWriter("document.html")) {
fileWriter.write(code);
}
// Initialize an HTML document from the file
com.aspose.html.HTMLDocument document = new com.aspose.html.HTMLDocument("document.html");
try {
// Initialize PdfSaveOptions
com.aspose.html.saving.PdfSaveOptions options = new com.aspose.html.saving.PdfSaveOptions();
// Convert HTML to PDF
com.aspose.html.converters.Converter.convertHTML(
document,
options,
"output.pdf"
);
} finally {
if (document != null) {
document.dispose();
}
}
Personalizar o processo de renderização com a opção Save
Você pode personalizar o processo de renderização com o PdfSaveOptions , e especificar o tamanho da página , permissões de arquivo , margens , tipo de mídia CSS e muito mais. No exemplo abaixo você pode ver como usar PdfSaveOptions e criar um arquivo PDF com tamanho de página personalizado e cor de fundo:
// Prepare an HTML code and save it to the file
String code = "<span>Hello</span> <span>World!!</span>";
try (java.io.FileWriter fileWriter = new java.io.FileWriter("document.html")) {
fileWriter.write(code);
}
// Set A5 as a page-size and change the background color to green
com.aspose.html.saving.PdfSaveOptions options = new com.aspose.html.saving.PdfSaveOptions();
com.aspose.html.rendering.PageSetup pageSetup = new com.aspose.html.rendering.PageSetup();
com.aspose.html.drawing.Page anyPage = new com.aspose.html.drawing.Page();
anyPage.setSize(
new com.aspose.html.drawing.Size(
com.aspose.html.drawing.Length.fromInches(8.3f),
com.aspose.html.drawing.Length.fromInches(5.8f)
)
);
pageSetup.setAnyPage(anyPage);
options.setPageSetup(pageSetup);
options.setBackgroundColor(com.aspose.html.drawing.Color.getGreen());
// Convert HTML document to PDF
com.aspose.html.converters.Converter.convertHTML(
"document.html",
options,
"output.pdf"
);
No artigo Ajuste Fino de Conversores , você pode encontrar mais informações sobre PdfSaveOptions .
Provedor de fluxo de saída
Você pode implementar a interface MemoryStreamProvider
se desejar salvar arquivos em armazenamento remoto, como nuvem ou banco de dados.
A interface MemoryStreamProvider foi projetada como um objeto de callback para criar um fluxo e liberar o fluxo criado antecipadamente após a renderização da página ou do documento.
Mostraremos um exemplo de uso do MemoryStreamProvider abaixo:
package com.aspose.html.examples.java;
// For complete examples and data files, please go to https://github.com/aspose-html/Aspose.HTML-for-Java
public class MemoryStreamProvider implements java.io.Closeable {
// List of InputStream objects created during the document rendering
public java.util.List<java.io.InputStream> lStream = new java.util.ArrayList<>();
@Override
public void close() throws java.io.IOException {
for (java.io.InputStream stream : lStream) {
stream.close();
}
}
}
// Create an instance of MemoryStreamProvider
try (MemoryStreamProvider streamProvider = new MemoryStreamProvider()) {
// Initialize an HTML document
com.aspose.html.HTMLDocument document = new com.aspose.html.HTMLDocument("<span>Hello World!!</span>", ".");
try {
// Convert HTML to PDF by using the MemoryStreamProvider
com.aspose.html.converters.Converter.convertHTML(
document,
new com.aspose.html.saving.PdfSaveOptions(),
streamProvider.lStream
);
// Get access to the memory stream that contains the result data
java.io.InputStream inputStream = streamProvider.lStream.stream().findFirst().get();
// Flush the result data to the output file
try (java.io.FileOutputStream fileOutputStream = new java.io.FileOutputStream("output.pdf")) {
byte[] buffer = new byte[inputStream.available()];
inputStream.read(buffer);
fileOutputStream.write(buffer);
}
} finally {
if (document != null) {
document.dispose();
}
}
}
Aspose oferece suporte técnico para todos os seus produtos, desde artigos da base de conhecimento
, documentação
, blog
, exemplos de código
, e demonstrações
, até Suporte Gratuito
e o altamente disponível Suporte Pago
.
Se precisar de especialistas que trabalhem junto com você e ajudem a implementar o Aspose.HTML for Java de acordo com suas necessidades, a melhor solução é nossa Consultoria Paga
.