Converter HTML para PDF em Java
Aspose.PDF for Java pode converter arquivos HTML locais, conteúdo MHTML arquivado e páginas da web ao vivo em documentos PDF. Você pode controlar o pipeline de conversão com HtmlLoadOptions e MhtLoadOptions para influenciar a escala de layout, o manuseio de mídia CSS, a prioridade de regras de página, a incorporação de fontes, a resolução de recursos e o comportamento de renderização de página única.
Converter HTML para PDF
Use este exemplo quando um arquivo HTML local deve ser convertido diretamente em um documento PDF.
- Crie uma instância de
HtmlLoadOptionspara configurar como a fonte HTML é interpretada durante a importação. - Defina
HtmlPageLayoutOptionparaScaleToPageWidtho conteúdo HTML tão largo é dimensionado para a largura da página PDF de destino em vez de ser recortado. - Abra o arquivo HTML de origem passando seu caminho e as opções de carregamento configuradas para o
Documentconstrutor. - Salve o gerado
Documentcomo um arquivo PDF no caminho de saída de destino.
public static void convertHtmlToPdf(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setPageLayoutOption(HtmlPageLayoutOption.ScaleToPageWidth);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Converter HTML para PDF com opções de tipo de mídia
Use este exemplo quando o controle do tipo de mídia CSS deve ser gerenciado durante a conversão de HTML.
- Crie uma instância de
HtmlLoadOptionspara as configurações de conversão. - Defina
HtmlMediaTypeparaScreenquando o HTML deve ser renderizado com regras CSS destinadas à exibição na tela, em vez da mídia de impressão. - Abra o arquivo HTML com as opções de carregamento configuradas para que os estilos dependentes de media queries sejam aplicados durante a conversão.
- Salve o resultado
Documentcomo um arquivo PDF.
public static void convertHtmlToPdfMediaType(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setHtmlMediaType(HtmlMediaType.Screen);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Converter HTML para PDF com prioridade de regra de página CSS
Use este exemplo quando CSS @page as regras devem influenciar o layout da página final do PDF.
- Crie uma instância de
HtmlLoadOptionsantes de abrir o arquivo HTML. - Configure
setPriorityCssPageRule(false)quando outras configurações de layout devem ter precedência sobre o CSS@pagedeclarações na marcação de origem. - Carregue o conteúdo HTML em um
Documentcom as opções configuradas para que o layout da página seja resolvido durante a importação. - Salve o arquivo PDF gerado.
public static void convertHtmlToPdfPriorityCssPageRule(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setPriorityCssPageRule(false);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Converter HTML para PDF com fontes incorporadas
Use este exemplo quando o PDF de saída deve preservar as fontes HTML incorporando-as.
- Crie uma instância de
HtmlLoadOptionspara a configuração de importação HTML. - Ative
setEmbedFonts(true); assim, as fontes resolvidas durante a renderização HTML são armazenadas no PDF de saída. - Abra a fonte HTML com essas opções de carregamento para manter a tipografia original disponível no documento final.
- Salve o
Documentcomo um PDF com os recursos de fonte incorporados incluídos.
public static void convertHtmlToPdfEmbedFonts(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setEmbedFonts(true);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Renderizar conteúdo HTML em uma única página PDF
Use este exemplo quando conteúdo HTML longo deve ser mantido em uma única página PDF em vez de fluir por várias páginas.
- Crie uma instância de
HtmlLoadOptionspara as configurações de conversão. - Ative
setRenderToSinglePage(true); assim, o HTML importado é exibido em uma única página PDF, em vez de ser dividido em várias páginas. - Abra o HTML de origem com as opções de carregamento configuradas e deixe o Aspose.PDF montar o layout da página em um
Document. - Salve o arquivo PDF de saída.
public static void convertHtmlToPdfRenderContentToSamePage(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setRenderToSinglePage(true);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Converter HTML contendo SVG embutido
Use este exemplo quando o código-fonte HTML inclui dados SVG embutidos que precisam ser renderizados no PDF.
- Crie uma instância de
HtmlLoadOptionscom o diretório pai do arquivo HTML como caminho base, de modo que os recursos relacionados possam ser resolvidos de forma consistente durante a conversão. - Abra o arquivo HTML que contém marcação SVG embutida passando o caminho de origem e as opções de carregamento para o
Documentconstrutor. - Permita que o Aspose.PDF renderize o DOM HTML juntamente com os elementos SVG incorporados no conteúdo da página PDF.
- Salve o documento PDF gerado.
public static void convertHtmlToPdfWithSvgData(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions(inputFile.getParent().toString());
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Converter uma página da web em PDF
Use este exemplo quando um URL da web ao vivo deve ser renderizado e salvo como um documento PDF.
- Crie uma instância de
HtmlLoadOptionscom a URL de destino, para que recursos relativos, como folhas de estilo e imagens, possam ser resolvidos em relação a esse endereço. - Converta a string da URL em um objeto
URLe abra seu fluxo de entrada para buscar o conteúdo HTML ao vivo. - Crie um
Documentdo fluxo de resposta e das opções de carregamento configuradas para que a página baixada seja processada com a URL base correta. - Salve a página da web renderizada como um arquivo PDF e feche os recursos de fluxo automaticamente com try-with-resources.
public static void convertWebPageToPdf(String urlString, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions(urlString);
try {
URL url = URI.create(urlString).toURL();
try (InputStream inputStream = url.openStream()) {
try (Document document = new Document(inputStream, loadOptions)) {
document.save(outputFile.toString());
}
}
System.out.println(url + " converted into " + outputFile);
} catch (Exception e) {
e.printStackTrace();
}
}
Converter MHTML para PDF
Use este exemplo quando um arquivo MHTML arquivado deve ser convertido em um documento PDF.
- Crie uma instância de
MhtLoadOptionspara dizer ao Aspose.PDF para carregar a origem como conteúdo HTML MIME. - Abra o
.mhtou.mhtmlarquivo passando seu caminho e as opções de carregamento MHTML para oDocumentconstrutor. - Permita que o Aspose.PDF analise o conteúdo HTML arquivado e seus recursos incorporados no modelo de documento PDF.
- Salve o arquivo PDF gerado.
public static void convertMhtmlToPdf(Path inputFile, Path outputFile) {
MhtLoadOptions loadOptions = new MhtLoadOptions();
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}