TPDFlibViewer
เครื่องมือดู
คำอธิบาย
หน้านี้อธิบายตัวควบคุม TPDFlibViewer ใน PDFlibPas ภายใต้หัวข้อ "เครื่องมือดู" ชื่อ API พารามิเตอร์ คลาส ชื่อไฟล์ และค่าลิเทอรัลจะคงเดิมเพื่อให้ตรงกับไลบรารี Delphi
TPDFlibViewer (ยูนิต Lib\PDFlibViewer.pas) เป็นตัวควบคุมการเลื่อน VCL ที่แสดงหน้า PDF ภายในแอปพลิเคชันของคุณ โดยจะเรนเดอร์ผ่านเอนจินเดียวกับที่ TPDFlib ใช้ (GDI+, Cairo หรือ PDFium ตามการตั้งค่า SelectRenderer ในอินสแตนซ์ที่แนบ)
สมาชิกหลัก
Function LoadFromFile(Const FileName, Password: WideString): Integer;
Procedure AttachLibrary(ALib: TPDFlib);
Procedure CloseDocument;
Function PageCount: Integer;
Function GoToPage(NewPage: Integer): Integer;
Function NextPage: Integer;
Function PrevPage: Integer;
Procedure SetZoomPercent(Percent: Double);
Procedure SetZoomMode(Mode: TPDFlibViewerZoomMode);
Procedure SetDisplayMode(Mode: TPDFlibViewerDisplayMode);
Procedure SetCacheLimit(MegaBytes: Integer);
Procedure RefreshPage;
Function LinkActionAtPagePoint(APage: Integer; XPos, YPos: Double; Out Info: TPDFlibActionInfo): Integer;
Function GetTextInRegion(APage: Integer; XPos, YPos, RWidth, RHeight: Double): WideString;
Function CopySelectedText: Integer;
Property SelectedText: WideString;
Property Page: Integer;
Property DisplayMode: TPDFlibViewerDisplayMode;
Property OnPageChange: TPDFlibViewerPageChange;
Property OnLinkClick: TPDFlibViewerLinkClick;หมายเหตุ
LoadFromFile เปิดเอกสารผ่านอินสแตนซ์ TPDFlib ของตัวควบคุมเอง; AttachLibrary แสดงเอกสารที่เลือกของอินสแตนซ์ที่คุณจัดการเอง (ผู้เรียกใช้ยังคงความเป็นเจ้าของ) โหมดการซูมเป็นเปอร์เซ็นต์คงที่ (zmPercent ผ่าน SetZoomPercent), พอดีกับความกว้าง (zmFitWidth, ค่าเริ่มต้น) และพอดีกับหน้า (zmFitPage); โหมดพอดีจะคำนวณใหม่โดยอัตโนมัติเมื่อปรับขนาดตัวควบคุม การนำทางจะจำกัดอยู่ที่ช่วงหน้าของเอกสารและทริกเกอร์ OnPageChange เฉพาะเมื่อหน้าที่มองเห็นเปลี่ยนแปลงจริงๆ SetDisplayMode สลับระหว่างการแสดงผลหน้าเดียว (dmSinglePage, ค่าเริ่มต้น) และการเลื่อนแนวตั้งอย่างต่อเนื่องผ่านเอกสารทั้งหมด (dmContinuous) โดยจะเรนเดอร์เฉพาะหน้าที่มองเห็นในพอร์ตการมองเห็นและหน้าปัจจุบันจะตามตำแหน่งการเลื่อน หน้าที่เรนเดอร์จะถูกเก็บไว้ในแคชบิตแมปที่ใช้งานน้อยที่สุดล่าสุด (ค่าเริ่มต้น 128 MB สามารถปรับได้ด้วย SetCacheLimit) ดังนั้นการเลื่อนกลับจึงไม่ต้องเรนเดอร์ใหม่ ล้อเลื่อนของเมาส์จะเลื่อนในแนวตั้ง; PageUp/PageDown, ปุ่มลูกศร, Home และ End ใช้เพื่อนำทาง หน้าที่อยู่ติดกันจะเรนเดอร์ล่วงหน้าบนเธรดพื้นหลัง ดังนั้นการเปิดหน้าจึงเป็นแบบทันที การคลิกคำอธิบายประกอบลิงก์จะทริกเกอร์ OnLinkClick พร้อมหมายเลขหน้าและข้อมูลสรุปการดำเนินการตามประเภท (TPDFlibActionInfo: ที่อยู่เว็บ, ปลายทางของเอกสาร, การดำเนินการที่มีชื่อ และอื่นๆ); LinkActionAtPagePoint เปิดเผยการทดสอบการชนโดยตรง โดยใช้พิกัดในพื้นที่ผู้ใช้เดียวกับที่ GetAnnotRectEx รายงาน การลากด้วยปุ่มซ้ายของเมาส์จะเลือกข้อความ (การคลิกลิงก์จะเป็นการเปิดใช้งานลิงก์แทน); Ctrl+C หรือ CopySelectedText จะคัดลอกส่วนที่เลือก และ GetTextInRegion จะทำการค้นหาพื้นที่ตามบล็อกแบบเดียวกันโดยทางโปรแกรม ตัวควบคุมคู่หู TPDFlibOutlineViewer จะแสดงต้นไม้บุ๊กมาร์กของเอกสารข้างเครื่องมือดู: เรียกใช้ AttachViewer พร้อมกับอินสแตนซ์เครื่องมือดูและการคลิกที่บุ๊กมาร์กจะเป็นการนำทางไปยังหน้าปลายทาง TPDFlibSearchPanel แนบด้วยวิธีเดียวกัน: RunSearch แสดงรายการผลลัพธ์การค้นหาทุกรายการในเอกสารพร้อมหน้าและข้อความที่ตรงกัน และการคลิกที่ผลลัพธ์จะข้ามไปยังหน้านั้น TPDFlibThumbnailBar ทำหน้าที่เติมเต็มตระกูลด้วยภาพขนาดย่อที่เรนเดอร์แบบขี้เกียจของทุกหน้า; การคลิกที่ภาพขนาดย่อจะเป็นการนำทางไปที่หน้านั้น ติดตั้งแพ็กเกจเวลาออกแบบ Package\PDFlibViewerPkg.dpk เพื่อวางตัวควบคุมจากหน้าพาเลตต์ PDF ของ losLab ในช่วงเวลาออกแบบ