ความเข้ากันได้แบบเนทีฟกับ RAD Studio
ใช้โปรเจกต์, แพ็กเกจ, สตรีม, ฟอร์ม และรูปแบบการวาดของ Delphi และ C++Builder ที่คุ้นเคย แทนที่จะต้องครอบเอ็นจิน PDF แยกต่างหาก
HotPDF 2.200.2 สำหรับ Delphi และ C++Builder
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 ที่ไม่ฝังตัว
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 ได้รับการใช้งานทั้งหมด
ใช้โปรเจกต์, แพ็กเกจ, สตรีม, ฟอร์ม และรูปแบบการวาดของ Delphi และ C++Builder ที่คุ้นเคย แทนที่จะต้องครอบเอ็นจิน PDF แยกต่างหาก
สร้าง PDF ด้วยฟอร์ม, คำอธิบายประกอบ, เลเยอร์, ความโปร่งใส, การเปลี่ยนหน้า, โครงสร้างที่มีแท็ก, การเข้ารหัส, ตัวยึดตำแหน่งการลงลายมือชื่อ และการอัปเดตแบบเพิ่มหน่วย
ลดขนาด PDF ด้วยการบีบอัด zlib-ng, การจัดการภาพของ libjpeg-turbo, การทำเซตย่อยของ TrueType, การทำเซตย่อยของ OpenType-CFF และการสนับสนุน CID-keyed CFF สำหรับฟอนต์ CJK ขนาดใหญ่
ความสามารถด้านล่างนี้คือข้อแตกต่างทางเทคนิคที่แท้จริงสำหรับ HotPDF เมื่อเทียบกับส่วนประกอบ PDF ของ Delphi ทั่วไป ส่วนประกอบเชิงพาณิชย์ของคู่แข่งส่วนใหญ่มักจะขาดฟีเจอร์เหล่านี้ทั้งหมด หรือมีประสิทธิภาพการทำงานที่อ่อนแอกว่าอย่างเห็นได้ชัด แต่ละแถวจะเชื่อมโยงกับการทำงานที่สามารถตรวจสอบได้และส่วนติดต่อ API สาธารณะภายในไลบรารี
เอ็นจินการแทนที่ 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 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
ทำงานกับไฟล์ PDF บนดิสก์โดยตรงโดยไม่ต้องสร้างกราฟวัตถุในหน่วยความจำ สำหรับเอกสารขนาด 2 GB ที่มีวัตถุ 1.67 ล้านชิ้น: การเข้ารหัส AES-256 ใช้เวลาประมาณ 14 วินาที, การถอดรหัสประมาณ 16 วินาที, การเขียนใหม่ทั้งหมดประมาณ 6 วินาที และการอ่านจำนวนหน้าของเอกสารขนาด 1.25 GB ใช้เวลาเพียงเสี้ยววินาที ตาราง xref แบบคลาสสิก, สตรีม XRef, ไฟล์อ้างอิงแบบไฮบริด และเอกสารที่อัปเดตแบบเพิ่มหน่วย ทั้งหมดจะยังคงทำงานอยู่บนกระบวนการประมวลผลโดยตรง
ฟอนต์ 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 ในกระบวนการ และความเร็วการเข้ารหัสไฟล์ระดับหลายกิกะไบต์ที่วัดผลได้จริง
StrictVersionLockชุดคำสั่ง 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 ให้ใช้งานได้กับทุกโปรแกรมอ่าน
เมธอด THotPDF.SignPDFWithPFX(InputPDF, OutputPDF, PFXFile, Password) จะลงลายมือชื่อในเอกสาร PDF ตัวแทนที่มีอยู่ภายในคำสั่งเดียว สแต็กโมดูล ASN.1, RSA, AES, PKCS#12 และ CMS SignedData (RFC 5652) ทั้งหมดได้รับการสนับสนุนภายใน HotPDF ดังนั้นจึงไม่จำเป็นต้องมีรันไทม์ OpenSSL หรือผู้ให้บริการเข้ารหัสลับภายนอกของแพลตฟอร์ม
เวิร์กโฟลว์ PAdES B-B, B-T, B-LT และ B-LTA ได้รับการสนับสนุนแบบต้นทางถึงปลายทาง: การสร้างลายมือชื่อพร้อมการประทับเวลาตามข้อกำหนด RFC 3161, พจนานุกรมการตรวจสอบความถูกต้องระยะยาว DSS / VRI, ลายมือชื่อการประทับเวลาของเอกสาร และข้อจำกัดค่าซีด การบังคับใช้ค่าซีดของลายมือชื่อและ XAdES-in-PDF ถือเป็นส่วนหนึ่งของอินเทอร์เฟซเดียวกัน
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 เท่านั้นที่ถูกสลับเปลี่ยน
การจัดตำแหน่งข้อความระบุใช้ที่ขับเคลื่อนด้วยข้อมูล GPOS ของตัวฟอนต์เอง: การเว้นระยะระหว่างคู่และตามบริบทสำหรับข้อความจากซ้ายไปขวาและขวาไปซ้าย, การจัดวางตำแหน่งแบบเครื่องหมายกับฐาน, เครื่องหมายกับเครื่องหมาย และเครื่องหมายต่อส่วนประกอบอักษรควบ, การจัดตำแหน่งการเชื่อมต่อตัวเขียนทางเข้า/ออก, การวางระยะห่าง และระยะห่างในแนวตั้งสำหรับฟอนต์แนวตั้ง การจัดตำแหน่งจะถูกส่งออกด้วยตัวดำเนินการข้อความมาตรฐานของ PDF เพื่อให้โปรแกรมอ่าน PDF ทุกโปรแกรมเรนเดอร์ผลลัพธ์แบบเดียวกัน
การจัดรูปทรงทางฝั่งผู้ผลิตจะเรนเดอร์ข้อความที่เชื่อมโยงและจัดเรียงใหม่อย่างถูกต้องสำหรับภาษาอาหรับ (รวมถึงบล็อก Supplement, Extended-A และ Extended-B), ภาษาซีเรียค, ภาษามองโกเลีย, ภาษาเอ็นโก, ภาษาแอดลัม, ภาษาโรฮิงญาฮานิฟี, ภาษาทิเบต, ภาษาเทวนาครี และอักษรอินเดียอื่นๆ, ภาษาชวา, ภาษาไทย, ภาษาลาว, ภาษาฮีบรู, ภาษาเขมร, ภาษาพม่า, ภาษาไทดำ และภาษาไมเตร โดยไม่ต้องพึ่งพาตัวจัดรูปทรงฝั่งโปรแกรมแสดงผล แต่ละสคริปต์ทำงานในแบบสลับเปิดใช้ได้ ดังนั้นผลลัพธ์ดั้งเดิมจะเหมือนกันในระดับไบต์จนกว่าจะเปิดใช้ และการคัดลอก/วางจะกู้คืนอักขระดั้งเดิมได้
สวิตช์ตัวเลือกการจัดรูปทรงจะใช้ความสามารถของอักษรควบมาตรฐาน ทางเลือก และอักษรควบประวัติศาสตร์ของฟอนต์, ตัวพิมพ์ใหญ่ขนาดเล็ก, รูปแบบตัวเลขสไตล์เก่า / เสมอกัน / ตามสัดส่วน / ตารางตัวเลข, ตัวยก, ตัวห้อย, ลำดับที่, เศษส่วน, ตัวห้อยทางวิทยาศาสตร์, ตัวเศษ, ตัวส่วน, อักขระสไตล์และข้อความทดแทนตามบริบท, รูปแบบท้องถิ่น, รูปแบบที่คำนึงถึงตัวพิมพ์เล็กใหญ่, เลขศูนย์ที่มีเส้นทับ และรูปแบบทดแทนแนวตั้งโดยอัตโนมัติในระหว่างการแสดงผลข้อความ พร้อมทั้งการดึงข้อความที่แมปกลับไปยังอักขระต้นฉบับได้
โปรแกรมฟอนต์ที่ฝังจะถูกบีบอัดแบบ 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 เดียวกันได้
คุณสมบัติระบุใช้งาน 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 ที่สมบูรณ์เพื่อความถูกต้องในการคัดลอก / วาง
อักษรควบมาตรฐานภาษาละติน (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 LookupType 1-8 (เดี่ยว, หลายตัว, ทางเลือก, อักษรควบ, ตามบริบท, แบบลูกโซ่ตามบริบท, ส่วนขยาย, ย้อนกลับแบบลูกโซ่ตามบริบท) ได้รับการออกแบบให้เป็นตัวสอบถามข้อมูลความสามารถการทำงานเท่านั้น (เช่น GetSingleSubstituteGlyph, ApplyLigatureSubstitution, ApplyContextualSubst, ApplyReverseChainedContextualSubst และตัวช่วยสำหรับ Multiple / Alternate / Script / LangSys / Feature) ฟังก์ชัน MarkUnicodeGlyphUsed จะดึงข้อมูลกลิฟสำรองทุกตัวเข้าสู่เครื่องมือทำเซตย่อย TTF เพื่อให้เซตย่อยของฟอนต์ที่ฝังอยู่คงความสมบูรณ์ในตัว
/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 เดียวสำหรับวิดเจ็ตฟอร์มหลายภาษา
เมธอด 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 แบบต่อท้ายเท่านั้นและเวิร์กโฟลว์ลายมือชื่อหลายจุดโดยไม่ต้องเขียนช่วงไบต์ที่เคยลงลายมือชื่อไว้ก่อนหน้านี้ใหม่
GetSyriacJoiningClass / GetSyriacPosition), ภาษามองโกเลีย (GetMongolianJoiningClass / GetMongolianPosition) และภาษาเทวนาครี (GetDevanagariCategory / ApplyDevanagariReorder) ซึ่งขับเคลื่อนเอ็นจิน GSUB เดียวกันสำหรับสคริปต์ที่ซับซ้อนนอกเหนือจากภาษาอาหรับ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) ก่อนการส่งออกข้อความMarkUnicodeGlyphUsed), ความครอบคลุม Cmap รูปแบบ 12 SMP, การแจงวิเคราะห์โครงสร้าง GDEF, การส่งออกอัตโนมัติของ ToUnicode CMap ด้วยข้อมูลการแมปย้อนกลับของอักษรควบ 35 รายการ และฟังก์ชันตรวจสอบ GetUnicodeGlyphForCodepoint สำหรับกรณีที่ผู้เรียกใช้งานประมวลผลการแสดงผลทีละกลิฟAssignSyntheticCodepointForGID / GetSyntheticCodepointForGID) ช่วยให้โปรแกรมสร้างส่งออกข้อมูลกลิฟทดแทน GID ของ GSUB (เช่น รูปทรงกลุ่มอักษรเทวนาครี, อักขระทางเลือกสไตล์การเขียน, ลำดับการแปรผันของภาพตัวอักษร CJK) ผ่านพื้นที่ใช้งานส่วนตัว U+E000-F8FF ควบคู่กับระบบรวมข้อมูล /CIDToGIDMap + /W ฟังก์ชัน GetCodepointAdvance จะแสดงข้อมูล em-fraction /W ที่ถูกเก็บไว้สำหรับการคำนวณการขึ้นบรรทัดใหม่vkrn / vpal สำหรับเอาต์พุตข้อความแนวตั้ง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/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 ดั้งเดิม สไตล์ และรูปกราฟิกบนหน้ากระดาษ เพื่อให้ฟอร์มยังคงสามารถมองเห็นและกรอกข้อมูลได้ในโปรแกรมอ่านเอกสารที่ไม่มีเอ็นจิน XFABeginTaggedContent (เช่น /Lang / /Alt / /ActualText / /E), เมธอดตั้งค่าคุณสมบัติองค์ประกอบโครงสร้าง (/Lang / /E / /T), enum ประเภทโครงสร้างมาตรฐานของตาราง 333 (THPDFStandardStructureType) และโอเวอร์โหลดประเภท AddStructureElementโครงสร้าง 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 สำหรับการสร้างระบบการบีบอัดข้อมูลโดยเฉพาะใหม่
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.
Lib: ซอร์สยูนิตของ HotPDF, โปรเจกต์แพ็กเกจ, ไฟล์วัตถุสแตติก และการรวมระบบไลบรารีของบุคคลภายนอกที่จัดมาให้ด้วยDemo\Delphi: ตัวอย่างโค้ด Delphi สำหรับการสร้างเอกสาร, การวาดรูป, รูปภาพ, การตั้งค่าหน้ากระดาษ, การเข้ารหัส, เวิร์กโฟลว์การรวม/แก้ไข และฟังก์ชันอื่นๆ เพิ่มเติมDemo\C++Builder: ตัวอย่างโค้ด C++Builder ที่สอดคล้องกับโครงสร้างเวิร์กโฟลว์ของตัวอย่างหลักใน DelphiHtmlHelp: ส่วนช่วยเหลือเกี่ยวกับผลิตภัณฑ์และเนื้อหาอ้างอิงสำหรับนักพัฒนา