HotPDF 2.200.2 สำหรับ Delphi และ C++Builder

การสร้าง PDF แบบเนทีฟ, การแก้ไข, การลงลายมือชื่อ, เอาต์พุตที่สอดคล้องกับมาตรฐาน, การเพิ่มประสิทธิภาพฟอนต์ และการประมวลผลรูปภาพสำหรับแอปพลิเคชัน RAD Studio

HotPDF ช่วยให้แอปพลิเคชัน VCL สามารถสร้าง, แก้ไข, ป้องกันความปลอดภัย, ลงลายมือชื่อ, เพิ่มประสิทธิภาพ, นำเข้า, บีบอัด และบันทึกเอกสาร PDF ได้โดยตรงจากโค้ด Delphi หรือ C++Builder โดยไม่ต้องติดตั้งใช้งานรันไทม์ PDF ภายนอก

ภาพรวมโปรเจกต์

HotPDF เป็นไลบรารีส่วนประกอบ PDF ระดับซอร์สโค้ดสำหรับ Delphi และ C++Builder ที่สร้างขึ้นสำหรับซอฟต์แวร์เดสก์ท็อปที่ต้องการเอาต์พุต PDF ที่แน่นอน, การวาดหน้าโดยตรง, การรวมระบบ RAD Studio ที่แข็งแกร่ง และการติดตั้งใช้งานที่กะทัดรัด

ส่วนประกอบนี้ครอบคลุมการสร้าง PDF ทั่วไป, การประกอบเอกสารขั้นสูง, การแก้ไข PDF, เอาต์พุตที่เน้นรูปภาพ, ฟอร์ม, คำอธิบายประกอบ, การเข้ารหัส, เวิร์กโฟลว์การลงลายมือชื่อ, การเพิ่มประสิทธิภาพฟอนต์ และเวิร์กโฟลว์ตามสตรีมจากอินเทอร์เฟซ API แบบเนทีฟเดียว

รุ่นไลบรารีล่าสุดได้ขยายความสามารถของ HotPDF จากตัวเขียน PDF แบบคลาสสิกให้เป็นชุดเครื่องมือ PDF แบบเนทีฟที่กว้างขึ้น ซึ่งครอบคลุมการควบคุมฟีเจอร์เฉพาะเวอร์ชัน PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7, การเข้ารหัส PDF 2.0 ที่เลือกไว้, การปฏิบัติตามมาตรฐาน PDF/A-1 / -2 / -3 + PDF/X-1a / -3 / -4 + PDF/UA-1, ลายมือชื่อดิจิทัล PAdES baseline / extended / long-term-validation, ไปป์ไลน์การลงลายมือชื่อ PFX / PKCS#12 ในกระบวนการที่ไม่ขึ้นกับ OpenSSL หรือไบนารีเนทีฟภายนอก, การบันทึกการอัปเดตแบบเพิ่มหน่วย, การทำเซตย่อยของฟอนต์ CFF / OpenType / CID-keyed CFF และอะแดปเตอร์ส่งออก PDF สำหรับ FastReport, QuickReport, ReportBuilder และ DevExpress ExpressPrinting ที่ส่งรายงานเดิมผ่าน HotPDF เป็นแบ็กเอนด์ PDF เดียว นอกจากนี้ Direct File API ยังประมวลผลไฟล์ PDF ขนาดหลายกิกะไบต์ที่มีวัตถุหลายล้านชิ้นแบบไฟล์ต่อไฟล์ เช่น จำนวนหน้า, สำเนา, การเขียนข้อมูลเอกสารใหม่ และการเข้ารหัสหรือถอดรหัส AES-256 ได้ภายในไม่กี่วินาที และขณะนี้ตัวโหลดสามารถกู้คืนเอกสารที่หุ้มด้วยคอนเทนเนอร์ขนส่งที่มีค่าออฟเซ็ตเก่า และไฟล์ที่อัปเดตแบบเพิ่มหน่วยที่มีวัตถุที่ถูกทิ้งร้างหรือถูกแทนที่ได้ด้วย

รอบการพัฒนา v2.119.32-51 ได้เพิ่มการจัดรูปทรงภาษาอาหรับ / เปอร์เซีย / อูรดู ทางฝั่งผู้ผลิต (อักษรควบภาคบังคับ LAM-ALEF, อักษรอาหรับ Presentation Forms-A 9 ตัว), เอ็นจินการแทนที่ OpenType GSUB ที่มีฟีเจอร์ครบถ้วนครอบคลุมทุก LookupType 1-8 พร้อมการเลือก Script / LangSys และการปิด TTF subsetter สำหรับกลิฟทดแทน, การรองรับคอนเทนเนอร์ XFA (XML Forms Architecture) (AddXFAPacket / ClearXFAPackets / XFAPacketCount), ตระกูลทริกเกอร์ฟิลด์ฟอร์ม AcroForm /AA /K + /F + /V + /C, การจดทะเบียนฟอนต์ multi-Unicode /DR ผ่าน RegisterAcroFormFont, ตัวตั้งค่าแอตทริบิวต์การเข้าถึงองค์ประกอบโครงสร้าง (/Lang / /E / /T) พร้อม enum ประเภทโครงสร้างมาตรฐานของตาราง 333 และโอเวอร์โหลดประเภท AddStructureElement รวมถึงคุณสมบัติลำดับเนื้อหาที่มีเครื่องหมายใน BeginTaggedContent

รอบการพัฒนา v2.119.52-68 ได้เสร็จสิ้นไปป์ไลน์การจัดรูปทรงอัตโนมัติของเฟส 8 และขยายความครอบคลุมของสคริปต์: อักษรอาหรับ Extended-A (รวมถึง U+0750-077F Arabic Supplement และ U+08A0-08FF Arabic Extended-A) และ Persian / Urdu Form-B ได้รับการขยายให้ครอบคลุมตารางการเชื่อมโยงคลาส U+0672-06D5 ทั้งหมด พร้อมการจับคู่สัญลักษณ์ฟอร์มเอใหม่ 26 ตัว รวมถึงการพับเก็บหลังการประมวลผลสำหรับ LAM-ALEF, คู่ YEH-HAMZA + สระ (อักษรควบ 8 ตัวใน U+FBEA-FBFB), อักษรควบคำว่า Allah เดี่ยวๆ (U+FDF2) และวลี Bismillah ความยาว 22 รหัสพอยต์ (U+FDFD) คุณสมบัติใหม่ที่ต้องเปิดใช้งานแบบระบุตัวเลือก ShapingFeatures + enum THPDFShapingFeature (sfArabicGSUB / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) ทำให้โปรแกรมสร้างส่งสัญญาณการแทนที่ rlig / liga / clig / rclt เฉพาะสำหรับฟอนต์ที่ขับเคลื่อนด้วย GSUB โดยอัตโนมัติ โดยมีอักษรควบมาตรฐานภาษาละติน (ff / fi / fl / ffi / ffl / ſt / st ผ่าน U+FB00-FB06) และการจัดเรียงพยางค์ Devanagari Indic (Repha + pre-base I-matra) เข้าร่วมในไปป์ไลน์เดียวกัน วิธีการความสามารถการจัดรูปทรงใหม่สำหรับภาษาซีเรียค (GetSyriacJoiningClass / GetSyriacPosition), ภาษามองโกเลีย (GetMongolianJoiningClass / GetMongolianPosition) และภาษาเทวนาครี (GetDevanagariCategory / ApplyDevanagariReorder) ช่วยให้ผู้เรียกใช้งานสามารถขับเคลื่อนสคริปต์ที่ซับซ้อนนอกเหนือจากภาษาอาหรับผ่านเอ็นจิน GSUB เดียวกันได้ เมธอด GetCodepointAdvance จะแสดงเศษส่วน em /W ที่แคชไว้สำหรับการคำนวณการขึ้นบรรทัดใหม่ และเมธอด AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID จะช่วยให้โปรแกรมสร้างส่งออก GID ทดแทนของ GSUB ใดๆ (รูปทรงกลุ่มตัวอักษรเทวนาครี, อักขระทางเลือกสไตล์การเขียน, ลำดับการแปรผันของ CJK) ผ่านรหัสพอยต์พื้นที่ใช้งานส่วนตัว (Private-Use-Area) โดยมีการรวมระบบ /CIDToGIDMap + /ToUnicode + /W อย่างสมบูรณ์ ปัจจุบัน ToUnicode CMap แบบสะสมได้นำส่งรายการจับคู่ย้อนกลับสำหรับอักษรควบ 35 รายการ (ตระกูล LAM-ALEF 8 รายการ + ตระกูล YEH-HAMZA 18 รายการ + อักษรควบคำว่า Allah 1 รายการ + อักษรควบคำว่า Bismillah 1 รายการ + อักษรควบละติน 7 รายการ) เพื่อให้ผู้บริโภคหรือโปรแกรมอ่านสามารถคัดลอก/วางและได้รหัสพอยต์ต้นฉบับ โครงสร้างเอกสารสำหรับ ChangeLog ได้ถูกนำส่งแล้วใน 11 ภาษา (EN / CN / AR / DE / ES / FR / IT / JA / KO / PT / RU) พร้อมส่วนติดต่อผู้ใช้สำหรับการเลือกภาษา และขีดจำกัดการเก็บรักษา ChangeLog ได้รับการเพิ่มขึ้นจาก 250 เป็น 500 ส่วนเวอร์ชัน

