Тази статия ще ви покаже как да генерирате PDF от HTML с Java. Лесно можете да манипулирате и рендерирате HTML документи, включително CSS стилове.
Aspose.HTML за Java
позволява на вашите приложения да изпълняват широк набор от задачи за манипулиране на HTML и поддържа HTML5, CSS3, SVG и функции на HTML Canvas. С нашия API можете да зареждате уеб страници, да анализирате, редактирате съдържанието и да запазвате и конвертирате страници.
Популярни формати, които можете да манипулирате: XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP и други.
PDF от HTML в Java
Богат набор от функции
Aspose.HTML за Java ви предлага множество функции в различни области:
• Document object model – позволява редактиране, създаване и премахване на възли и е изграден според официалната HTML документация.
• Високопроизводителни конвертори. За повече информация относно поддържаните файлови формати посетете Списък с функции
или статии за Конвертиране
.
• Обработка на CSS, JavaScript и други вградени формати.
Генериране на PDF от HTML с един ред Java код
Можете лесно да генерирате PDF от HTML във вашето Java приложение с буквално един ред код, използвайки статичните методи на класа Converter
.
// 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"
);
Генериране на PDF от HTML ред по ред с Java
По-долу са стъпките за генериране на PDF от HTML ред по ред:
- С помощта на класа HtmlDocument
първо заредете HTML файла.
- След това създайте екземпляр на PdfSaveOptions
.
- С метода ConvertHTML()
на класа Converter
запазете HTML като PDF файл. Трябва да предадете HTMLDocument
, PdfSaveOptions
и пътя до изходния файл на метода ConvertHTML(), за да генерирате PDF от 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();
}
}
Персонализиране на процеса на рендериране с опцията Save
Можете да персонализирате процеса на рендериране с PdfSaveOptions
и да зададете размера на страницата
, разрешенията за файл
, маргините
, CSS медиа типa
и много други. В примера по-долу можете да видите как се използва PdfSaveOptions за създаване на PDF файл с персонализиран размер на страницата и цвят на фона:
// 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"
);
В статията Fine-Tuning Converters
можете да намерите повече информация за PdfSaveOptions
.
Доставчик на изходен поток
Можете да имплементирате интерфейса MemoryStreamProvider
, ако желаете да запазвате файлове в отдалечено хранилище, като облак или база данни.
Интерфейсът MemoryStreamProvider е проектиран като callback обект за създаване на поток и освобождаване на предварително създадения поток след рендерирането на страницата или документа.
Ще ви покажем пример за използване на MemoryStreamProvider по-долу:
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 предоставя техническа поддръжка за всичките си продукти, включително статии от базата знания
, документация
, блог
, примерен код
, и демо
, както и Безплатна поддръжка
и широко достъпна Платена поддръжка
.
Ако се нуждаете от експерти, които да работят заедно с вас и да ви помогнат да внедрите Aspose.HTML за Java според вашите изисквания, най‑добрата опция е нашата Платни консултации
.