এইচটিএমএলকে পিডিএফে রূপান্তর করুন

কিভাবে HTML কে PDF এ রূপান্তর করবেন | এইচটিএমএল থেকে পিডিএফ অনলাইন

HTML হল ওয়েব ডেভেলপমেন্টের জন্য একটি নেতৃস্থানীয় ফাইল ফরম্যাট, এবং বেশিরভাগ আধুনিক ওয়েব ব্রাউজার HTML স্পেসিফিকেশন সমর্থন করে। যদিও এটি প্ল্যাটফর্ম-স্বাধীন এবং যেকোনো অপারেটিং সিস্টেমে দেখা যেতে পারে, তবে তারা ক্ষতিকারক স্ক্রিপ্টগুলির জন্য প্রবণ এবং ইন্টারনেটে সহজে ভাগ করা যায় না। সুতরাং, এই ধরনের পরিস্থিতি এড়াতে এবং দীর্ঘমেয়াদী সংরক্ষণাগারের জন্য, আমরা একটি ওয়েবপৃষ্ঠা PDF(পোর্টেবল ডকুমেন্ট ফরম্যাট) হিসাবে সংরক্ষণ করি। তাই এই প্রবন্ধে, আমরা কিভাবে Java REST API ব্যবহার করে HTML কে PDF তে রূপান্তর করতে পারি সে বিষয়ে আলোচনা করতে যাচ্ছি।

HTML থেকে PDF রূপান্তর API

Aspose.HTML Cloud SDK for Java আপনাকে জাভা অ্যাপ্লিকেশনের মধ্যে HTML ম্যানিপুলেশন অপারেশন করতে সক্ষম করে। এছাড়াও আমরা HTML কে ফিক্সড-লেআউট ডকুমেন্ট ফরম্যাটে (PDF বা XPS) রূপান্তর করতে পারি। তাই রূপান্তরটি সম্পাদন করার জন্য, আমরা ক্লাউড স্টোরেজ থেকে উৎস HTML(XHTML, MHTML, EPUB, Markdown) লোড করতে পারি বা URL প্রদান করতে পারি একটি ওয়েব পৃষ্ঠার। এখন SDK ব্যবহার করার জন্য, অনুগ্রহ করে আপনার maven বিল্ড প্রজেক্টের pom.xml-এ নিম্নলিখিত নির্ভরতা যোগ করুন যাতে aspose-html.jar প্রকল্পে যোগ করা যায়:

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>http://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 এ রূপান্তর করুন

জাভা অ্যাপ্লিকেশনে ওয়েবপৃষ্ঠাটিকে পিডিএফ-এ রূপান্তর করতে নীচের ধাপগুলি অনুসরণ করুন।

  • প্রথমত, আমাদের Configuration.setAPPSID এর বিরুদ্ধে বিস্তারিত উল্লেখ করতে হবে।
  • দ্বিতীয়ত, আমরা Configuration.setAPIKEY তথ্য নির্দিষ্ট করি।
  • তৃতীয়ত, আমরা setBasePath(..) বিবরণ সেট করি।
  • তারপর আমাদের setAuthPath(..) বিস্তারিত উল্লেখ করতে হবে।
  • WebKit হিসাবে setUserAgent(…) সেট করুন।
  • আমাদের নিজস্ব সহায়তার জন্য, আমরা setDebug(..) কে সত্য হিসাবে সেট করতে যাচ্ছি।
  • এপিআই আমাদের ফলাফল ফাইলের জন্য মার্জিন বিবরণ নির্দিষ্ট করার অনুমতি দেয়।
  • পরবর্তী ধাপ হল ইনপুট এইচটিএমএল ফাইলটি পড়া এবং ফাইল ইনস্ট্যান্সে লোড করা।
  • এখন আমাদের RequestBody ক্লাসের একটি উদাহরণ তৈরি করতে হবে এবং মিডিয়াকে “মাল্টিপার্ট/ফর্ম-ডেটা” হিসাবে পার্স করতে হবে।
  • ConversionApi ক্লাসের একটি অবজেক্ট তৈরি করুন।
  • যেহেতু আমরা ফাইলটি ক্লাউড স্টোরেজে আপলোড করতে যাচ্ছি, তাই আমাদের স্টোরেজএপিআই-এর একটি উদাহরণও তৈরি করতে হবে।
  • রূপান্তর প্রক্রিয়া শুরু করার জন্য এখন আমাদের PostConvertDocumentInRequestToPdf(..) কল করতে হবে। এই পদ্ধতিটি ইনপুট ফাইলের নাম, ফলস্বরূপ ফাইলের নাম এবং ফলস্বরূপ ফাইলের মার্জিন এবং মাত্রার বিবরণ আর্গুমেন্ট হিসাবে গ্রহণ করে।
  • রূপান্তরের পরে, ফলাফলটি স্ট্রিম অবজেক্টে ফেরত দেওয়া হয় যার মধ্যে রেসপন্স বডির কাঁচা বাইট থাকে।
  • এখন আমাদের ResponseBody অবজেক্টে সফল প্রতিক্রিয়ার deserialized রেসপন্স বডি পুনরুদ্ধার করতে হবে।
  • ফলাফল ফাইলটি ক্লাউড স্টোরেজ থেকে রেসপন্সবডি অবজেক্টে ডাউনলোড করুন।
  • তারপর অবশেষে, আমরা একটি স্থানীয় সিস্টেম ড্রাইভে ফলাফল পিডিএফ নথি সংরক্ষণ করতে আমাদের কাস্টম পদ্ধতি কল করতে যাচ্ছি।
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

}

উপসংহার

এই নিবন্ধে, আমরা জাভা SDK ব্যবহার করে একটি ওয়েবপেজকে পিডিএফ-এ রূপান্তর করার পদক্ষেপগুলি শিখেছি। আমরা লক্ষ্য করেছি যে কম কোড লাইনের সাথে, সম্পূর্ণ HTML সম্পূর্ণ বিশ্বস্ততার সাথে PDF ফরম্যাটে রেন্ডার করা হয়। PDF ফরম্যাট ছাড়াও, API আপনাকে HTML থেকে JPG, HTML থেকে PNG, HTML থেকে TIFF, HTML থেকে BMP, এবং HTML করতে সক্ষম করে। GIF রূপান্তর অপারেশনে। একইভাবে, আমরা একই API ব্যবহার করে একটি মার্কডাউন ফাইলকে HTML-এ রূপান্তর করতে পারি বা MHTML-কে HTML ফরম্যাটে রূপান্তর করতে পারি।

API ব্যবহার করার সময় আপনি যদি কোনো সমস্যার সম্মুখীন হন, অনুগ্রহ করে নির্দ্বিধায় আমাদের সাথে যোগাযোগ করুন ফ্রি প্রোডাক্ট সাপোর্ট ফোরাম এর মাধ্যমে।

সম্পর্কিত লিঙ্ক

সম্পর্কে আরও জানতে আমরা নিম্নলিখিত লিঙ্কগুলিতে যাওয়ার পরামর্শ দিই