รอบการพัฒนา v2.152-v2.190 ได้สร้างเอ็นจินการจัดตำแหน่ง OpenType GPOS ที่สมบูรณ์และขยายความครอบคลุมของสคริปต์ที่ซับซ้อน ปัจจุบันตัวเลือกการจัดรูปทรงที่ระบุใช้งานจะใช้การจัดระยะห่างระหว่างตัวอักษรของฟอนต์เอง (แบบคู่, ตามบริบท และจากขวาไปซ้าย), การจัดตำแหน่งเครื่องหมายผสม (เครื่องหมายกับฐาน, เครื่องหมายกับเครื่องหมาย และเครื่องหมายกับอักษรควบต่อส่วนประกอบ), จุดยึดการเชื่อมต่อตัวเขียนแบบต่อเนื่อง และการจัดระยะห่างแนวตั้งสำหรับข้อความแนวตั้ง ทั้งหมดนี้เขียนเป็นตัวดำเนินการข้อความมาตรฐานของ PDF เพื่อให้โปรแกรมอ่านใดๆ เรนเดอร์ผลลัพธ์เดียวกัน ปัจจุบันการจัดรูปทรงทางฝั่งผู้ผลิตครอบคลุมภาษาอาหรับ (รวมถึงบล็อก Supplement, Extended-A และ Extended-B), ภาษาซีเรียค, ภาษามองโกเลีย, ภาษาเอ็นโก, ภาษาแอดลัม, ภาษาโรฮิงญาฮานิฟี, การวางซ้อนพยัญชนะทิเบต, ภาษาเทวนาครี และสคริปต์อินเดียอื่นๆ ผ่านชุดฟีเจอร์ Indic ของฟอนต์, ภาษาชวา, การจัดเรียงเครื่องหมายภาษาไทยและลาว, การจัดเรียงจุดสระภาษาฮีบรู, ภาษาเขมร, ภาษาพม่า, ภาษาไทดำ และภาษาไมเตร สามารถใช้ตระกูลฟีเจอร์การพิมพ์ทางเลือกของ OpenType เช่น อักษรควบมาตรฐาน ทางเลือก และประวัติศาสตร์, ตัวพิมพ์ใหญ่ขนาดเล็ก, ตัวเลขสไตล์เก่า / เสมอกัน / ตามสัดส่วน / ตารางตัวเลข, ตัวยก, ตัวห้อย, ลำดับที่, เศษส่วน, ตัวห้อยทางวิทยาศาสตร์, ตัวเศษ, ตัวส่วน, อักขระทางเลือกสไตล์และการเขียนตามบริบท, รูปแบบท้องถิ่น, รูปแบบที่คำนึงถึงตัวพิมพ์เล็กใหญ่, เลขศูนย์ที่มีเส้นทับ และอักขระทางเลือกแนวตั้ง ได้โดยอัตโนมัติระหว่างการส่งออกข้อความ การคัดลอก วาง และค้นหาข้อความจะกู้คืนอักขระดั้งเดิมของเอาต์พุตที่จัดรูปทรงทั้งหมด รวมถึงอักษรควบและการแทนที่ฟีเจอร์ที่เชื่อมโยงกัน เอาต์พุตฟอนต์ยังมีขนาดเล็กลง: โปรแกรมฟอนต์ที่ฝังจะถูกบีบอัดแบบ Flate เสมอ, ฟอนต์ที่ใช้ in หลายหน้าจะถูกฝังเพียงครั้งเดียวต่อเอกสาร, แท็กเซตย่อยได้มาจากวิธีการที่แน่นอนเพื่อให้ได้เอาต์พุตที่สร้างซ้ำได้ และโหมดกระชับที่เป็นตัวเลือกจะเขียนข้อความ ASCII ธรรมดาด้วยฟอนต์มาตรฐานเป็นข้อความ WinAnsi ที่ไม่ฝังตัว

ความครอบคลุมมาตรฐาน PDF

HotPDF ประกอบด้วยการสนับสนุนเฉพาะเวอร์ชันสำหรับคุณสมบัติการสร้างเอกสาร PDF 1.3, PDF 1.4, PDF 1.5, PDF 1.6 และ PDF 1.7 ที่ใช้ในแอปพลิเคชันทางธุรกิจ, การประมวลผลภาพ, การพิมพ์ และระบบเอกสารอัตโนมัติ API สาธารณะจะได้รับการตรวจสอบกับเวอร์ชัน PDF ที่เลือก เพื่อให้ไฟล์ที่สร้างขึ้นหลีกเลี่ยงรายการที่ใหม่กว่าเมื่อต้องการความเข้ากันได้ที่เข้มงวด

เมทริกซ์ปัจจุบันครอบคลุมฟิลเตอร์และพรีดิคเตอร์, สตรีม XRef, ห่วงโซ่การอัปเดตแบบเพิ่มหน่วย, การเข้ารหัส AES, ความปลอดภัยของกุญแจสาธารณะ, สี DeviceCMYK และ ICCBased, รูปแบบการปูกระเบื้อง, การไล่เฉดสีตามแนวแกน/รัศมี/หลายจุดหยุด, รูปแบบภาพอินไลน์, เลเยอร์, กลุ่มความโปร่งใส, การเปลี่ยนหน้า, คำอธิบายประกอบ, วิดเจ็ต AcroForm, ฮุกการลงลายมือชื่อภายนอก, เมทาดาตา XMP, แผนผังโครงสร้าง PDF ที่มีแท็ก, OutputIntents, กล่องหน้าการผลิต, ViewerPreferences, UserUnit, ลำดับแท็บ และการฝัง/การทำเซตย่อยของฟอนต์สำหรับฟอนต์ TrueType, Type 3, CFF, OpenType-CFF และ CID-keyed CFF

นี่คือความครอบคลุมที่สอดคล้องกับมาตรฐานอย่างกว้างขวางสำหรับส่วนติดต่อการสร้างที่รองรับของ HotPDF ไม่ใช่การอ้างสิทธิ์ครอบคลุมว่ากรณีขอบเขตทุกกรณีใน ISO 32000-1 ได้รับการใช้งานทั้งหมด

ทำไมต้องเลือก HotPDF

ความเข้ากันได้แบบเนทีฟกับ RAD Studio

ใช้โปรเจกต์, แพ็กเกจ, สตรีม, ฟอร์ม และรูปแบบการวาดของ Delphi และ C++Builder ที่คุ้นเคย แทนที่จะต้องครอบเอ็นจิน PDF แยกต่างหาก

คุณสมบัติ PDF ที่ทันสมัย

สร้าง PDF ด้วยฟอร์ม, คำอธิบายประกอบ, เลเยอร์, ความโปร่งใส, การเปลี่ยนหน้า, โครงสร้างที่มีแท็ก, การเข้ารหัส, ตัวยึดตำแหน่งการลงลายมือชื่อ และการอัปเดตแบบเพิ่มหน่วย

