تحويل html إلى pdf

كيفية تحويل HTML إلى PDF | تحويل HTML إلى PDF عبر الإنترنت

HTML هو تنسيق ملف رائد لتطوير الويب، وتدعم غالبية متصفحات الويب الحديثة مواصفات HTML. ورغم أنه مستقل عن النظام الأساسي ويمكن عرضه على أي نظام تشغيل، إلا أنه أيضًا عرضة للبرامج النصية الضارة ولا يمكن مشاركته بسهولة عبر الإنترنت. لذا، لتجنب مثل هذه الظروف وللأرشفة طويلة الأمد، نحفظ صفحة الويب بتنسيق PDF(تنسيق المستندات المحمولة).لذا في هذه المقالة، سنناقش الخطوات الخاصة بكيفية تحويل HTML إلى PDF باستخدام واجهة برمجة تطبيقات Java REST.

تحويل HTML إلى PDF

Aspose.HTML Cloud SDK for 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.
  • تسمح لنا واجهة برمجة التطبيقات أيضًا بتحديد تفاصيل الهامش للملف الناتج.
  • الخطوة التالية هي قراءة ملف HTML المدخل وتحميله إلى مثيل الملف.
  • الآن نحتاج إلى إنشاء مثيل لفئة 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، تتيح لك واجهة برمجة التطبيقات أيضًا إجراء عمليات تحويل HTML إلى JPG، وHTML إلى PNG، وHTML إلى TIFF، وHTML إلى BMP، وHTML إلى GIF. وبالمثل، يمكننا تحويل ملف Markdown إلى HTML أو تحويل MHTML إلى تنسيق HTML باستخدام نفس واجهة برمجة التطبيقات.

في حالة مواجهة أي مشكلات أثناء استخدام واجهة برمجة التطبيقات، فلا تتردد في الاتصال بنا عبر منتدى دعم المنتج المجاني.

روابط ذات صلة

ننصحك بزيارة الروابط التالية لمعرفة المزيد عن