PDF เนทีฟระดับซอร์ส · Delphi และ C++Builder

ความสามารถ PDF ระดับอุตสาหกรรมในแอป RAD Studio ของคุณ โดยไม่พึ่ง runtime ภายนอกแม้แต่นิดเดียว

HotPDF เป็นไลบรารีคอมโพเนนต์ PDF ระดับซอร์สสำหรับ Delphi และ C++Builder: เนทีฟล้วน ไม่มี PDF runtime หรือ DLL ภายนอก รวมการ shape การพิมพ์ระดับสูง, ลายเซ็นตามมาตรฐาน, preflight และการประมวลผลไฟล์หลายกิกะไบต์ มาไว้ในโปรเซส executable เดียวของคุณ

  • ซอร์ส Delphi ล้วน · ไม่มี DLL PDF ภายนอก
  • เอนจิน OpenType GSUB + GPOS แบบครบวงจร
  • ลงนาม PFX/PKCS#12 ในโปรเซสเดียว
  • PAdES B-B / B-T / B-LT / B-LTA
  • ความสอดคล้องสามแกน PDF/A · PDF/X · PDF/UA
  • Direct File API รองรับหลายกิกะไบต์

แปดจุดต่างที่คู่แข่งเลียนแบบได้ยาก

จุดขายทุกข้อด้านล่างเป็นความสามารถที่ส่งมอบแล้ว ไม่ใช่คำสัญญาบน roadmap ทุกข้อมีหลักฐานตรวจสอบได้ — ลงลึกถึง unit ชื่อฟังก์ชัน และชุดทดสอบที่ผ่านแล้ว

เนทีฟระดับซอร์สโค้ด · ไม่ต้องมี PDF runtime ภายนอก

ผนวกเข้าโปรเจกต์เป็นซอร์ส Pascal โดยตรง สร้าง parse และบันทึก PDF ทั้งหมดภายในโปรเซสของคุณเอง ดีบักและควบคุมการ deploy ได้เต็มที่ ส่วน backend C ด้าน imaging และ compression (zlib-ng, Zopfli, libjpeg-turbo, OpenJPEG, jbig2dec) เป็น object file แบบ static link — ไม่มี DLL เอนจิน PDF เพิ่มตอน runtime

เปิดฟีเจอร์ typography ของ OpenType กว่า 20 รายการให้อัตโนมัติระหว่างการเขียนข้อความ

Shaping + การจัดตำแหน่ง OpenType แบบครบวงจร

มาพร้อมเอนจิน substitution GSUB เต็มรูปแบบ (LookupTypes 1–8) และเอนจินจัดตำแหน่ง GPOS เต็มรูปแบบ (ครบทั้ง 9 LookupTypes): ligature, small caps, contextual substitution, pair/contextual kerning, mark-to-base, mark-to-mark, cursive attachment คู่แข่ง Delphi PDF ส่วนใหญ่ยังไม่มีอะไรแถวนี้เลย

มี mapping ย้อนกลับของ ligature 35 รายการ (LAM-ALEF, ตระกูล YEH-HAMZA, พระนาม Allah ฯลฯ)

shaping สคริปต์ซับซ้อนฝั่งผู้ผลิต

shape script ฝั่ง producer มากกว่า 20 แบบ: Arabic (รวม Supplement / Extended-A/B), Syriac, Mongolian, N'Ko, Tibetan, Devanagari และตระกูล Indic, Javanese, Thai/Lao, Hebrew, Khmer, Myanmar และอื่น ๆ คู่กับ pipeline bidi ตาม UAX #9 และ mapping ย้อนกลับ /ToUnicode แบบครบวงจร ทำให้ copy/paste/search ได้ codepoint เดิม

ออกแบบมาสำหรับงานเก็บถาวรระยะยาวและลายเซ็นอิเล็กทรอนิกส์ ตอบโจทย์การเก็บหลักฐานตามกฎหมายได้ทันที

ลงนาม PFX / PKCS#12 ในกระบวนการเดียว · ไม่ต้องพึ่ง dependency ภายนอก