เอาต์พุตที่รวดเร็วและกะทัดรัด

ลดขนาด PDF ด้วยการบีบอัด zlib-ng, การจัดการภาพของ libjpeg-turbo, การทำเซตย่อยของ TrueType, การทำเซตย่อยของ OpenType-CFF และการสนับสนุน CID-keyed CFF สำหรับฟอนต์ CJK ขนาดใหญ่

จุดแข็งในการแข่งขัน

ความสามารถด้านล่างนี้คือข้อแตกต่างทางเทคนิคที่แท้จริงสำหรับ HotPDF เมื่อเทียบกับส่วนประกอบ PDF ของ Delphi ทั่วไป ส่วนประกอบเชิงพาณิชย์ของคู่แข่งส่วนใหญ่มักจะขาดฟีเจอร์เหล่านี้ทั้งหมด หรือมีประสิทธิภาพการทำงานที่อ่อนแอกว่าอย่างเห็นได้ชัด แต่ละแถวจะเชื่อมโยงกับการทำงานที่สามารถตรวจสอบได้และส่วนติดต่อ API สาธารณะภายในไลบรารี

การจัดรูปทรงและการจัดตำแหน่ง OpenType ที่สมบูรณ์

เอ็นจินการแทนที่ GSUB เต็มรูปแบบที่ครอบคลุมทุก LookupType 1-8 (เดี่ยว, หลายตัว, ทางเลือก, อักษรควบ, ตามบริบท, แบบลูกโซ่ตามบริบท, ส่วนขยาย, ย้อนกลับแบบลูกโซ่ตามบริบท) ซึ่งทำงานร่วมกับเอ็นจินการจัดตำแหน่ง GPOS ที่ครอบคลุมทั้ง 9 LookupTypes (ระยะห่างแบบคู่ / เดี่ยว / ตามบริบท, เครื่องหมายกับฐาน, เครื่องหมายกับเครื่องหมาย, เครื่องหมายกับอักษรควบต่อส่วนประกอบ, การเชื่อมแบบตัวเขียน, ระยะทาง, แนวตั้ง vkrn/vpal) การจัดตำแหน่งทั้งหมดจะถูกส่งออกด้วยตัวดำเนินการข้อความมาตรฐานของ PDF เพื่อให้ทุกโปรแกรมอ่านเรนเดอร์ได้เหมือนกันทุกประการ

การจัดรูปทรงสคริปต์ที่ซับซ้อนฝั่งผู้ผลิต

สคริปต์มากกว่า 20 รายการได้รับการจัดรูปทรงทางฝั่งผู้ผลิต ขับเคลื่อนด้วยชุดฟีเจอร์ GSUB ของฟอนต์เอง: ภาษาอาหรับ (รวมถึง Supplement / Extended-A / Extended-B), ภาษาซีเรียค, ภาษามองโกเลีย, ภาษาเอ็นโก, ภาษาแอดลัม, ภาษาโรฮิงญาฮานิฟี, การวางซ้อนข้อความทิเบต, ภาษาเทวนาครีและตระกูลอินเดีย, ภาษาชวา, การจัดเรียงเครื่องหมายภาษาไทย / ลาว, การจัดเรียงสระภาษาฮีบรู, ภาษาเขมร, ภาษาพม่า, ภาษาไทดำ, ภาษาไมเตร เอาต์พุตจะมีแผนผังย้อนกลับ /ToUnicode เต็มรูปแบบเพื่อการคัดลอก / วางจะกู้คืนรหัสพอยต์ดั้งเดิมได้

สแต็กการลงลายมือชื่อในกระบวนการโดยไม่มีการพึ่งพาภายนอกเลย

ASN.1, RSA, AES, การถอดห่อ PKCS#12 และ CMS SignedData (RFC 5652) ทั้งหมดนี้ได้รับการพัฒนาอยู่ภายใน HotPDF เมธอด SignPDFWithPFX จะลงลายมือชื่อใน PDF ตัวแทนในครั้งเดียวโดยไม่ต้องใช้รันไทม์ OpenSSL และไม่มีผู้ให้บริการเข้ารหัสลับของแพลตฟอร์ม ห่วงโซ่การลงลายมือชื่อทั้งหมดจะทำงานอยู่ภายในกระบวนการของคุณ ซึ่งสามารถสร้างซ้ำได้ ตรวจสอบได้ และไม่ต้องใช้ไบนารีเนทีฟในการติดตั้งใช้งาน

การตรวจสอบความถูกต้องระยะยาวแบบ PAdES แบบต้นทางถึงปลายทาง

เวิร์กโฟลว์ PAdES B-B, B-T, B-LT และ B-LTA ได้รับการครอบคลุมอย่างสมบูรณ์: การประทับเวลา RFC 3161, พจนานุกรมการตรวจสอบความถูกต้องระยะยาว DSS / VRI, ลายมือชื่อการประทับเวลาของเอกสาร, ข้อจำกัดของค่าซีด และ XAdES-in-PDF นี่เป็นข้อกำหนดที่เข้มงวดสำหรับลายมือชื่ออิเล็กทรอนิกส์ที่สอดคล้องกับมาตรฐาน EU eIDAS ซึ่งส่วนประกอบคู่แข่งส่วนใหญ่จะหยุดอยู่ที่การลงลายมือชื่อ CMS พื้นฐานเท่านั้น

การปฏิบัติตามข้อกำหนดแบบสามแกนและการตรวจสอบก่อนหน้า

การกรองโปรไฟล์ที่เป็นอิสระสำหรับ PDF/A-1/-2/-3, PDF/X-1a/-3/-4, and PDF/UA-1 พร้อมกัน โดยการเรียกใช้งานที่ไม่เป็นไปตามข้อกำหนดจะทำให้เกิดข้อผิดพลาดในการวินิจฉัย แทนที่จะเขียนเอกสาร PDF ที่ไม่เป็นไปตามมาตรฐานไปอย่างเงียบๆ เมธอด CreatePreflightReport จะส่งออกรายงานรูปแบบข้อความ / JSON / HTML / CSV พร้อมโปรไฟล์ INI, ค่าล่วงหน้าที่กำหนดไว้ภายในตัว, การรวมเป็นกลุ่ม และการฝังหลักฐาน XMP ซึ่งตรวจสอบเสร็จสมบูรณ์ตั้งแต่ต้นจนจบกับ veraPDF

Direct File API สำหรับไฟล์ขนาดหลายกิกะไบต์

ทำงานกับไฟล์ PDF บนดิสก์โดยตรงโดยไม่ต้องสร้างกราฟวัตถุในหน่วยความจำ สำหรับเอกสารขนาด 2 GB ที่มีวัตถุ 1.67 ล้านชิ้น: การเข้ารหัส AES-256 ใช้เวลาประมาณ 14 วินาที, การถอดรหัสประมาณ 16 วินาที, การเขียนใหม่ทั้งหมดประมาณ 6 วินาที และการอ่านจำนวนหน้าของเอกสารขนาด 1.25 GB ใช้เวลาเพียงเสี้ยววินาที ตาราง xref แบบคลาสสิก, สตรีม XRef, ไฟล์อ้างอิงแบบไฮบริด และเอกสารที่อัปเดตแบบเพิ่มหน่วย ทั้งหมดจะยังคงทำงานอยู่บนกระบวนการประมวลผลโดยตรง

การทำเซตย่อยสำหรับ CFF / OpenType-CFF / CID

ฟอนต์ TrueType, OpenType-CFF และ CID-keyed CFF ล้วนสามารถทำเซตย่อยได้ในขณะที่ยังรักษา ID ของกลิฟสำหรับข้อความ Type0 / Identity-H เอกสาร CJK ที่เคยฝังโปรแกรม CFF แบบคีย์ CID ขนาด 14 MB มาก่อน ปัจจุบันจัดส่งในขนาด 500 KB - 2 MB โดยไม่มีกลิฟที่เรนเดอร์สูญหาย โปรแกรมฟอนต์ที่ฝังจะถูกบีบอัดด้วย Flate เสมอ, ฟอนต์ที่มีหลายหน้าจะฝังเพียงครั้งเดียวต่อเอกสาร และแท็กเซตย่อยจะถูกระบุอย่างมีเป้าหมายเพื่อให้ได้เอาต์พุตที่ทำซ้ำได้

