मुख्य सामग्री पर जाएँ

उपयोग का मामला: Glasswall Embedded Engine के साथ Import/Export

Image resizer, Embedded Engine की content export और import functionality के बीच इस रूप में काम कर सकता है कि एम्बेडेड इमेजों को उनके parent document में वापस import करने से पहले उनके bytes में आकार को कम किया जा सके।

कुछ उपयोगकर्ता इन एम्बेडेड इमेजों को clean file में वापस import करने से पहले उन पर अतिरिक्त operations कर सकते हैं। Image resizer इन इमेजों के आकार को प्रबंधित करने में मदद कर सकता है और कुछ मामलों में दस्तावेज़ के कुल आकार को भी कम कर सकता है।

Glasswall Embedded Engine content export और import के बारे में अधिक पढ़ने के लिए, Content Export and Import देखें।

इस गाइड में, हम एक नमूना PDF फ़ाइल पर export और import करने के लिए Embedded Engine wrappers का उपयोग करेंगे, फिर मूल फ़ॉर्मैट में वापस import करने से पहले images का आकार बदलेंगे। उदाहरण और विभिन्न Embedded Engine API functions का विवरण यहाँ पाया जा सकता है।

शुरू करना

पूर्वापेक्षाएँ

  • Embedded Engine SDK
  • Export और Import क्षमताओं के साथ एक वैध लाइसेंस
  • आपके चुने हुए Embedded Engine wrapper के लिए प्रासंगिक लाइब्रेरी
  • Image Resizer CLI

नमूना फ़ाइल

संलग्न एक PDF नमूना फ़ाइल है, दस्तावेज़ में 2 JPEG एम्बेडेड इमेज हैं: Sample.pdf

कॉन्फ़िगरेशन

निम्नलिखित XML फ़ाइल में सभी सामग्री को sanitise करने के लिए एक policy सेट की गई है।

इसे sysconfig सेक्शन के अंतर्गत इमेज को उनके raw format में export करने के लिए भी कॉन्फ़िगर किया गया है, देखें export_embedded_images। इंजन कॉन्फ़िगरेशन जानकारी के बारे में अधिक जानने के लिए Configuration Management देखें।

<?xml version="1.0" encoding="utf-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<pdfConfig>
<acroform>sanitise</acroform>
<actions_all>sanitise</actions_all>
<embedded_files>sanitise</embedded_files>
<embedded_images>sanitise</embedded_images>
<external_hyperlinks>sanitise</external_hyperlinks>
<internal_hyperlinks>sanitise</internal_hyperlinks>
<javascript>sanitise</javascript>
<metadata>sanitise</metadata>
<digital_signatures>sanitise</digital_signatures>
<value_outside_reasonable_limits>sanitise</value_outside_reasonable_limits>
</pdfConfig>
<wordConfig>
<embedded_files>sanitise</embedded_files>
<embedded_images>sanitise</embedded_images>
<external_hyperlinks>sanitise</external_hyperlinks>
<internal_hyperlinks>sanitise</internal_hyperlinks>
<macros>sanitise</macros>
<metadata>sanitise</metadata>
<review_comments>sanitise</review_comments>
<dynamic_data_exchange>sanitise</dynamic_data_exchange>
</wordConfig>
<xlsConfig>
<embedded_files>sanitise</embedded_files>
<embedded_images>sanitise</embedded_images>
<external_hyperlinks>sanitise</external_hyperlinks>
<internal_hyperlinks>sanitise</internal_hyperlinks>
<macros>sanitise</macros>
<metadata>sanitise</metadata>
<review_comments>sanitise</review_comments>
<dynamic_data_exchange>sanitise</dynamic_data_exchange>
<connections>sanitise</connections>
</xlsConfig>
<pptConfig>
<embedded_files>sanitise</embedded_files>
<embedded_images>sanitise</embedded_images>
<external_hyperlinks>sanitise</external_hyperlinks>
<internal_hyperlinks>sanitise</internal_hyperlinks>
<macros>sanitise</macros>
<metadata>sanitise</metadata>
<review_comments>sanitise</review_comments>
</pptConfig>
<tiffConfig>
<geotiff>sanitise</geotiff>
</tiffConfig>
<svgConfig>
<scripts>sanitise</scripts>
<foreign_objects>sanitise</foreign_objects>
<hyperlinks>sanitise</hyperlinks>
</svgConfig>
<webpConfig>
<metadata>sanitise</metadata>
</webpConfig>
<sysConfig>
<interchange_type>sisl</interchange_type>
<export_embedded_images>false</export_embedded_images>
</sysConfig>
</config>

