এইচটিএমএল থেকে এক্সপিএস

HTML কে XPS এ রূপান্তর করুন

হাইপারটেক্সট মার্কআপ ল্যাঙ্গুয়েজ (HTML) হল ওয়েব পেজ তৈরির জন্য একটি আদর্শ মার্কআপ ভাষা। এটি এইচটিএমএল উপাদান/ট্যাগ ব্যবহার করে বিভাগ, অনুচ্ছেদ এবং লিঙ্ক তৈরি এবং গঠনের অনুমতি দেয়। এবং যদি HTML ফাইলে কিছু কাস্টম ফন্ট ব্যবহার করা হয় বা যেকোন গতিশীল বস্তুর উল্লেখ করা হয় যার জন্য সোর্স মেশিন/সার্ভারের সাথে একটি সক্রিয় সংযোগ প্রয়োজন, নথির বিশ্বস্ততার সাথে আপস করার সম্ভাবনা রয়েছে। অন্য দিকে, XML পেপার স্পেসিফিকেশন (XPS), পৃষ্ঠার উপাদানগুলি একটি নির্দিষ্ট অপারেটিং সিস্টেম, প্রিন্টার বা দেখার অ্যাপ্লিকেশন থেকে স্বাধীনভাবে সংজ্ঞায়িত করা হয়। তাই একটি বুদ্ধিমান পদ্ধতি হল HTML কে XPS ফরম্যাটে রূপান্তর করা।

HTML রূপান্তর API

জাভার জন্য Aspose.HTML ক্লাউড SDK হল একটি লাইটওয়েট REST আর্কিটেকচার-ভিত্তিক API যা HTML ফাইলগুলিকে PDF, DOCX, TIFF, [JPEG-এ তৈরি, ম্যানিপুলেট এবং রূপান্তর করার ক্ষমতা প্রদান করে 6, ইত্যাদি। এটি HTML-এর XPS-এ রূপান্তরকেও সমর্থন করে। সুতরাং, প্রথমে, আমাদের জাভা প্রজেক্টে SDK অন্তর্ভুক্ত করার জন্য Maven বিল্ড টাইপ প্রকল্পের pom.xml-এ নিম্নলিখিত বিবরণ যোগ করতে হবে।

<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>

ইনস্টলেশনের পর, পরবর্তী ধাপ হল GitHub বা Google অ্যাকাউন্ট ব্যবহার করে Aspose.Cloud ড্যাশবোর্ড এর মাধ্যমে আমাদের ক্লাউড পরিষেবাগুলির একটি বিনামূল্যের সদস্যতা। অথবা, সহজভাবে একটি নতুন অ্যাকাউন্ট তৈরি করুন এবং আপনার ক্লায়েন্ট শংসাপত্রের বিশদ বিবরণ পান।

জাভাতে HTML কে XPS এ রূপান্তর করুন

একটি HTML থেকে XPS রূপান্তরকারী বিকাশ করতে অনুগ্রহ করে নীচের নির্দেশাবলী অনুসরণ করুন৷

  • প্রথমত, আমাদের Configuration.setAPPSID এবং Configuration.setAPIKEY পদ্ধতির বিরুদ্ধে বিস্তারিত উল্লেখ করতে হবে
  • দ্বিতীয়ত, আমরা setBasePath(..), setAuthPath(..) এর জন্য বিশদ সেট করি এবং WebKit হিসাবে setUserAgent(…) নির্দিষ্ট করি
  • তৃতীয়ত, আমাদের নিজস্ব সহায়তার জন্য, আমরা setDebug(..) কে সত্য হিসাবে সেট করতে যাচ্ছি
  • এখন ConversionApi ক্লাসের একটি অবজেক্ট তৈরি করুন
  • ফলাফল ফাইলের জন্য তথ্যের জন্য মার্জিনের বিবরণ এবং নাম উল্লেখ করুন
  • অবশেষে, GetConvertDocumentToXps(…) পদ্ধতিতে কল করুন যার জন্য আর্গুমেন্ট হিসাবে HTML নাম, মাত্রা এবং মার্জিন বিশদ ইনপুট প্রয়োজন
// আরও উদাহরণের জন্য, দয়া করে https://github.com/aspose-html-cloud/aspose-html-cloud-java দেখুন

try
    {
    // https://dashboard.aspose.cloud/ থেকে ClientID এবং ClientSecret পান
    String clientId = "bbf94a2c-6d7e-4020-b4d2-b9809741374e";
    String clientSecret = "1c9379bb7d701c26cc87e741a29987bb";
  
    // এপিআই আহ্বানের জন্য বিশদ বিবরণ
    com.aspose.html.Configuration.setAPP_SID(clientId);
    com.aspose.html.Configuration.setAPI_KEY(clientSecret);
    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);
        
    // Aspose.HTML Cloud API এর একটি অবজেক্ট তৈরি করুন
    com.aspose.html.api.ConversionApi htmlApi = new ApiClient().createService(ConversionApi.class);
     	
    // ক্লাউড স্টোরেজ থেকে এইচটিএমএল ডকুমেন্ট
    String name = "list.html";
    // ফলাফল চিত্র বিন্যাস
    String outFormat = "PNG";
    	
    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.
    Integer resolution = 300; // Resolution of resulting image.
    String folder = null; // The folder in the storage. Should exist.
    String storage = "Internal"; // Name of the storage. null
    	
    // এইচটিএমএল থেকে এক্সপিএস রূপান্তরের জন্য এপিআই চালু করুন
    retrofit2.Call<okhttp3.ResponseBody> call = htmlApi.GetConvertDocumentToXps(name, width, height, leftMargin, rightMargin, topMargin, bottomMargin, folder, storage);
      
    System.out.println("HTML to XPS conversion sucessfull !");
    }catch(Exception ex)
    {
        System.out.println(ex);
    }