ส่วนประสานระบบการเข้าสู่ระบบรันไทม์แบบรวมศูนย์

THPDFLogger + HPDFLog แบบโกลบอลมอบอินเทอร์เฟซการวินิจฉัยที่เปิดปิดได้ขณะรันไทม์: ตัวกรองระดับความรุนแรงของข้อผิดพลาด (Error / Warning / Info / Debug), การส่งออกไปยังไฟล์พร้อมกับ OutputDebugString และคอนโซลพร้อมกัน, รองรับความปลอดภัยกับเธรด, การสำรองข้อมูลเดี่ยวขนาด 10 MB พร้อมการเขียนทับ, และความรวดเร็วโดยไม่มีค่าใช้จ่ายเพิ่มเติมเมื่อปิดใช้งาน ฟังก์ชัน LoadFromFile, รายงานการตรวจสอบความถูกต้องก่อนหน้า และพาธทางเลือกของสตรีมวัตถุ ได้เชื่อมต่อกับการวินิจฉัยที่มีโครงสร้างซึ่งสามารถเปิดปิดได้ในขณะรันไทม์โดยไม่ต้องคอมไพล์ใหม่ ซึ่งเป็นความสามารถในการดำเนินการที่ส่วนประกอบของคู่แข่งส่วนใหญ่ไม่มีเลย

อะแดปเตอร์สำหรับเอ็นจินรายงานสี่ตัว

แบ็กเอนด์ PDF แบบวางแทนที่ได้สำหรับ FastReport (TfrxHotPDFExport), QuickReport (TQRHotPDFExportFilter), ReportBuilder (TppHotPDFDevice) และ DevExpress ExpressPrinting (ครอบคลุม cxGrid / cxRichEdit / cxScheduler / cxPivotGrid) เค้าโครงรายงานเดิมยังคงทำงานได้ตามปกติ มีเพียงส่วนส่งออก PDF เท่านั้นที่ถูกสลับเปลี่ยน

สิ่งเหล่านี้คือความสามารถที่ส่งมอบแล้ว ไม่ใช่สัญญาในแผนงาน ทุกรายการข้างต้นได้รับการพัฒนาแล้วในไลบรารีปัจจุบัน คอมไพล์ได้สำเร็จ และผ่านการทดสอบ DUnitX รวมถึงการตรวจสอบความถูกต้องของ veraPDF แบบต้นทางถึงปลายทาง เมื่อประเมินส่วนประกอบของคู่แข่ง โปรดขอหลักฐานที่พิสูจน์ถึงความครอบคลุมของ GSUB/GPOS LookupType ที่สมบูรณ์, ห่วงโซ่ PAdES B-LTA ในกระบวนการ และความเร็วการเข้ารหัสไฟล์ระดับหลายกิกะไบต์ที่วัดผลได้จริง

ข้อดีสำหรับนักพัฒนา

  • การรวมระบบที่เน้นระดับซอร์สโค้ดช่วยให้การดีบักและการติดตั้งใช้งานอยู่ภายใต้การควบคุมของคุณ
  • ตัวอย่างที่ใช้ร่วมกันใน Delphi และ C++Builder ช่วยให้อ้างอิงและตรวจสอบการทำงานในทั้งสองภาษาได้ง่ายขึ้น
  • การรวมไลบรารี C ภายนอกแบบสแตติกช่วยให้มั่นใจว่าข้อมูลการบีบอัดและการจัดการรูปภาพจะสามารถสร้างซ้ำได้สม่ำเสมอ
  • API ตัวช่วยโดยเฉพาะครอบคลุมฟิลเตอร์ PDF, FlateDecode, LZW, CCITT, หน้ากากรหัสรูปภาพ, บาร์โค้ด, การทำเซตย่อยของฟอนต์ และเวิร์กโฟลว์เนื้อหาของหน้า
  • การตรวจสอบเวอร์ชัน PDF สามารถอัปเกรดเวอร์ชันเอาต์พุตได้โดยอัตโนมัติ หรือบังคับให้เป็นไปตามมาตรฐาน PDF 1.3/1.4/1.5/1.6/1.7 ที่เข้มงวดผ่าน StrictVersionLock
  • โปรเจกต์แพ็กเกจ Delphi และ C++Builder ที่พร้อมใช้งานครอบคลุมเจเนอเรชัน RAD Studio ในปัจจุบัน รวมถึง 13.1 Florence

ไฮไลต์ของไลบรารีล่าสุด

Direct File API สำหรับไฟล์ขนาดหลายกิกะไบต์

ชุดคำสั่ง DAOpenFileReadOnly / DACopyFile / DASetDocumentInfo / DASaveAsFile และการเรียกใช้ EncryptFile / DecryptFile แบบไฟล์ต่อไฟล์จะจัดการกับไฟล์ PDF โดยตรงแทนที่จะสร้างกราฟวัตถุในหน่วยความจำ สำหรับเอกสารอ้างอิงการทดสอบขนาด 2 GB ที่มีวัตถุ 1.67 ล้านชิ้น การเข้ารหัส AES-256 ใช้เวลาประมาณ 14 วินาที การถอดรหัสใช้เวลาประมาณ 16 วินาที และการเขียนใหม่ทั้งหมดใช้เวลาประมาณ 6 วินาที ส่วนการเปิดเอกสารขนาด 1.25 GB เพื่อดูจำนวนหน้าใช้เวลาเพียงเสี้ยววินาที ตารางแบบดั้งเดิม, สตรีมการอ้างอิงไขว้, ไฟล์อ้างอิงไฮบริด และเอกสารที่อัปเดตแบบเพิ่มหน่วยยังคงทำงานอยู่ในพาธตรง

รายงานการตรวจสอบความถูกต้องล่วงหน้า

เมธอด CreatePreflightReport และ CreatePreflightReportWithProfile จะตรวจสอบเอกสาร PDF ตามข้อกำหนดของมาตรฐาน PDF/A, PDF/X และ PDF/UA ที่รองรับ พร้อมทั้งส่งออกรายงานเป็นรูปแบบข้อความ, JSON, HTML หรือ CSV ร่วมกับโปรไฟล์สไตล์ INI เพื่อปิดการรายงานสิ่งที่ยอมรับได้ เพื่อให้พร้อมสำหรับ CI gates และระบบจัดเก็บเอกสารจำนวนมาก ตัวอย่างของ PreflightCLI ได้เพิ่มความสามารถในการทำงานกับโฟลเดอร์ซ้ำๆ และแดชบอร์ดสรุปผลรวม

ชุดเครื่องมือฟอร์มสำหรับเอกสารที่โหลดมา

เมธอด HasFormFields และ FormFieldExists จะตรวจสอบข้อสงสัยเกี่ยวกับฟิลด์ฟอร์มในเอกสาร PDF ที่โหลดมาก่อนการเข้าถึง ค่าของฟิลด์สามารถอ่านและเขียนตามดัชนีหรือชื่อได้ และเมธอด FlattenFormFields จะประทับฟิลด์ AcroForm แบบอินเทอร์แอคทีฟลงในเนื้อหาหน้ากระดาษพร้อมทั้งรายงานจำนวนฟิลด์ที่แบนทั้งหมด ควบคู่ไปกับการแบน XFA เป็น AcroForm เพื่อรักษาฟอร์ม XFA ให้ใช้งานได้กับทุกโปรแกรมอ่าน

การลงลายมือชื่อ PFX / PKCS#12 ในกระบวนการ

เมธอด THotPDF.SignPDFWithPFX(InputPDF, OutputPDF, PFXFile, Password) จะลงลายมือชื่อในเอกสาร PDF ตัวแทนที่มีอยู่ภายในคำสั่งเดียว สแต็กโมดูล ASN.1, RSA, AES, PKCS#12 และ CMS SignedData (RFC 5652) ทั้งหมดได้รับการสนับสนุนภายใน HotPDF ดังนั้นจึงไม่จำเป็นต้องมีรันไทม์ OpenSSL หรือผู้ให้บริการเข้ารหัสลับภายนอกของแพลตฟอร์ม