ลงนามด้วย PFX/PKCS#12 ในการเรียกเดียว — THotPDF.SignPDFWithPFX — ไม่ใช้ OpenSSL และไม่ใช้ crypto provider ของแพลตฟอร์ม โซ่ทั้งหมดตั้งแต่ ASN.1, RSA, AES, การ unwrap PKCS#12 ไปจนถึง CMS SignedData (RFC 5652) implement อยู่ในตัว HotPDF ผลลัพธ์ทำซ้ำได้และตรวจสอบย้อนหลังได้

ยูนิต: HPDFASN1 / HPDFRSA / HPDFCrypt / HPDFPFX / HPDFCMS / HPDFAES

PAdES long-term validation · ครบวงจร

รองรับ PAdES B-B / B-T / B-LT / B-LTA — ข้อบังคับหลักของความเป็นตาม eIDAS ของ EU: timestamp ตาม RFC 3161, DSS/VRI dictionary, ลายเซ็น document-timestamp, เงื่อนไข Seed Value และ XAdES-in-PDF คู่แข่งส่วนใหญ่มักหยุดแค่ CMS พื้นฐาน

เอกสาร 2 GB / 1.67 ล้านอ็อบเจกต์: เข้ารหัส AES-256 ประมาณ 14 วินาที อ่านจำนวนหน้าของไฟล์ 1.25 GB เสร็จในระดับมิลลิวินาที

compliance สามแกน + preflight

ล็อก PDF/A-1/-2/-3, PDF/X-1a/-3/-4 และ PDF/UA-1 เป็น compliance profile อิสระพร้อมกันได้ โดยการเรียกที่ไม่เป็นไปตามมาตรฐานจะ raise exception พร้อมข้อมูลวินิจฉัย แทนที่จะปล่อย PDF ที่ไม่ตรงมาตรฐานออกไปเงียบ ๆ Preflight รายงานได้ทั้ง text, JSON, HTML, CSV หรือ XML MRR แบบ deterministic และผสม policy ในตัวเข้ากับ trusted feature และ validation plugin แบบมีขอบเขต

gating เวอร์ชัน PDF รายเมธอด: RequirePDFVersion + StrictVersionLock

Direct File API รองรับหลายกิกะไบต์

ประมวลผลจากไฟล์ไปไฟล์โดยไม่สร้าง object graph ในหน่วยความจำ: DAOpenFileReadOnly, DACopyFile, EncryptFile, DecryptFile รองรับทั้ง xref table แบบคลาสสิก, XRef stream, hybrid reference และไฟล์ที่อัปเดตแบบ incremental ทะลุงานเป็นวินาที

subset tag แบบ deterministic เพื่อผลลัพธ์ที่ทำซ้ำได้ระดับไบต์

การ subset CFF / OpenType-CFF / CID

subset ฟอนต์ TrueType, OpenType-CFF และ CID-keyed CFF (EnableFontSubsetting) โดยคง glyph ID ของข้อความ Type0/Identity-H — เอกสาร CJK ลดจาก CID-keyed CFF ~14 MB เหลือ 500 KB–2 MB ส่วน TTF ภาษาละตินทั่วไปจาก 350 KB เหลือ 10–15 KB

subset tag แบบ deterministic เพื่อผลลัพธ์ที่ reproducible ระดับไบต์

อะแดปเตอร์รายงาน 4 ตัว

FastReport, QuickReport, ReportBuilder และ DevExpress ExpressPrinting (ครอบคลุม cxGrid/cxRichEdit/cxScheduler/cxPivotGrid) บวก adapter สำหรับ DBGrid — ต่อรายงานเดิมของคุณเข้ากับ PDF backend ของ HotPDF ในขั้นตอนเดียว ไม่ต้องเขียนรายงานใหม่

ยูนิต adapter อยู่ที่ Lib/addons/<engine>

หลักฐานจริง ไม่ใช่แค่คำโฆษณา