चरण 1: Export

आइए पहले मूल फ़ाइल को export करें। सुनिश्चित करें कि XML configuration फ़ाइल और आपके Glasswall लाइसेंस के path आपके पास उपलब्ध हों।

नोट: इन उदाहरणों में error handling logic शामिल नहीं है, अधिक जानकारी के लिए Return Types देखें।

C#
using glasswall_core2;

var filePath = "<path-to-input-file>";
var pathToConfig = "<path-to-config>";
var licenseFilePath = "<path-license-file>";
var outputDirectory = "<output-directory>";

Glasswall glasswall = new Glasswall();

int session = 0;
session = glasswall.OpenSession();
glasswall.RegisterLicenseFile(session, licenseFilePath);
glasswall.RegisterPoliciesFile(session, pathToConfig, 0);

glasswall.RegisterInputFile(session, filePath);
glasswall.RegisterExportFile(session, Path.Combine(outputDirectory, $"export.zip"));
glasswall.RunSession(session);

glasswall.CloseSession(session);

नमूना फ़ाइल के सफल Export के बाद, आपके चुने हुए output directory में export.zip नाम का एक archive बन जाना चाहिए।

इस ZIP file की जांच करने पर यह दिखाई देना चाहिए:

  • कई SISL files
  • 2 JPEG images
    • 41 KB file
    • 2 KB file
  • 2 JSON files

export की सामग्री के बारे में अधिक जानकारी के लिए, Export Package Content देखें

इसके बाद, Image Resizer CLI के साथ उपयोग के लिए ZIP से JPEG images निकालें।

चरण 2: images का आकार बदलें

अब हमारे sample PDF file से embedded images निकाल ली गई हैं, इसलिए clean file को reconstruct करने से पहले हम उनका आकार बदल सकते हैं।

CLI का उपयोग कैसे करें, इसकी जानकारी -h command चलाकर मिल सकती है। एक reference यहां भी है।

एक image का आकार बदलें

आइए 41 KB JPEG file का आकार बदलें। सुनिश्चित करें कि filename अपरिवर्तित रहे, क्योंकि अगले चरण में Embedded Engine ZIP से उन्हीं नामों वाली JPEG files को खोजेगा।

नीचे हम export ZIP से निकाली गई 41KB JPEG image का आकार 20 KB (20,000 bytes) के लक्ष्य तक बदल रहे हैं।

mkdir output

./gw_image_resizer -i <image>.jpeg -o output/<image>.jpeg -t 20000

अब हमारे पास बिल्कुल उसी नाम वाली लेकिन ~20KB आकार की एक और JPEG file होनी चाहिए।

export zip में image को बदलें

अब हम मूल 41 KB JPEG फ़ाइल को अपने resized संस्करण से बदल सकते हैं, इसके लिए उसे export.zip में डालें।

चरण 3: import

हमारी resized images वाली .zip फ़ाइल का उपयोग करके, आइए इसे वापस एक PDF फ़ाइल में import करें।

C#
using glasswall_core2;

var exportZipPath = "<export-zip-path>";
var pathToConfig = "<path-to-config>";
var licenseFilePath = "<path-license-file>";
var outputDirectory = "<output-directory>";

Glasswall glasswall = new Glasswall();

int session = 0;
session = glasswall.OpenSession();
glasswall.RegisterLicenseFile(session, licenseFilePath);
glasswall.RegisterPoliciesFile(session, pathToConfig, 0);

glasswall.RegisterImportFile(session, exportZipPath);
glasswall.RegisterOutFile(session, Path.Combine(outputDirectory, $"Sample.Clean.pdf"));
glasswall.RunSession(session);

glasswall.CloseSession(session);

हमारी sample फ़ाइल Sample.Clean.Pdf बन जाती है और sanitised हो चुकी होती है। इसमें resized JPEG फ़ाइल भी शामिल होती है।