การตรวจสอบความถูกต้องระยะยาวแบบ PAdES

เวิร์กโฟลว์ PAdES B-B, B-T, B-LT และ B-LTA ได้รับการสนับสนุนแบบต้นทางถึงปลายทาง: การสร้างลายมือชื่อพร้อมการประทับเวลาตามข้อกำหนด RFC 3161, พจนานุกรมการตรวจสอบความถูกต้องระยะยาว DSS / VRI, ลายมือชื่อการประทับเวลาของเอกสาร และข้อจำกัดค่าซีด การบังคับใช้ค่าซีดของลายมือชื่อและ XAdES-in-PDF ถือเป็นส่วนหนึ่งของอินเทอร์เฟซเดียวกัน

การปฏิบัติตามมาตรฐาน PDF/A, PDF/X และ PDF/UA

HotPDF คัดกรองการเรียกใช้เมธอดตามโปรไฟล์ของ PDF/A-1 / -2 / -3, PDF/X-1a / -3 / -4 และ PDF/UA-1 การเรียกใช้คุณสมบัติที่จะส่งผลเสียต่อโปรไฟล์ที่เลือก (เช่น ความโปร่งใสใน PDF/A-1, JavaScript ใน PDF/A, คำอธิบายประกอบภายนอกใน PDF/X, โครงสร้างไม่มีแท็กใน PDF/UA) จะทำให้เกิดข้อผิดพลาดในการวินิจฉัย แทนที่จะสร้างไฟล์ PDF ที่ไม่สอดคล้องกับข้อกำหนดออกไปแบบเงียบๆ

อะแดปเตอร์สำหรับเอ็นจินรายงานบุคคลภายนอก

แบ็กเอนด์ PDF แบบวางแทนที่ได้สำหรับเอ็นจินรายงาน Delphi สี่ตัวที่ใช้บ่อยที่สุด: TfrxHotPDFExport (FastReport 4 / FastReport VCL), TQRHotPDFExportFilter (QuickReport), TppHotPDFDevice (ReportBuilder) และ dxHotPDFExportReportLinkToFile/Stream (ระบบการพิมพ์ด่วน DevExpress ครอบคลุม cxGrid / cxRichEdit / cxScheduler / cxPivotGrid) รายงานเดิมยังทำงานได้ต่อเนื่อง มีเพียงตัวส่งออก PDF เท่านั้นที่ถูกสลับเปลี่ยน

เอ็นจินการจัดตำแหน่ง OpenType GPOS

การจัดตำแหน่งข้อความระบุใช้ที่ขับเคลื่อนด้วยข้อมูล GPOS ของตัวฟอนต์เอง: การเว้นระยะระหว่างคู่และตามบริบทสำหรับข้อความจากซ้ายไปขวาและขวาไปซ้าย, การจัดวางตำแหน่งแบบเครื่องหมายกับฐาน, เครื่องหมายกับเครื่องหมาย และเครื่องหมายต่อส่วนประกอบอักษรควบ, การจัดตำแหน่งการเชื่อมต่อตัวเขียนทางเข้า/ออก, การวางระยะห่าง และระยะห่างในแนวตั้งสำหรับฟอนต์แนวตั้ง การจัดตำแหน่งจะถูกส่งออกด้วยตัวดำเนินการข้อความมาตรฐานของ PDF เพื่อให้โปรแกรมอ่าน PDF ทุกโปรแกรมเรนเดอร์ผลลัพธ์แบบเดียวกัน

ความครอบคลุมการจัดรูปทรงข้อความสคริปต์ที่ซับซ้อน

การจัดรูปทรงทางฝั่งผู้ผลิตจะเรนเดอร์ข้อความที่เชื่อมโยงและจัดเรียงใหม่อย่างถูกต้องสำหรับภาษาอาหรับ (รวมถึงบล็อก Supplement, Extended-A และ Extended-B), ภาษาซีเรียค, ภาษามองโกเลีย, ภาษาเอ็นโก, ภาษาแอดลัม, ภาษาโรฮิงญาฮานิฟี, ภาษาทิเบต, ภาษาเทวนาครี และอักษรอินเดียอื่นๆ, ภาษาชวา, ภาษาไทย, ภาษาลาว, ภาษาฮีบรู, ภาษาเขมร, ภาษาพม่า, ภาษาไทดำ และภาษาไมเตร โดยไม่ต้องพึ่งพาตัวจัดรูปทรงฝั่งโปรแกรมแสดงผล แต่ละสคริปต์ทำงานในแบบสลับเปิดใช้ได้ ดังนั้นผลลัพธ์ดั้งเดิมจะเหมือนกันในระดับไบต์จนกว่าจะเปิดใช้ และการคัดลอก/วางจะกู้คืนอักขระดั้งเดิมได้

คุณสมบัติการสะกดคำ OpenType อัตโนมัติ

สวิตช์ตัวเลือกการจัดรูปทรงจะใช้ความสามารถของอักษรควบมาตรฐาน ทางเลือก และอักษรควบประวัติศาสตร์ของฟอนต์, ตัวพิมพ์ใหญ่ขนาดเล็ก, รูปแบบตัวเลขสไตล์เก่า / เสมอกัน / ตามสัดส่วน / ตารางตัวเลข, ตัวยก, ตัวห้อย, ลำดับที่, เศษส่วน, ตัวห้อยทางวิทยาศาสตร์, ตัวเศษ, ตัวส่วน, อักขระสไตล์และข้อความทดแทนตามบริบท, รูปแบบท้องถิ่น, รูปแบบที่คำนึงถึงตัวพิมพ์เล็กใหญ่, เลขศูนย์ที่มีเส้นทับ และรูปแบบทดแทนแนวตั้งโดยอัตโนมัติในระหว่างการแสดงผลข้อความ พร้อมทั้งการดึงข้อความที่แมปกลับไปยังอักขระต้นฉบับได้

เอาต์พุตฟอนต์ที่กะทัดรัด

โปรแกรมฟอนต์ที่ฝังจะถูกบีบอัดแบบ Flate เสมอ, ฟอนต์ที่ใช้ในหลายหน้าจะถูกฝังเพียงครั้งเดียวสำหรับเอกสารทั้งหมด และแท็กย่อยได้มาจากกลิฟที่ใช้งานจริงโดยมีเป้าหมายที่แน่นอน เพื่อให้การรันซ้ำสร้างผลลัพธ์ที่เหมือนกัน โหมดตัวเลือกเสริมจะเขียนข้อความ ASCII ธรรมดาด้วยฟอนต์มาตรฐานเป็นข้อความ WinAnsi ย่อส่วนแบบไม่ฝังตัว ช่วยลดขนาดหน้าข้อความธรรมดาจากหลายร้อยกิโลไบต์เหลือเพียงไม่กี่กิโลไบต์

การจัดรูปทรงผู้ผลิตหลายสคริปต์

การจัดรูปทรงทางฝั่งผู้ผลิตจะแปลงข้อมูล Unicode ให้อยู่ในรูปแบบนำเสนอของฟอนต์ (Presentation Forms) ก่อนส่งออกข้อความ PDF ภาษาอาหรับครอบคลุมตารางคลาสการเชื่อมโยง U+0672-06D5 ทั้งหมด พร้อมทั้งการจับคู่รูปแบบ Forms-A มากกว่า 40 รูปแบบ รวมถึงการปรับแต่งอักษรควบอัตโนมัติหลังการส่งออกสำหรับ LAM-ALEF, YEH-HAMZA + สระ (U+FBEA-FBFB), อักษรควบ Allah (U+FDF2) และ Bismillah (U+FDFD) ฟังก์ชันการทำงานของภาษาซีเรียค (GetSyriacJoiningClass), ภาษามองโกเลีย (GetMongolianJoiningClass) และภาษาเทวนาครี (GetDevanagariCategory / ApplyDevanagariReorder) ช่วยให้ผู้เรียกใช้งานสามารถประมวลผลข้อความที่ซับซ้อนอื่นๆ นอกเหนือจากภาษาอาหรับผ่านเอ็นจิน GSUB เดียวกันได้

