TPDFlibViewer
뷰어
설명
PDFlibPas의 "뷰어" 주제 아래에 있는 TPDFlibViewer 컨트롤을 설명합니다. API 이름, 매개변수, 클래스 이름, 파일 이름 및 리터럴은 Delphi 라이브러리에 표시된 대로 정확하게 유지됩니다
TPDFlibViewer (유닛 Lib\PDFlibViewer.pas)는 애플리케이션 내에서 PDF 페이지를 표시하는 VCL 스크롤 컨트롤입니다. 연결된 인스턴스에서 SelectRenderer에 따라 TPDFlib가 사용하는 것과 동일한 엔진(GDI+, Cairo 또는 PDFium)으로 렌더링합니다
주요 멤버
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) 사이를 전환합니다; 후자는 뷰포트에 표시되는 페이지만 렌더링하며 현재 페이지는 스크롤 위치를 따릅니다. 렌더링된 페이지는 최소 최근 사용(LRU) 비트맵 캐시에 유지됩니다 (기본 128 MB, SetCacheLimit으로 조정 가능), 따라서 뒤로 스크롤해도 다시 렌더링하지 않습니다. 마우스 휠은 세로로 스크롤하며; PageUp/PageDown, 방향키, Home 및 End로 탐색합니다. 인접 페이지는 백그라운드 스레드에서 미리 렌더링되어 페이지 전환이 즉시 이루어집니다. 링크 주석을 클릭하면 OnLinkClick이 페이지 번호와 유형화된 액션 요약 (TPDFlibActionInfo: 웹 주소, 문서 목적지, 명명된 액션 등)과 함께 발생합니다; LinkActionAtPagePoint는 GetAnnotRectEx가 보고하는 것과 동일한 사용자 공간 좌표를 사용하여 히트 테스트를 직접 노출합니다. 왼쪽 마우스 버튼으로 드래그하면 텍스트가 선택됩니다 (링크 클릭은 링크를 발생시킵니다); Ctrl+C 또는 CopySelectedText로 선택 내용을 복사하며, GetTextInRegion은 동일한 블록 기반 영역 조회를 프로그래밍 방식으로 수행합니다. 동반 컨트롤 TPDFlibOutlineViewer는 뷰어 옆에 문서의 북마크 트리를 표시합니다: 뷰어 인스턴스와 함께 AttachViewer를 호출하면 북마크를 클릭할 때 해당 목적지 페이지로 이동합니다. TPDFlibSearchPanel도 동일하게 연결됩니다: RunSearch는 문서의 모든 히트를 페이지 및 일치하는 텍스트와 함께 나열하며, 히트를 클릭하면 해당 페이지로 이동합니다. TPDFlibThumbnailBar는 모든 페이지의 지연 렌더링 미니어처를 제공하여 패밀리를 완성합니다; 썸네일을 클릭하면 해당 페이지로 이동합니다. 디자인 타임에 losLab PDF 팔레트 페이지에서 컨트롤을 배치하려면 Package\PDFlibViewerPkg.dpk 디자인 타임 패키지를 설치하십시오