2 GBประมวลผลต่อเอกสาร ทดสอบจริงที่ 1.67 ล้านอ็อบเจกต์
47ยูนิตซอร์ส Pascal ที่ครอบคลุม
41%ขนาดลดลงจริงหลังบีบอัด object stream
756+หัวข้อ API, ตัวอย่าง, compliance และ workflow
ส่งมอบแล้ว ตรวจสอบได้ DUnitX (Win32 / Win64) กับ GoogleTest (C++Builder) เฝ้าบิลด์ต่อเนื่อง คำ claim ด้าน compliance ผ่านการตรวจด้วย veraPDF; PDFSpecComplianceMatrix.md บันทึกว่าในขอบเขตที่รองรับ “ไม่มีช่องว่างของโค้ดตาม spec PDF ที่ยังไม่ได้ implement”

ใครควรมาดู HotPDF อย่างจริงจัง

เอกสารองค์กร / ลายมือชื่ออิเล็กทรอนิกส์

สัญญา ใบแจ้งหนี้ เอกสารจดหมายเหตุ — ที่ต้องการ PAdES long-term validation, incremental update (BeginIncrementalUpdate) เพื่อรักษา byte range ที่ลงนามไว้แล้ว และความเป็นตาม PDF/A สำหรับการเก็บถาวร

เผยแพร่หลายภาษา / สคริปต์ซับซ้อน

script อย่าง Arabic, Indic, CJK และอื่น ๆ ที่ต้อง shape และวางตำแหน่งถูกต้อง พร้อม copy/paste กลับเป็น codepoint เดิม — HotPDF แก้โจทย์ “แสดงผลถูกและ copy ถูก” เสร็จในรอบเดียว

ไปป์ไลน์ PDF บนเซิร์ฟเวอร์ / งานปริมาณสูง

เข้ารหัส ถอดรหัส นับหน้า และ extract เป็นชุด — Direct File API ประมวลผลไฟล์ขนาดหลายกิกะไบต์ได้โดยไม่ต้องกินทั้งเอกสารในหน่วยความจำ

ระบบรายงานเดิมที่ต้องออกเป็น PDF

ใช้รายงาน FastReport / QuickReport / ReportBuilder / DevExpress อยู่แล้ว — เปลี่ยน adapter รอบเดียวก็สลับมาใช้ backend ของ HotPDF โดยที่ดีไซน์รายงานเดิมไม่เสีย

แอปเดสก์ท็อป / ส่งมอบไฟล์เดียว

ซอฟต์แวร์ที่ต้อง deploy เป็น executable ไฟล์เดียว ไม่แถม DLL PDF ของ third party และดีบัก pipeline ทั้งเส้นทางภายในโปรเซสตัวเอง

Accessibility / PDF/UA

structure tree ของ Tagged PDF, role map, marked content และแอตทริบิวต์การเข้าถึง /Alt//ActualText สำหรับ PDF/UA-1 (ISO 14289-1)

ลงลายมือชื่อด้วยบรรทัดเดียว ไม่ต้องพึ่ง dependency ภายนอก

ไม่ต้องพึ่ง OpenSSL หรือ crypto provider ของแพลตฟอร์ม — การลงนาม PFX/PKCS#12 ทำทั้งหมดภายในโปรเซสของ HotPDF:

var Pdf: THotPDF;
Pdf := THotPDF.Create(nil);
try
  Pdf.FileName := 'contract.pdf';
  Pdf.SignPDFWithPFX('contract.pdf', 'signed.pdf',
                     'cert.pfx', 'pfx-password');
finally
  Pdf.Free;
end;

ต้องการ long-term validation (PAdES B-LTA)? เติม DSS/VRI dictionary และ timestamp ตาม RFC 3161 ส่วน incremental update บนเอกสารที่ลงนามแล้วโดยไม่ทำลาย signed byte range เดิม ใช้ BeginIncrementalUpdate / SaveIncrementalUpdate

ขั้นต่อไป

เริ่มจาก รายการความสามารถทั้งหมด และ ภาพรวมของคอมโพเนนต์ เจาะลึกคลาส (THotPDF, THPDFPage, THPDFPara) จาก สารบัญเอกสาร หรือเปิดดู changelog เพื่อดูความสามารถที่ส่งมอบล่าสุด