ไปป์ไลน์การจัดรูปทรงอัตโนมัติ (เฟส 8)

คุณสมบัติระบุใช้งาน ShapingFeatures + enum THPDFShapingFeature (sfArabicGSUB / sfCursiveAttachment / sfStandardLigatures / sfContextualLigatures / sfContextualAlternates / sfIndicShaping) ยกระดับเอ็นจิน OpenType GSUB และ GPOS ให้เป็นไปป์ไลน์การจัดรูปทรงทางฝั่งผู้ผลิตโดยอัตโนมัติ โดยมีคุณลักษณะ init / medi / fina / isol สำหรับภาษาอาหรับดั้งเดิม, rlig, calt, rclt, GPOS cursive attachment, อักษรควบละติน liga / clig และการจัดเรียงข้อความภาษาเทวนาครี (Indic) จะเกิดขึ้นพร้อมกันขณะส่งออกข้อความ รวมทั้งระบบแมปย้อนกลับ /ToUnicode ที่สมบูรณ์เพื่อความถูกต้องในการคัดลอก / วาง

อักษรควบมาตรฐานละติน + รหัสพอยต์สังเคราะห์ PUA

อักษรควบมาตรฐานภาษาละติน (ff / fi / fl / ffi / ffl / ſt / st ผ่าน U+FB00-FB06) จะถูกส่งออกโดยอัตโนมัติผ่าน ApplyLatinLigatureRefinement เมื่อเปิดใช้งาน sfStandardLigatures สำหรับ GID ทดแทนของ GSUB ที่ไม่มีรหัสพอยต์ Unicode ธรรมชาติ เช่น รูปทรงกลุ่มตัวอักษรเทวนาครี, อักขระทางเลือกสไตล์การเขียน, ลำดับการแปรผันอักษรภาพ CJK เมธอด AssignSyntheticCodepointForGID จะจัดสรรรหัสพอยต์ในพื้นที่ใช้งานส่วนตัว (Private-Use-Area: U+E000-F8FF) ร่วมกับการรวมระบบสะท้อน /CIDToGIDMap + /W + /ToUnicode

เอ็นจินการแทนที่ OpenType GSUB

ทุกประเภทการค้นหา OpenType GSUB LookupType 1-8 (เดี่ยว, หลายตัว, ทางเลือก, อักษรควบ, ตามบริบท, แบบลูกโซ่ตามบริบท, ส่วนขยาย, ย้อนกลับแบบลูกโซ่ตามบริบท) ได้รับการออกแบบให้เป็นตัวสอบถามข้อมูลความสามารถการทำงานเท่านั้น (เช่น GetSingleSubstituteGlyph, ApplyLigatureSubstitution, ApplyContextualSubst, ApplyReverseChainedContextualSubst และตัวช่วยสำหรับ Multiple / Alternate / Script / LangSys / Feature) ฟังก์ชัน MarkUnicodeGlyphUsed จะดึงข้อมูลกลิฟสำรองทุกตัวเข้าสู่เครื่องมือทำเซตย่อย TTF เพื่อให้เซตย่อยของฟอนต์ที่ฝังอยู่คงความสมบูรณ์ในตัว

ฟอร์ม XFA + ทริกเกอร์ AcroForm + Unicode /DR

แพ็กเก็ตคอนเทนเนอร์ XFA ของ PDF 1.7 §12.7.6 / §12.7.8 จะทำงานควบคู่ไปกับ (หรือแทนที่) ฟิลด์คงที่ /Fields ผ่านทางเมธอด AddXFAPacket ตระกูลทริกเกอร์ฟิลด์ฟอร์ม AcroForm ทั้งหมด (/AA /K Keystroke, /F Format, /V Validate, /C Calculate) จะแสดงผ่านเมธอดแรปเปอร์ และเมธอด RegisterAcroFormFont จะผูกฟอนต์ Unicode หลายตัวเข้ากับพจนานุกรมทรัพยากร AcroForm /DR เดียวสำหรับวิดเจ็ตฟอร์มหลายภาษา

การทำเซตย่อยฟอนต์และ PDF แบบ CJK

เมธอด THotPDF.EnableFontSubsetting จะทำเซตย่อยของฟอนต์ TrueType, OpenType-CFF และ CID-keyed CFF ในขณะที่ยังคงรักษาค่ารหัส ID ของกลิฟสำหรับข้อความ Type0 / Identity-H เอกสาร PDF ของ CJK ที่เคยฝังโปรแกรม CFF แบบคีย์ CID ขนาด 14 MB มาก่อน ปัจจุบันจัดส่งในขนาด 500 KB - 2 MB โดยไม่มีกลิฟที่เรนเดอร์ใดๆ สูญหาย

การบันทึกแบบเพิ่มหน่วยของลายมือชื่อหลายจุด

เมธอด BeginIncrementalUpdate, SaveIncrementalUpdate, MarkDirty และ API ตัวยึดตำแหน่งลายมือชื่อ จะรองรับการอัปเดต PDF แบบต่อท้ายเท่านั้นและเวิร์กโฟลว์ลายมือชื่อหลายจุดโดยไม่ต้องเขียนช่วงไบต์ที่เคยลงลายมือชื่อไว้ก่อนหน้านี้ใหม่

