กรณีการใช้งาน: การนำเข้า/ส่งออกด้วย Glasswall Embedded Engine
Image resizer สามารถทำงานอยู่ระหว่างฟังก์ชันการส่งออกและนำเข้าเนื้อหาของ Embedded Engine เพื่อเป็นวิธีลดขนาดเป็นไบต์ของรูปภาพที่ฝังอยู่ก่อนนำกลับเข้าไปยังเอกสารแม่ของรูปภาพนั้น
ผู้ใช้บางรายอาจดำเนินการเพิ่มเติมกับรูปภาพที่ฝังอยู่เหล่านี้ก่อนนำกลับเข้าไปยังไฟล์ที่สะอาด Image resizer สามารถช่วยจัดการขนาดของรูปภาพเหล่านี้ และในบางกรณียังช่วยลดขนาดโดยรวมของเอกสารได้อีกด้วย
หากต้องการอ่านเพิ่มเติมเกี่ยวกับการส่งออกและนำเข้าเนื้อหาของ Glasswall Embedded Engine โปรดดู การส่งออกและนำเข้าเนื้อหา.
ในคู่มือนี้ เราจะใช้ wrapper ของ Embedded Engine เพื่อดำเนินการส่งออกและนำเข้ากับไฟล์ PDF ตัวอย่าง จากนั้นปรับขนาดรูปภาพก่อนนำกลับเข้าไปยังรูปแบบต้นฉบับ ตัวอย่างและคำอธิบายฟังก์ชัน API ต่างๆ ของ Embedded Engine สามารถดูได้ที่นี่.
เริ่มต้นใช้งาน
ข้อกำหนดเบื้องต้น
- Embedded Engine SDK
- ไลเซนส์ที่ถูกต้องพร้อมความสามารถ Export และ Import
- ไลบรารีที่เกี่ยวข้องสำหรับ Embedded Engine wrapper ที่คุณเลือก
- Image Resizer CLI
ไฟล์ตัวอย่าง
แนบไฟล์ตัวอย่าง PDF ไว้แล้ว โดยเอกสารนี้มีรูปภาพ JPEG แบบฝังอยู่ 2 รูป: Sample.pdf
การกำหนดค่า
ไฟล์ XML ต่อไปนี้มี policy ที่ตั้งค่าให้ sanitise เนื้อหาทั้งหมด
นอกจากนี้ยังถูกกำหนดค่าให้ export รูปภาพเป็นรูปแบบดิบของรูปภาพนั้นภายใต้ส่วน sysconfig ดูที่ export_embedded_images สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าเอนจิน โปรดดู การจัดการการกำหนดค่า.
<?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 และไลเซนส์ Glasswall พร้อมใช้งาน
หมายเหตุ: ตัวอย่างเหล่านี้ไม่มีตรรกะการจัดการข้อผิดพลาด โปรดดู 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 ไฟล์ตัวอย่างสำเร็จ ควรมีการสร้างไฟล์เก็บถาวรชื่อ export.zip ขึ้นในไดเรกทอรีเอาต์พุตที่คุณเลือก
การตรวจสอบไฟล์ ZIP นี้ควรแสดงให้เห็นว่า:
- ไฟล์ SISL หลายไฟล์
- 2 JPEG images
- ไฟล์ขนาด 41 KB
- ไฟล์ขนาด 2 KB
- ไฟล์ JSON 2 ไฟล์
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับเนื้อหาของการส่งออก โปรดดู เนื้อหาแพ็กเกจการส่งออก
ถัดไป ให้แตกไฟล์ภาพ JPEG จาก ZIP เพื่อนำไปใช้กับ Image Resizer CLI
ขั้นตอนที่ 2: ปรับขนาดรูปภาพ
ตอนนี้รูปภาพที่ฝังอยู่จากไฟล์ PDF ตัวอย่างของเราถูกแตกออกมาแล้ว เราสามารถปรับขนาดรูปภาพเหล่านั้นก่อนสร้างไฟล์ที่สะอาดขึ้นใหม่ได้
รายละเอียดเกี่ยวกับวิธีใช้ CLI สามารถดูได้โดยรันคำสั่ง -h นอกจากนี้ยังมีข้อมูลอ้างอิง ที่นี่
ปรับขนาดรูปภาพ
มาปรับขนาดไฟล์ JPEG ขนาด 41 KB กัน ตรวจสอบให้แน่ใจว่าชื่อไฟล์ยังคงไม่เปลี่ยนแปลง เนื่องจาก Embedded Engine จะค้นหาไฟล์ JPEG ที่มีชื่อเดียวกันจาก ZIP ในขั้นตอนถัดไป
ด้านล่างนี้ เรากำลังปรับขนาดรูปภาพ JPEG ที่แตกออกมาจาก export ZIP ขนาด 41KB โดยกำหนดเป้าหมายไว้ที่ 20 KB (20,000 ไบต์)
mkdir output
./gw_image_resizer -i <image>.jpeg -o output/<image>.jpeg -t 20000
ตอนนี้เราควรมีไฟล์ JPEG อีกไฟล์หนึ่งที่มีชื่อเหมือนเดิมทุกประการ แต่มีขนาดประมาณ 20KB
แทนที่รูปภาพใน export zip
ตอนนี้เราสามารถแทนที่ไฟล์ JPEG ขนาด 41 KB ต้นฉบับด้วยไฟล์ที่ปรับขนาดแล้วของเรา โดยวางลงใน export.zip ได้
ขั้นตอนที่ 3: import
โดยใช้ไฟล์ .zip ที่มีรูปภาพที่ปรับขนาดแล้วของเรา เรามานำเข้ากลับไปยังไฟล์ PDF กัน
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.Clean.Pdf และได้รับการทำความสะอาดแล้ว นอกจากนี้ยังรวมไฟล์ JPEG ที่ปรับขนาดแล้วไว้ด้วย