Преобразование HTML в PDF на Java
Aspose.PDF for Java может конвертировать локальные HTML‑файлы, архивированный контент MHTML и веб-страницы в PDF‑документы. Вы можете управлять конвейером конвертации с помощью HtmlLoadOptions и MhtLoadOptions для влияния на масштабирование макета, обработку CSS‑медиа, приоритет правил страниц, встраивание шрифтов, разрешение ресурсов и поведение одностраничного рендеринга.
Преобразование HTML в PDF
Используйте этот пример, когда локальный HTML‑файл необходимо напрямую преобразовать в PDF‑документ.
- Создайте экземпляр
HtmlLoadOptionsдля настройки того, как HTML‑источник интерпретируется при импорте. - Установите
HtmlPageLayoutOptionв значениеScaleToPageWidth, при этом широкое HTML‑содержимое масштабируется до ширины целевой страницы PDF вместо обрезки. - Откройте исходный HTML‑файл, передав его путь и настроенные параметры загрузки в конструктор
Document. - Сохраните созданный
Documentкак PDF‑файл по целевому пути вывода.
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);
}
Преобразование HTML в PDF с настройкой типа носителя
Используйте этот пример, когда обработку типа носителя CSS необходимо контролировать во время преобразования HTML.
- Создайте экземпляр
HtmlLoadOptionsнастроек конвертации. - Установите
HtmlMediaTypeв значениеScreen, когда HTML должен отображаться с использованием CSS‑правил, предназначенных для экранного отображения, а не для печати. - Откройте HTML‑файл с настроенными параметрами загрузки, чтобы стили, зависящие от media‑query, применялись во время конвертации.
- Сохраните результат
Documentкак 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);
}
Преобразование HTML в PDF с настройкой приоритета правил CSS для страниц
Используйте этот пример, когда правила CSS @page должны влиять на итоговый макет страниц PDF.
- Создайте экземпляр
HtmlLoadOptionsперед открытием HTML‑файла. - Настройте
setPriorityCssPageRule(false), когда другие настройки макета должны иметь приоритет над объявлениями CSS@pageв исходной разметке. - Загрузите HTML‑содержимое в
Documentс настроенными параметрами, чтобы макет страницы был определён при импорте. - Сохраните сгенерированный файл PDF.
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);
}
Преобразование HTML в PDF со встроенными шрифтами
Используйте этот пример, когда результирующий PDF должен сохранять шрифты HTML, встраивая их.
- Создайте экземпляр
HtmlLoadOptionsконфигурации импорта HTML. - Включите
setEmbedFonts(true), при этом шрифты, определённые во время рендеринга HTML, сохраняются в выходном PDF. - Откройте HTML‑источник с этими параметрами загрузки, чтобы сохранить оригинальную типографику в итоговом документе.
- Сохраните
Documentв виде PDF с включёнными встроенными ресурсами шрифтов.
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);
}
Отображение HTML на одной странице PDF
Используйте этот пример, когда длинный HTML‑контент должен быть размещён на одной странице PDF, а не растекаться на несколько страниц.
- Создайте экземпляр
HtmlLoadOptionsнастроек конвертации. - Включите
setRenderToSinglePage(true), при этом импортированный HTML размещается на одной странице PDF, а не разбивается на несколько страниц. - Откройте исходный HTML с настроенными параметрами загрузки и позвольте Aspose.PDF построить макет страницы в
Document. - Сохраните выходной PDF‑файл.
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);
}
Преобразование HTML со встроенным SVG
Используйте этот пример, когда HTML‑источник содержит встроенные данные SVG, которые необходимо отобразить в PDF.
- Создайте экземпляр
HtmlLoadOptionsс родительским каталогом HTML‑файла в качестве базового пути, чтобы связанные ресурсы могли быть последовательно разрешены во время преобразования. - Откройте HTML‑файл, содержащий встроенную разметку SVG, передав путь к источнику и параметры загрузки в конструктор
Document. - Позвольте Aspose.PDF рендерить HTML DOM вместе со встроенными SVG‑элементами в содержимое страницы PDF.
- Сохраните сгенерированный PDF‑документ.
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);
}
Преобразование веб-страницы в PDF
Используйте этот пример, когда содержимое по URL-адресу веб-страницы должен быть отрисован и сохранён как PDF‑документ.
- Создайте экземпляр
HtmlLoadOptionsс целевым URL, чтобы относительные ресурсы, такие как таблицы стилей и изображения, могли быть разрешены относительно этого адреса. - Преобразуйте строку URL в объект
URLи откройте его поток ввода, чтобы получить актуальное HTML-содержимое. - Создайте
Documentиз потока ответа и настроенных параметров загрузки, чтобы загруженная страница обрабатывалась с правильным базовым URL. - Сохраните отрендеренную веб-страницу в виде PDF-файла и автоматически закройте ресурсы потоков с помощью конструкции 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();
}
}
Преобразование MHTML в PDF
Используйте этот пример, когда архивный файл MHTML должен быть преобразован в документ PDF.
- Создайте экземпляр
MhtLoadOptions, чтобы указать Aspose.PDF загружать источник как MIME HTML‑контент. - Откройте файл
.mhtили.mhtml, передавая его путь и параметры загрузки MHTML в конструкторDocument. - Позвольте Aspose.PDF разобрать архивированный HTML‑контент и его встроенные ресурсы в модель документа PDF.
- Сохраните сгенерированный файл PDF.
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);
}