конвертувати html в pdf

Як конвертувати HTML у PDF | HTML в PDF онлайн

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, будь ласка, зв’яжіться з нами через безкоштовний форум підтримки продуктів.

Пов’язані посилання

Рекомендуємо перейти за наведеними нижче посиланнями, щоб дізнатися більше