উপরের কোডটি রেসপন্স স্ট্রীমে ফলাফল প্রদান করে তাই, স্থানীয় ড্রাইভে আউটপুট সংরক্ষণ করার জন্য, আমরা নিম্নলিখিত কাস্টম পদ্ধতি ব্যবহার করার কথা বিবেচনা করতে পারি।

/*
* রেসপন্সবডি এবং ফলস্বরূপ ফাইলের নাম আর্গুমেন্ট হিসাবে নেওয়ার পদ্ধতি
*/
public static void checkAndSave(retrofit2.Call<okhttp3.ResponseBody> call, String fileName) throws IOException 
	{
	    // সিঙ্ক্রোনাসভাবে অনুরোধ পাঠান এবং এর প্রতিক্রিয়া ফেরত দিন।
	    retrofit2.Response<okhttp3.ResponseBody> res = call.execute();
	    
	    // একটি সফল প্রতিক্রিয়ার deserialized প্রতিক্রিয়া বডি
	    okhttp3.ResponseBody answer = res.body();
	    
	    //টেস্ট ডিরেক্টরিতে সংরক্ষণ করুন
	    boolean result = saveToDisc(answer, fileName);
	    
	    // ফলাফলের মানটি সত্য (ঐচ্ছিক পদক্ষেপ) যাচাই করুন
	    Assert.assertTrue(result);
	}
	
  /*
  *
  * স্থানীয় ড্রাইভে ফাইল হিসাবে প্রতিক্রিয়া সামগ্রী সংরক্ষণ করতে এই পদ্ধতিটি কল করুন
  *
  */ 
	public static boolean saveToDisc(okhttp3.ResponseBody body, String fileName) 
	{
            // ফলাফল ফাইলের জন্য অবস্থান নির্দেশ করে ফাইল অবজেক্ট তৈরি করুন
	    File savedFile = new File("c:\\Downloads\\"+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();
	    
	    // ফাইলটি সফলভাবে সেভ করার সাথে সাথে true রিটার্ন করুন
	    return true;
	    } catch (Exception e) {
		e.printStackTrace();
		return false;
	    }
	} // saveToDisc ends here
এইচটিএমএল থেকে এক্সপিএস

চিত্র1:- এইচটিএমএল থেকে এক্সপিএস প্রিভিউ

উপরের উদাহরণে ব্যবহৃত নমুনা ফাইলগুলি list.html এবং resultantFile.xps থেকে ডাউনলোড করা যেতে পারে।

CURL কমান্ড ব্যবহার করে HTML থেকে XPS

REST API গুলিও cURL কমান্ডের মাধ্যমে অ্যাক্সেস করা যেতে পারে তাই এই বিভাগে, আমরা cURL কমান্ড ব্যবহার করে HTML থেকে XPS রূপান্তর কীভাবে সম্পাদন করতে হবে তার পদক্ষেপগুলি শিখতে যাচ্ছি। এখন একটি পূর্বপ্রস্তুতি হিসাবে, আমাদের প্রথমে আপনার স্বতন্ত্র ক্লায়েন্ট শংসাপত্রের উপর ভিত্তি করে একটি JSON ওয়েব টোকেন (JWT) তৈরি করতে হবে। JWT টোকেন তৈরি করতে অনুগ্রহ করে নিম্নলিখিত কমান্ডটি চালান।

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bbf94a2c-6d7e-4020-b4d2-b9809741374e&client_secret=1c9379bb7d701c26cc87e741a29987bb" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

এখন যেহেতু আমাদের কাছে JWT টোকেন আছে, অনুগ্রহ করে HTML থেকে XPS রূপান্তর করতে টার্মিনালে নিম্নলিখিত কমান্ডটি চালান।

curl -v -X GET "https://api.aspose.cloud/html/list.html/convert/xps" \
-H  "accept: multipart/form-data" \
-H  "authorization: Bearer <JWT Token>" \
-o final.xps

উপসংহার

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

সম্পরকিত প্রবন্ধ

এছাড়াও আমরা এই সম্পর্কিত আরও বিশদ বিবরণের জন্য নিম্নলিখিত ব্লগগুলিতে যাওয়ার পরামর্শ দিই: