HTML є провідним форматом файлів для веб-розробки, і більшість сучасних веб-браузерів підтримують специфікації HTML. Хоча вони не залежать від платформи та можуть переглядатися в будь-якій операційній системі, вони також схильні до шкідливих сценаріїв, і ними нелегко поділитися через Інтернет. Отже, щоб уникнути таких обставин і для тривалого архівування, ми зберігаємо веб-сторінку як PDF(Portable Document Format).Тому в цій статті ми збираємося обговорити кроки, як конвертувати HTML у PDF за допомогою Java REST API.
API перетворення HTML у PDF
Aspose.HTML Cloud SDK для Java дозволяє виконувати операції маніпулювання HTML у програмах Java. Ми також можемо конвертувати HTML у формати документів із фіксованим макетом (PDF або XPS).Отже, щоб виконати перетворення, ми можемо завантажити вихідний HTML(XHTML, MHTML, EPUB, Markdown) із хмарного сховища або надати URL-адресу веб-сторінки. Тепер, щоб використовувати SDK, додайте таку залежність у pom.xml вашого проекту збірки maven, щоб aspose-html.jar можна було додати до проекту:
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>https://artifact.aspose.cloud/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-html-cloud</artifactId>
<version>20.7.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
Конвертуйте HTML у PDF на Java
Будь ласка, виконайте наведені нижче кроки, щоб конвертувати веб-сторінку у формат PDF у програмі Java.
- Перш за все, нам потрібно вказати деталі щодо Configuration.setAPPSID.
- По-друге, ми вказуємо інформацію Configuration.setAPIKEY.
- По-третє, ми встановлюємо деталі setBasePath(..).
- Потім нам потрібно вказати деталі setAuthPath(..).
- Установіть setUserAgent(…) як WebKit.
- Для нашої власної допомоги ми збираємося встановити setDebug(..) як true.
- API також дозволяє нам вказати деталі полів для результуючого файлу.
- Наступним кроком є читання вхідного HTML-файлу та завантаження його в екземпляр File.
- Тепер нам потрібно створити екземпляр класу RequestBody і розібрати медіа як “multipart/form-data”.
- Створіть об’єкт класу ConversionApi.
- Оскільки ми збираємося завантажити файл у хмарне сховище, нам також потрібно створити екземпляр StorageApi.
- Тепер нам потрібно викликати PostConvertDocumentInRequestToPdf(..), щоб розпочати процес перетворення. Цей метод приймає ім’я вхідного файлу, результуюче ім’я файлу та результуюче поле файлу та деталі розмірів як аргументи.
- Після перетворення результат повертається до об’єкта Stream, що містить необроблені байти тіла відповіді.
- Тепер нам потрібно отримати десеріалізоване тіло успішної відповіді в об’єкт ResponseBody.
- Завантажте отриманий файл із хмарного сховища в об’єкт ResponseBody.
- Потім, нарешті, ми викличемо наш спеціальний метод, щоб зберегти отриманий PDF-документ на локальному системному диску.
import com.aspose.html.api.ConversionApi;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import okhttp3.Response;
import okhttp3.ResponseBody;
import retrofit2.Call;
import java.io.*;
public class conversionCode {
public static void main(String[] args) {
com.aspose.html.Configuration.setAPP_SID("c235e685-1aab-4cda-a95b-54afd63eb87f");
com.aspose.html.Configuration.setAPI_KEY("b8da4ee37494f2ef8da3c727f3a0acb9");
com.aspose.html.Configuration.setBasePath("https://api.aspose.cloud/v3.0");
com.aspose.html.Configuration.setAuthPath("https://api.aspose.cloud/connect/token");
com.aspose.html.Configuration.setUserAgent("WebKit");
com.aspose.html.Configuration.setDebug(true);
String name = "Simple.html";// inpit Document name.
Integer width = 800; // Resulting image width.
Integer height = 1000; // Resulting image height.
Integer leftMargin = 10; // Left resulting image margin.
Integer rightMargin = 10; // Right resulting image margin.
Integer topMargin = 10; // Top resulting image margin.
Integer bottomMargin = 10; // Bottom resulting image margin.
String storage = null; // Name of the storage.
File f = new File("/Users/nayyershahbaz/Documents/"+name);
if(!f.exists()){
System.out.println("file not found");
}
RequestBody requestBody = RequestBody.create( MediaType.parse("multipart/form-data"), f);
MultipartBody.Part file = MultipartBody.Part.createFormData("file", f.getName(), requestBody);
try {
ConversionApi api = new com.aspose.html.ApiClient().createService(ConversionApi.class);
com.aspose.html.api.StorageApi storageApi = new com.aspose.html.ApiClient().createService(com.aspose.html.api.StorageApi.class);
Call<ResponseBody> call2 = api.PostConvertDocumentInRequestToPdf("resultantFile.pdf", file, width, height, leftMargin, rightMargin, topMargin, bottomMargin);
retrofit2.Response<ResponseBody> res = call2.execute();
ResponseBody resultant = res.body();
call2 = storageApi.downloadFile("resultantFile.pdf", null, storage);
checkAndSave(call2, "resultantFile.pdf");
} catch (Exception e) {
System.err.println("Exception during file processing...");
e.printStackTrace();
}
} // main ends here
public static void checkAndSave(Call<ResponseBody> call, String fileName) throws IOException
{
retrofit2.Response<ResponseBody> res = call.execute();
ResponseBody answer = res.body();
//Зберегти в тестовому каталозі
boolean result = saveToDisc(answer, fileName);
}
public static boolean saveToDisc(ResponseBody body, String fileName)
{
File savedFile = new File("/Users/nayyershahbaz/Documents/"+fileName);
try (InputStream inputStream = body.byteStream();
OutputStream outputStream = new FileOutputStream(savedFile))
{
byte[] fileReader = new byte[4096];
long fileSizeDownloaded = 0;
while (true) {
int read = inputStream.read(fileReader);
if (read == -1) break;
outputStream.write(fileReader, 0, read);
fileSizeDownloaded += read;
}
outputStream.flush();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
} // saveToDisc ends here
}
Висновок
У цій статті ми дізналися, як перетворити веб-сторінку на PDF за допомогою Java SDK. Ми помітили, що з меншою кількістю рядків коду повний HTML передається у формат PDF із повною точністю. Крім PDF-формату, API також дає змогу конвертувати HTML у JPG, HTML у PNG, HTML у TIFF, HTML у BMP і HTML в GIF операції перетворення. Так само ми можемо конвертувати файл Markdown у HTML або конвертувати MHTML у формат HTML за допомогою того самого API.
Якщо у вас виникнуть проблеми під час використання API, будь ласка, зв’яжіться з нами через безкоштовний форум підтримки продуктів.
Пов’язані посилання
Рекомендуємо перейти за наведеними нижче посиланнями, щоб дізнатися більше