ความครอบคลุมคุณสมบัติ PDF ขั้นสูง

  • ประตูทางเชื่อม API ของ PDF 1.3 / 1.4 / 1.5 / 1.6 / 1.7 และ PDF 2.0 ที่เลือกไว้ตามเวอร์ชันเฉพาะสำหรับ Catalog, ViewerPreferences, คำอธิบายประกอบ, JavaScript, ฟอนต์ Type0, แผนผัง ToUnicode, ความโปร่งใส, เลเยอร์ และการเข้ารหัส
  • ประตูการปฏิบัติตามมาตรฐาน PDF/A-1 / -2 / -3, PDF/X-1a / -3 / -4 และ PDF/UA-1 ที่จะปฏิเสธการเรียกใช้คุณสมบัติที่ไม่เป็นไปตามข้อกำหนด แทนที่จะปล่อยให้การประมวลผลละเมิดข้อกำหนดโดยไม่มีการแจ้งเตือน
  • แผนผังโครงสร้าง PDF ที่มีแท็กพร้อมการจับคู่บทบาท, เอาต์พุต StructParents, ParentTree และองค์ประกอบโครงสร้างสำหรับเวิร์กโฟลว์ที่เน้นการเข้าถึงได้ง่าย
  • คำอ้างอิงการใช้งานสำหรับ OutputIntents, โปรไฟล์ ICC, กล่องหน้ากระดาษ, การหมุนหน้า, UserUnit, ลำดับแท็บ, รูปแบบการปูกระเบื้อง, ExtGState alpha, โหมดการผสมสี, โทนสีครึ่งสี (Type 1 / 5 / 6 / 10 / 16), ฟังก์ชันการถ่ายโอน และการสร้างสีดำ / การลบสีพื้นหลัง
  • รูปภาพอินไลน์, การไล่สีแนวแกนแบบหลายจุดหยุด, การไล่สีแนวรัศมี, ตาข่ายสามเหลี่ยมไล่เฉดสีแบบอิสระ / แบบลายตารางของ Gouraud, ตาข่ายแบบ Coons patch และแบบ tensor product patch, รูปภาพหน้ากากแบบนุ่มนวลเพื่อตั้งค่าอัลฟาเฉพาะพิกเซลสไตล์ไฟล์ PNG และการเติมลวดลายที่นำกลับมาใช้ใหม่ได้
  • จุดหมายปลายทางที่มีชื่อ, ภาพขนาดย่อของหน้ากระดาษ, สไตล์โครงร่างในระดับหน้ากระดาษ (สี, ตัวหนา, ตัวเอียง), ทะเบียน JavaScript ที่มีชื่อในระดับเอกสาร และตระกูลองค์ประกอบเสริม Line / PolyLine / Polygon (คำอธิบายรูปภาพ, ส่วนท้ายของเส้น, วัตถุประสงค์, เอฟเฟกต์เส้นขอบ)
  • การจัดรูปทรงอักษรอารบิกฝั่งผู้ผลิตครอบคลุมตารางคลาสการเชื่อมต่อ U+0672-06D5 ทั้งหมด ร่วมกับรูปแบบ Presentation Forms-A ที่มีอยู่มากกว่า 40 แบบ รวมถึงการควบรวมตัวอักษรแบบมีขอบเขตหลังจากนั้นสำหรับ LAM-ALEF, คู่ YEH-HAMZA + สระ (U+FBEA-FBFB), อักษรควบ Allah (U+FDF2) และวลี Bismillah (U+FDFD)
  • การประสานข้อมูลความสามารถในการจัดรูปทรงข้อความหลายสคริปต์: ภาษาซีเรียค (GetSyriacJoiningClass / GetSyriacPosition), ภาษามองโกเลีย (GetMongolianJoiningClass / GetMongolianPosition) และภาษาเทวนาครี (GetDevanagariCategory / ApplyDevanagariReorder) ซึ่งขับเคลื่อนเอ็นจิน GSUB เดียวกันสำหรับสคริปต์ที่ซับซ้อนนอกเหนือจากภาษาอาหรับ
  • ไปป์ไลน์การจัดรูปทรงอัตโนมัติของเฟส 8 ที่ขับเคลื่อนด้วยคุณสมบัติการระบุใช้ ShapingFeatures: โหมด sfArabicGSUB จะนำคุณลักษณะภาษาอาหรับดั้งเดิม init / medi / fina / isol และ rlig / calt / rclt มาใช้เพื่อส่งออกรหัส ID ของกลิฟเฉพาะของฟอนต์, โหมด sfCursiveAttachment จะใช้จุดยึดตัวเขียนต่อเนื่อง GPOS, โหมด sfStandardLigatures / sfContextualLigatures จะส่งออกอักษรควบละติน liga / clig (FB00-FB06: ff / fi / fl / ffi / ffl / ſt / st) และโหมด sfIndicShaping จะจัดเรียงกลุ่มพยางค์ภาษาเทวนาครีใหม่ (Repha + pre-base I-matra) ก่อนการส่งออกข้อความ
  • เอ็นจินการแทนที่ OpenType GSUB (LookupType 1-8) ที่มีคุณสมบัติครบถ้วน พร้อมการเลือก Script / LangSys, ส่วนประมวลผลเครื่องมือ TTF subsetter (MarkUnicodeGlyphUsed), ความครอบคลุม Cmap รูปแบบ 12 SMP, การแจงวิเคราะห์โครงสร้าง GDEF, การส่งออกอัตโนมัติของ ToUnicode CMap ด้วยข้อมูลการแมปย้อนกลับของอักษรควบ 35 รายการ และฟังก์ชันตรวจสอบ GetUnicodeGlyphForCodepoint สำหรับกรณีที่ผู้เรียกใช้งานประมวลผลการแสดงผลทีละกลิฟ
  • การส่งออกรหัสพอยต์สังเคราะห์ PUA (AssignSyntheticCodepointForGID / GetSyntheticCodepointForGID) ช่วยให้โปรแกรมสร้างส่งออกข้อมูลกลิฟทดแทน GID ของ GSUB (เช่น รูปทรงกลุ่มอักษรเทวนาครี, อักขระทางเลือกสไตล์การเขียน, ลำดับการแปรผันของภาพตัวอักษร CJK) ผ่านพื้นที่ใช้งานส่วนตัว U+E000-F8FF ควบคู่กับระบบรวมข้อมูล /CIDToGIDMap + /W ฟังก์ชัน GetCodepointAdvance จะแสดงข้อมูล em-fraction /W ที่ถูกเก็บไว้สำหรับการคำนวณการขึ้นบรรทัดใหม่
  • เอ็นจินการจัดตำแหน่ง OpenType GPOS ที่ทำงานภายใต้สวิตช์เลือกเปิดใช้งาน: การปรับระยะตัวอักษรแบบคู่, เดี่ยว และตามบริบท (Context / Chained Context) สำหรับข้อความจากซ้ายไปขวาและขวาไปซ้าย, การจัดวางเครื่องหมายกับฐาน / เครื่องหมายกับเครื่องหมาย / เครื่องหมายกับอักษรควบอย่างแม่นยำในแต่ละส่วนประกอบของอักษรควบ, การระบุจุดยึดเข้าออกตัวเขียนต่อเนื่อง, การวางตำแหน่งระยะทาง และระบบการปรับระยะแนวตั้ง vkrn / vpal สำหรับเอาต์พุตข้อความแนวตั้ง
  • การจัดรูปทรงอักษรที่ซับซ้อนทางฝั่งผู้ผลิตสำหรับภาษาอาหรับ Supplement / Extended-A / Extended-B, ภาษาซีเรียค, ภาษามองโกเลีย, ภาษาเอ็นโก, ภาษาแอดลัม, ภาษาโรฮิงญาฮานิฟี, การซ้อนพยัญชนะทิเบต, ตระกูลภาษาอินเดียผ่านชุดฟีเจอร์ Indic ของฟอนต์, ภาษาชวา, การจัดเรียงเครื่องหมายภาษาไทย / ลาว, การจัดเรียงจุดสระภาษาฮีบรู, ภาษาเขมร, ภาษาพม่า, ภาษาไทดำ และภาษาไมเตร โดยแต่ละรายการจะอยู่ภายใต้การสลับเปิดใช้งานของตนเอง พร้อมการแมปย้อนกลับ ToUnicode เพื่อให้คัดลอก / วางได้อย่างสมบูรณ์
  • คุณสมบัติการสะกดคำ OpenType แบบอัตโนมัติในระหว่างการส่งออกข้อความ: อักษรควบ liga / clig / dlig / hlig, ตัวพิมพ์ใหญ่ขนาดเล็ก smcp / c2sc, รูปแบบตัวเลข onum / lnum / pnum / tnum, ตัวแสดงผล sups / subs / ordn / frac / sinf / numr / dnom, รูปแบบเขียนทางเลือก salt, รูปแบบตามบริบท calt / rclt, การระบุรูปแบบเฉพาะถิ่น locl, รูปแบบกรณีเฉพาะ case, เลขศูนย์มีขีดทับ zero และรูปแบบแนวตั้ง vert / vrt2 ร่วมกับการแก้ไขการแทนที่แบบเชื่อมโยงกลับไปยังข้อความดั้งเดิมใน ToUnicode CMap
  • การเพิ่มประสิทธิภาพการฝังฟอนต์: บีบอัดไฟล์โปรแกรมฟอนต์ที่ฝังไว้เสมอ, ฝังเพียงชุดเดียวต่อเอกสารสำหรับฟอนต์ที่ใช้งานในหลายหน้ากระดาษ, ระบบแท็กย่อยที่มีเป้าหมายชัดเจนเพื่อให้ได้ผลลัพธ์การพิมพ์ที่ทำซ้ำได้อย่างแม่นยำ และมีโหมดตัวเลือก WinAnsi แบบไม่ฝังฟอนต์สำหรับข้อความ ASCII ธรรมดาที่ใช้ฟอนต์มาตรฐาน
  • ฟิลด์ข้อความ AcroForm, กล่องรายการ, กล่องคอมโบ, กล่องเลือกข้อความ, ปุ่มตัวเลือกวิทยุ, การทำงานปุ่มกด (รวมถึงคุณสมบัติ Named / Hide / Show / ImportData / SubmitForm ที่ขยายเพิ่มเติมพร้อมควบคุม /Flags ผ่านผู้ใช้), ฟิลด์ลายมือชื่อ และข้อมูลสตรีมภาพแสดงผลที่สร้างขึ้น (เช่น บรรทัดข้อความหลายบรรทัด + ร่องเชื่อม + ข้อความหรูหรา Tx + ฟอนต์ CID /AP)
  • ตระกูลทริกเกอร์สำหรับฟิลด์ฟอร์ม AcroForm (/AA /K Keystroke, /F Format, /V Validate, /C Calculate) โดยมีเมธอดแรปเปอร์หนึ่งตัวต่อหนึ่งทริกเกอร์, การจดทะเบียนฟอนต์ Unicode หลายตัว /DR ผ่าน RegisterAcroFormFont, ระบบจัดการคอนเทนเนอร์ XFA (XML Forms Architecture) (PDF 1.7 §12.7.6 / §12.7.8) ร่วมกับฟังก์ชัน AddXFAPacket / ClearXFAPackets / XFAPacketCount และตัวตรวจสอบสอดคล้องของ PDF/A + PDF/X พร้อมการดำเนินการแบน XFA เป็น AcroForm (เมธอด ApplyXFAAsAcroForm สำหรับข้อมูลไบต์ XDP ดิบ, เมธอด FlattenLoadedXFA สำหรับฟอร์มฝังตัวของเอกสาร PDF ที่โหลด) ซึ่งจะเปลี่ยนข้อมูล XFA แบบสแตติกให้เป็นฟิลด์รูปแบบ AcroForm ดั้งเดิม สไตล์ และรูปกราฟิกบนหน้ากระดาษ เพื่อให้ฟอร์มยังคงสามารถมองเห็นและกรอกข้อมูลได้ในโปรแกรมอ่านเอกสารที่ไม่มีเอ็นจิน XFA
  • ส่วนติดต่อการเข้าถึง PDF ที่มีแท็กสำหรับมาตรฐาน PDF/UA-1: คุณสมบัติลำดับเนื้อหาที่มีเครื่องหมายในหัวข้อ §14.8.4 บนเมธอด BeginTaggedContent (เช่น /Lang / /Alt / /ActualText / /E), เมธอดตั้งค่าคุณสมบัติองค์ประกอบโครงสร้าง (/Lang / /E / /T), enum ประเภทโครงสร้างมาตรฐานของตาราง 333 (THPDFStandardStructureType) และโอเวอร์โหลดประเภท AddStructureElement
  • การสนับสนุนคำอธิบายประกอบสำหรับเน้นข้อความ, ข้อความอิสระ, ลิงก์, ไฟล์แนบ, ป๊อปอัป, การปกปิดข้อมูลสำคัญ, ลายน้ำ, สื่อสมบูรณ์, ข้อมูลรูปแบบ 3D / U3D / PRC, สไตล์ขอบ และป๊อปอัปความคิดเห็นที่เชื่อมโยง
  • ความปลอดภัยระดับรหัสผ่านมาตรฐาน, ตัวจัดการความปลอดภัยแบบ AES-128 / AES-256, แฮชชิงระดับ PDF 2.0 R6, ระบบการเข้ารหัสคีย์สาธารณะของผู้รับใบรับรองผ่านซองจดหมาย PKCS#7 ที่ผู้เรียกใช้งานจัดหาให้ และการประมวลผลที่ปลอดภัยในระดับไบนารีสำหรับชื่อสีและชื่อฟอนต์ที่ไม่ใช่รูปแบบ ASCII
  • ลายมือชื่อดิจิทัล PAdES B-B, B-T, B-LT และ B-LTA พร้อมการประทับเวลาตามมาตรฐาน RFC 3161, พจนานุกรมการตรวจสอบความถูกต้องระยะยาว DSS / VRI, ลายมือชื่อการประทับเวลาของเอกสาร, ข้อจำกัดค่าซีด และ XAdES-in-PDF
  • การลงลายมือชื่อ PFX / PKCS#12 ในกระบวนการ: สแต็ก ASN.1, RSA, AES, PKCS#12 และ CMS SignedData ที่มาพร้อมกับไลบรารีจะลงลายมือชื่อลงในไฟล์ PDF ตัวแทนที่มีอยู่ภายในคำสั่งครั้งเดียวโดยปราศจากการพึ่งพา OpenSSL หรือตัวจัดการรหัสผ่านความปลอดภัยของแพลตฟอร์ม
  • แบ็กเอนด์ PDF แบบวางทดแทนได้สำหรับ FastReport 4 / FastReport VCL, QuickReport, ReportBuilder และระบบการพิมพ์ด่วน DevExpress เพื่อให้ข้อกำหนดรายงานที่ใช้งานอยู่สามารถส่งออกผ่าน HotPDF ได้ทันทีโดยไม่ต้องแก้ไขเค้าโครงรายงานใหม่

