การอ่านคุณสมบัติฟอนต์ PDF ด้วย PDFium Component ใน Delphi
ตรวจสอบฟอนต์ภายใน PDF จาก Delphi ด้วย PDFium Component: อ่านชื่อตระกูลกลีฟ, ชื่อพื้นฐาน, น้ำหนัก, มุมเอียง และข้อมูลว่าฟอนต์ถูกฝังไว้หรือไม่
บล็อกการพัฒนาซอฟต์แวร์ของ losLab
Software Development Blog
ตรวจสอบฟอนต์ภายใน PDF จาก Delphi ด้วย PDFium Component: อ่านชื่อตระกูลกลีฟ, ชื่อพื้นฐาน, น้ำหนัก, มุมเอียง และข้อมูลว่าฟอนต์ถูกฝังไว้หรือไม่
ก่อนที่คุณจะเชื่อถือ PDF ควรตรวจสอบความเสี่ยงต่างๆ เรียนรู้วิธีที่ PDFium อ่าน JavaScript การดำเนินการ และการลงลายมือชื่อสำหรับการตรวจสอบใน Delphi
ประกอบโปรแกรมอ่าน PDF ที่ใช้งานได้จริงใน Delphi ด้วย PDFium Component: เชื่อมต่อ TPdf กับ TPdfView, โหลดและแสดงผลเอกสาร จากนั้นเพิ่มการนำทางแบบแบ่งหน้า, การซูม
สูตร Delphi สำหรับรวมโฟลเดอร์ภาพสแกนเป็น PDF เดียวด้วย PDFium Component: สร้างเอกสาร, เพิ่มหน้าต่อรูปภาพ, ปรับขนาดให้พอดี และบันทึกไฟล์ ทีมประมวลผลการเคลมต้องจั
แปลงหน้า PDF เป็นภาพเรสเตอร์ JPEG ใน Delphi ด้วย PDFium Component: แปลง DPI เป็นขนาดพิกเซล, เรนเดอร์แต่ละหน้าเป็นบิตแมป, จากนั้นเข้ารหัสด้วย TJPEGImage
สร้าง PDF ใหม่ใน Delphi ด้วย PDFium Component: CreateDocument, AddPage, AddText และ CreatePath พร้อมกฎพิกัดและการฝังฟอนต์ที่ต้องระวัง PDFium
สร้างคำอธิบายประกอบไฮไลต์และขีดเส้นใต้ด้วย PDFium ใน Delphi: ลำดับ QuadPoints, เหตุใด FPDFAnnot_SetAttachmentPoints จึงส่งกลับค่าเท็จ และการแก้ไขด้วย Append
วินิจฉัยปัญหาความล้มเหลวของการโหลด pdfium.dll ใน Delphi: แก้ไขความคลาดเคลื่อนของสถาปัตยกรรม 32/64 บิต ERROR_BAD_EXE_FORMAT 193, ตรวจหาไฟล์ DLL ที่เก่าเกินไป
ตรวจหาแบบฟอร์ม XFA ใน Delphi และแยกแพ็กเกจเทมเพลต ข้อมูล และการตั้งค่าเป็น XML ดิบด้วย PDFium Component — การอ่านแพ็กเกจแบบคงที่ไม่จำเป็นต้องใช้ V8 รันไทม์
การนำเข้าและส่งออกข้อมูลฟอร์มและคำอธิบายประกอบ XFDF ใน Delphi ด้วย PDFium Component: การเดินทางไปกลับ ISO 19444-1, คำอธิบายประกอบย่อย 18 ประเภท
แยกรูปภาพที่ฝังใน PDF ใน Delphi ด้วย PDFium Component: อ่าน BitmapCount, ดึงข้อมูลแต่ละ Bitmap[], จัดการความล้มเหลวในการเปิดแบบเงียบ และบันทึกผลลัพธ์เป็น JPEG
แยกข้อความ PDF ใน Delphi ด้วย PDFium Component: เข้าถึงไกลฟ์ดิบผ่าน Character[], โครงสร้างย่อหน้าผ่าน ReadablePageContent และการป้องกันข้อผิดพลาดแบบเงียบด้วย
การครอบไลบรารี C ใน Pascal ช่วยซ่อนมุมแหลมคม เรียนรู้ข้อบกพร่องจริงในตัวเชื่อมโยง PDFium ตั้งแต่คอลแบ็ก cdecl ไปจนถึงการตัดทอนตัวชี้บน FPC Win64 และการแก้ไข
อ่านลายเซ็น PDF ด้วย PDFium Component ใน Delphi และ Lazarus: ตรวจสอบ SubFilter, ByteRange และ CMS จากนั้นตรวจหาระดับมาตรฐาน PAdES B-B ถึง B-LTA
เพิ่มลายเซ็น PAdES ระยะยาวใน Delphi ด้วย PDFium Component: การระบุเวลา RFC 3161, คลังยืนยันความถูกต้อง DSS และ DocTimeStamps สำหรับ B-T, B-LT และ B-LTA
รวมไฟล์ PDF ใน Delphi ด้วย PDFium Component: ImportPages, สตริงช่วงหน้า, ตำแหน่งแทรก, การล้มเหลวแบบเงียบเมื่อไฟล์เสีย และพฤติกรรมฟิลด์ฟอร์ม PDFium Component
จัดหน้า PDF หลายหน้ารวมในแผ่นเดียว จัดเรียงหน้าใหม่ในตัว หรือแยกเฉพาะบางหน้า เรียนรู้ API การจัดหน้าและการย้ายหน้าของ PDFium ใน Delphi และตัวจัดการที่ได้รับกลับ
ทำไมการค้นหาคีย์แบบสตริงย่อยจึงทำให้การแยกวิเคราะห์ PDF dictionary เสียหายใน Delphi: การจับคู่โทเค็นชื่อเต็มตาม ISO 32000-1 และข้อจำกัดของทรัพยากรกับ PDF
ทำให้โปรแกรมดู PDF ใน Delphi ทำงานกับโปรแกรมอ่านหน้าจอได้: การแยกลำดับการอ่านแบบติดแท็ก, ไฮไลต์ TTS ระดับคำ และการสำรองข้อมูลสำหรับ PDF ที่ไม่มีแท็ก
สร้างแถบตรวจสอบคำอธิบายประกอบ PDF ใน Delphi: ดัชนีมาร์กอัปตามหน้า, รับมือกับการคัดค้านสตรีมรูปลักษณ์ และเปลี่ยนสีหรือลบคำอธิบายโดยไม่มีส่วนค้าง
การเรนเดอร์ PDF ที่ใช้เวลานานควรอยู่นอกเธรด UI ดูวิธีที่ไบน์ดิง PDFium รันงานบนเธรดพื้นหลังด้วย futures ที่ยกเลิกได้ใน Delphi การเรนเดอร์หน้ากระดาษใน PDFium
การเรนเดอร์หน้าที่ทำงานช้าไม่ควรทำให้ UI ค้างหรือรันจนจบ ดูวิธีที่การเรนเดอร์แบบก้าวหน้าของ PDFium สามารถยกเลิกได้ผ่าน IFSDK_PAUSE ใน Delphi
Checkbox flatten ออกมาเป็นไม่ติ๊กใน PDFium Component เมื่อ /V ถูกอ่านจาก widget annotation เพราะ /V เป็นของ parent field dictionary ตาม ISO 32000-1
สี่ช่องว่างที่ซ่อนอยู่ระหว่าง Delphi และ FPC/Lazarus ที่ส่งผลกระทบต่อรหัส PDFium: อายุของเรกคอร์ดชั่วคราว, การตรวจสอบขอบเขต, การคาสต์ E2010 TBytes
FPDFText_GetUnicode คืนค่า code point แบบ 32 บิตเต็ม แต่ WideChar ถือได้แค่ 16 บิต ทำให้ PDFium Component ใน Delphi อาจทำให้อีโมจิและอักษรจีน-ญี่ปุ่น-เกาหลีหายากเสียหายได้
PDFium Component ใน Delphi ปฏิเสธที่จะแพตช์ PDF ที่เข้ารหัสไว้ด้วยเครื่องหมาย plaintext หรือลายเซ็น PAdES ตาม ISO 32000-1 7.5.6 เรื่องการอัปเดตแบบ incremental
PDFiumPas resolve chain revision xref ที่กำลังทำงานอยู่และ Adobe Extension Level เพื่อบันทึก PDF ของ Delphi ที่เวอร์ชันแม่นยำตั้งแต่ 1.3 ถึง 1.7 โดยไม่ทำลายความสอดคล้อง
วิธีที่ WaitForIdle กับการตอบกลับของ padSynchronize ทำให้ main thread ของ Delphi ใน PDFium Component ค้าง พร้อมความจุคิว ลำดับการปิดระบบ และขีดจำกัดความเป็นเจ้าของ TPdf
FillChar บนผลลัพธ์ของฟังก์ชัน Delphi หรือ FPC เคลียร์ record ที่มีการจัดการหน่วยความจำเป็นศูนย์โดยไม่ปล่อย string ของมัน ทำให้หน่วยความจำรั่วทุกครั้งที่รูทีนนั้นรันใน loop
ทำไมฟอร์ม PDF ที่กรอกแล้วจึงว่างเปล่าใน Acrobat และวิธีแก้ไข: การตั้งค่า FormFill, การเลื่อนฟิลด์ด้วยแป้นพิมพ์ และ GenerateFormAppearances ใน Delphi
loop การพิมพ์สามชั้นใน PDF viewer ของ Delphi และ FPC ยังคง render ต่อหลังจากคลิก Cancel เพราะ Free Pascal ล็อกขอบเขตของ for loop ไว้ตั้งแต่เข้า loop
พอร์ตโปรแกรมดู PDF ของ Delphi ไปยัง Lazarus และ Free Pascal: หลุมพรางเข้ารหัสสตริง, การสร้างฟอร์มรันไทม์, โหลดไบนารี PDFium และ TTS นอก Windows
เพิ่มโหมดมืดและโหมดการอ่านสำหรับผู้มีสายตาเลือนรางใน Delphi: กลับสีหลังเรนเดอร์, ระดับสีเทาสองแบบ และสีซ้อนทับที่ยังคงมองเห็นได้ชัดเจน ฉบับแปลนี้เจาะประเด็น
วิธีที่ธรรมเนียม row-vector ของ PDF ทำให้ Multiply เป็นการ append และ PreMultiply เป็นการ prepend ใน Delphi ทำไม PreTranslate ถึงต้องใช้ส่วน linear และ pivot helper ประกอบกันอย่างไร
เรียนรู้ว่าทำไม FlateDecode เพียงอย่างเดียวถึงทิ้ง object stream ของ PDF ไว้เป็นแบบผลต่างแทนที่จะเป็นดิบ และ PDFiumPas ใช้การสร้างใหม่แบบ PNG และ TIFF Predictor ใน Delphi อย่างไร
ตรวจสอบและคัดกรอง PDF ขาเข้าใน Delphi ด้วย PDFium Component: ตรวจสอบ Info dictionary และ XMP, ค้นหาการเข้ารหัส, JavaScript, XFA และคัดแยกไฟล์เสี่ยง
สร้างไฟล์ PDF/A ที่ตรวจผ่าน veraPDF ใน Delphi ด้วย PDFium Component: SaveAsPdfA, การฝัง XMP และ ICC OutputIntent, และระดับ a/b/u พร้อมจุดที่มักพลาด
สร้างตัวตรวจสอบ PDF/A ก่อนส่งใน Delphi ด้วย PDFium Component: สแกนโทเคนตรวจพบปัญหาการตรวจสอบ 29 รายการ, แยกการตรวจตาม part, รองรับ object stream, โดยไม่ต้อง
ตรวจ tag tree แบบสดด้วย PDFium VCL เพื่อจับข้อผิดพลาด PDF/UA ที่การสแกนระดับไบต์มองไม่เห็น เช่น Figure Alt, Formula text และ Note ID ที่ไม่ซ้ำ
สร้างและตรวจสอบไฟล์พิมพ์ข้อมูลแปรผัน PDF/VT-1 ใน Delphi ด้วย PDFium VCL พร้อมโครงสร้าง DPart, การจับคู่ PDF/X-4 ที่บังคับ, และจุดที่ ISO 16612-2 เข้มกว่าที่เห็น
ทำ preflight PDF/A และ PDF/UA อัตโนมัติใน Delphi ด้วย PDFium Component: ลูป batch รหัส exit รายงาน JSON และ HTML และเหตุใด findings ว่างเปล่าไม่ใช่การผ่าน
ซูมและเลื่อนราบรื่นในโปรแกรมดู PDF Delphi ด้วย PDFium: คีย์แคชที่ถูกต้อง, ความเป็นเจ้าของบิตแมป, เรนเดอร์ทีละส่วน และการจัดการหน่วยความจำ DPI สูง
render lock ของ PDFiumPas ปกป้องการ rasterize จาก UnloadPage หรือ ReloadPage พร้อมกัน แต่หกการเรียกของ TPdf และ TPdfView ข้ามมันไปจนถึง v2.26.0
เพิ่มความปลอดภัยให้ช่องแสดงตัวอย่าง PDF ใน Delphi: ปิด JavaScript ขณะโหลด, ตรวจจับคลิกลิงก์, กรองไฟล์แนบ และอ่านสิทธิ์การเข้ารหัส ฉบับแปลนี้เจาะประเด็น Secure
การจัดวางข้อความ PDF จำเป็นต้องทราบความกว้างของสตริงก่อนที่จะวาด ดูวิธีการที่ PDFium binding วัดขนาดข้อความโดยไม่ต้องแตะหน้ากระดาษ สำหรับการตัดคำใน Delphi
PDFium เก็บ handle FPDF_TEXTPAGE ที่ cache ไว้ใน Delphi หลังการแก้ไขด้วย AddText, SetText หรือ AddPath มันจะค้างเว้นแต่จะโหลดใหม่ก่อนการ query ข้อความครั้งถัดไป
แก้ thumbnail PDF ที่หมุนซ้ำใน Delphi ด้วย PDFium ทำไมพารามิเตอร์การหมุนตอน render ถึงเป็นแบบบวกสะสม และ fit-zoom สลับความกว้างกับความสูงสำหรับหน้า 90/270 อย่างไร
วิธีที่ PDFium Component แยก form field index ออกจาก annotation index ใน Delphi ครอบคลุมการกรอง Widget subtype การ map ที่ขอบ native และการแก้ปัญหา focus ของฟอร์มแบบ headless
ซิงค์ text-to-speech กับไฮไลต์คำบนหน้าใน Delphi โดยใช้ word boxes ของ PDFium: TrackReadingWordAt ลำดับการเรนเดอร์ auto-scroll และปัญหา Unicode
PDFium Component เขียนการแก้ไขฟิลด์ XFA เข้า buffer ในหน่วยความจำเท่านั้น ทำให้แอป Delphi เสียค่าไปตอนบันทึก: AcroForm เก็บมันไว้ได้ แต่ XFA ไม่
พิมพ์ PDF จาก Delphi ด้วย PDFium Component: แสดงผลหน้าด้วย RenderPage และ rePrinting, ส่งบิตแมปไป TPrinter ผ่าน StretchDIBits, ปรับให้พอดีกระดาษ, จัดการการหมุน
วาดลายน้ำหรือโลโก้เพียงครั้งเดียว และวางไว้ในทุกหน้ากระดาษ ดูว่า Form XObjects ของ PDFium สร้างตรายางประทับหน้าที่นำกลับมาใช้ใหม่ได้อย่างไรใน Delphi
การรัน AcroForm JavaScript ใน Delphi ด้วย PDFium Component: ทำไมการคำนวณฟิลด์จึงเงียบหาย, ข้อกำหนดของ V8 DLL และเหตุการณ์ของโฮสต์ที่ยับยั้งการกระทำ PDF
เพิ่มลายเซ็นดิจิทัล PAdES B-B ในไฟล์ PDF ใน Delphi ด้วย PDFium Component: การสร้าง SHA-256, CMS ด้วยตัวเอง และระบบ Windows CNG สำหรับการลงลายเซ็นระดับไบต์
วิธีแยก PDF ตามหน้า ช่วง หรือบุ๊กมาร์กด้วย PDFium Component ใน Delphi: TPdf.ImportPages, CreateDocument, การตรวจสอบผลลัพธ์ของ SaveAs, และการรีเซ็ตค่า Active
PDF ขนาดหลายกิกะไบต์ไม่จำเป็นต้องโหลดทั้งหมด ดูว่าอแดปเตอร์ TStream ป้อนข้อมูลให้กับคอลแบ็ก FPDF_FILEACCESS แบบตามความต้องการของ PDFium อย่างไร และทำไมข้อจำกัด
สร้างโปรแกรมดู PDF แบบคู่ขนานใน Delphi ด้วย PDFium Component: ใช้พาเนลอิสระแบบสองหรือสามจอ, ระบบการซูมต่อมุมมองผ่าน TPdfView.Zoom, และการเลื่อนหน้าแบบซิงโครไนซ์
PDF สมัยใหม่ซ่อนโครงสร้างไว้ในอ็อบเจ็กต์ที่ถูกบีบอัดและ xref streams มาดูกันว่าเครื่องมือตรวจสอบของ Delphi ทำการขยาย ObjStm และอ่าน xref-stream trailers ด้วย
ตรวจสอบความถูกต้องของไฟล์ PDF/X ที่พร้อมพิมพ์ใน Delphi: ฟังก์ชัน ValidatePdfX ของคอมโพเนนต์ PDFium รันการตรวจสอบ ISO 15930 สำหรับ TrimBox, Trapped, OPI, LZW
ทำไมเครื่องมือตรวจสอบ PDF จึงปฏิเสธลายเซ็น PAdES: ฟิลด์ ByteRange เป็นศูนย์, ไม่มีคำนำหน้าวันที่ D:, และการสูญหายของ /Encrypt หลังการอัปเดตส่วนเพิ่ม พร้อม
วิธีที่ PDFium Component จัดการไฟล์แนบ PDF ใน Delphi: AttachmentCount, Attachment, CreateAttachment, DeleteAttachment, การทำความสะอาดพาธ และการบันทึกแบบแทนที่