Converter arquivo HTML para PDF em Java
Visão Geral
Este artigo explica como converter HTML para PDF usando Java. O código é muito simples, basta carregar o HTML na classe Document e salvá-lo como um PDF de saída. Converter MHTML para PDF em Java também é semelhante. Ele abrange os seguintes tópicos:
Biblioteca Java para Conversão de HTML para PDF
Aspose.PDF for Java é uma API de manipulação de PDF que permite converter documentos HTML existentes para PDF de forma contínua. O processo de conversão de HTML para PDF pode ser personalizado de maneira flexível.
Converter HTML para PDF
O exemplo de código Java a seguir mostra como converter um documento HTML para PDF.
- Crie uma instância da classe HtmlLoadOptions.
- Inicialize o objeto Document.
- Salve o documento PDF de saída chamando o método Document.save(String).
// Abra o documento PDF de origem
Document document = new Document(DATA_DIR + "PDFToHTML.pdf")
// Instanciar objeto HTML SaveOptions
HtmlSaveOptions htmlsaveOptions = new HtmlSaveOptions();
// Salve o documento
document.save(DATA_DIR + "MultiPageHTML_out.html", htmlsaveOptions);
Tente converter HTML para PDF online
A Aspose apresenta a você a aplicação online gratuita “HTML to PDF”, onde você pode tentar investigar a funcionalidade e a qualidade com que funciona.
Conversão avançada de HTML para PDF
O mecanismo de conversão HTML possui várias opções que nos permitem controlar o processo de conversão.
Suporte a Consultas de Mídia
- Crie um LoadOptions HTML.
- Defina o modo Print ou Screen.
- Inicialize o objeto Document.
- Salve o documento PDF de saída.
Consultas de mídia são uma técnica popular para entregar uma folha de estilo personalizada para diferentes dispositivos. Podemos definir o tipo de dispositivo usando a propriedade HtmlMediaType.
// Crie um LoadOptions HTML
HtmlLoadOptions options = new HtmlLoadOptions();
// Defina o modo Print ou Screen
options.setHtmlMediaType(HtmlMediaType.Print);
// Inicialize o objeto documento
String htmlFileName = Paths.get(DATA_DIR.toString(), "test.html").toString();
Document document = new Document(htmlFileName, options);
// Salve o documento PDF de saída
document.save(Paths.get(DATA_DIR.toString(), "HTMLtoPDF.pdf").toString());
document.close();
Ativar (desativar) incorporação de fontes
- Adicione novas LoadOptions Html.
- Ative/Desative a incorporação de fontes.
- Salve um novo Documento.
As páginas HTML frequentemente usam fontes (por exemplo, fontes de pasta local, Google Fonts, etc). Podemos também controlar a incorporação de fontes em um documento usando a propriedade IsEmbedFonts.
HtmlLoadOptions options = new HtmlLoadOptions();
// Ativar/Desativar incorporação de fontes
options.setEmbedFonts(true);
Document document = new Document(DATA_DIR + "test_fonts.html", options);
document.save(DATA_DIR + "html_test.PDF");
document.close();
Gerenciar carregamento de recursos externos
O Motor de Conversão fornece um mecanismo que permite controlar o carregamento de certos recursos associados ao documento HTML.
A classe HtmlLoadOptions possui a propriedade CustomLoaderOfExternalResources com a qual podemos definir o comportamento do carregador de recursos.
HtmlLoadOptions options = new HtmlLoadOptions();
options.setCustomLoaderOfExternalResources(
new LoadOptions.ResourceLoadingStrategy() {
public LoadOptions.ResourceLoadingResult invoke(String resourceURI) {
// Criando recurso de modelo limpo para substituição:
LoadOptions.ResourceLoadingResult res = new LoadOptions.ResourceLoadingResult(new byte[] {});
// Retornar array de bytes vazio no caso do servidor i.imgur.com
if (resourceURI.contains("i.imgur.com")) {
return res;
} else {
// Processar recursos com carregador de recursos padrão
res.setLoadingCancelled(true);
return res;
}
}
});
Document document = new Document(DATA_DIR + "test.html", options);
document.save(DATA_DIR + "html_test.PDF");
document.close();
Converter MHTML para PDF
Tente converter MHTML para PDF online
Aspose.PDF for Java apresenta a você o aplicativo online gratuito “MHTML to PDF”, onde você pode tentar investigar a funcionalidade e a qualidade com que ele funciona.
MHTML, abreviação de MIME HTML, é um formato de arquivo de arquivo de página da web usado para combinar recursos que geralmente são representados por links externos (como imagens, animações Flash, applets Java e arquivos de áudio) com código HTML em um único arquivo. O conteúdo de um arquivo MHTML é codificado como se fosse uma mensagem de e-mail em HTML, usando o tipo MIME multipart/related.
O próximo trecho de código mostra como converter arquivos MHTML para o formato PDF com Java:
// Crie uma instância de MhtLoadOptions para especificar as opções de carregamento para o
// arquivo MHTML.
MhtLoadOptions options = new MhtLoadOptions();
// Defina o caminho do arquivo MHTML.
String mhtmlFileName = Paths.get(DATA_DIR.toString(), "samplefile.mhtml").toString();
// Carregar o arquivo MHTML em um objeto Document.
Document document = new Document(mhtmlFileName, options);
// Salve o documento como um arquivo PDF.
document.save(Paths.get(DATA_DIR.toString(), "MarkdowntoPDF.pdf").toString());
// Feche o documento.
document.close();