สแต็กการจัดการภาพและการบีบอัดข้อมูลประสิทธิภาพสูง

โครงสร้าง HotPDF ในปัจจุบันทำงานร่วมกับ zlib-ng ในโหมดที่เข้ากันได้กับ zlib สำหรับแบ็กเอนด์ Flate ที่มาพร้อมเครื่อง ส่วนสตรีมหน้าเอกสาร, สตรีมฟอนต์ที่ฝัง, ToUnicode CMaps, สตรีมรูปภาพ Flate, เอาต์พุตที่เกี่ยวข้องกับ TIFF และเครื่องมือตัวช่วย FlateDecode ล้วนได้รับการจัดการผ่านโครงสร้างเลเยอร์ HotPDF zlib

โครงสร้าง zlib-ng ของ Win64x และตัววินิจฉัย MSVC Win64 ประกอบด้วยระบบ CPU dispatch ขณะรันไทม์สำหรับเส้นทาง SSE2, SSSE3, SSE4.1, SSE4.2, PCLMULQDQ และ AVX2 โดยยังมีระบบตัวสำรองทั่วไปไว้ใช้งาน ส่วน Win32 จะยังคงอยู่ในชุดวัตถุ zlib-ng OMF ทั่วไปผ่าน bcc32c ในขณะที่วัตถุ JPEG และ TIFF ของ Win32 จะยังคงใช้เส้นทาง OMF ของ bcc32 แบบเดิมต่อไป

เวิร์กโฟลว์รูปภาพ JPEG มาตรฐานจะใช้ชุดวัตถุ libjpeg-turbo 3.1.90 ที่ฝังมาด้วยผ่าน API ที่รองรับการทำงานร่วมกับ libjpeg ซึ่งแสดงผลจากชุด HPDFJpeg.pas โครงสร้างเนทีฟสำหรับ Win32, Win64 และ Win64x ในปัจจุบันได้รวมชุดวัตถุ NASM SIMD ที่เกี่ยวข้องเข้ามาด้วยแล้ว และแบ็กเอนด์ JPEG เนทีฟเดียวกันนี้ก็พร้อมใช้งานสำหรับเลเยอร์การผสานรวม TIFF ในการจัดการข้อมูล TIFF ที่บีบอัดด้วยไฟล์ JPEG

ตัวเชื่อมต่อรันไทม์ C ในชุด HPDFCLibs.pas ตอนนี้จะจัดการคำสั่ง malloc, free, realloc, calloc, memcpy, memmove และ memset ผ่านการประสานงานระดับ Pascal หน้าเดียว ร่วมกับระบบจัดสรรพื้นที่แบบจัดเรียงขนาด 32 ไบต์สำหรับบัฟเฟอร์เนทีฟที่รองรับ SIMD ได้อย่างดี

คลังเก็บซอร์สโค้ดนี้ประกอบด้วยสคริปต์สำหรับการสร้างวัตถุที่สามารถสร้างซ้ำได้: Lib\thirdparty\build-bcc32.bat, Lib\thirdparty\build-bcc64x.bat และ Lib\thirdparty\build-vc64.bat สำหรับชุดไลบรารี C เนทีฟที่สมบูรณ์ ร่วมกับสคริปต์ zlib-ng-only สำหรับการสร้างระบบการบีบอัดข้อมูลโดยเฉพาะใหม่

ตัวอย่างคำสั่ง Delphi แบบด่วน

program HelloHotPDF;

uses
  System.SysUtils,
  HPDFDoc;

var
  PDF: THotPDF;
begin
  PDF := THotPDF.Create(nil);
  try
    PDF.AutoLaunch := False;
    PDF.FileName := 'HelloHotPDF.pdf';
    PDF.Compression := cmFlateDecode;
    PDF.EnableFontSubsetting := True;
    PDF.BeginDoc;
    PDF.CurrentPage.SetFont('Arial', [], 18);
    PDF.CurrentPage.TextOut(50, 50, 0, 'Hello HotPDF');
    PDF.EndDoc;
  finally
    PDF.Free;
  end;
end.

เนื้อหาของแพ็กเกจ

กรณีการใช้งานทั่วไป