핵심 컴포넌트
- TPdf - PDF 문서 열기, 탐색, 텍스트 추출 및 편집을 위한 메인 PDF 문서 처리 컴포넌트
- TPdfView - PDF 페이지를 표시하고 상호작용하기 위한 시각적 컴포넌트
- TPdfReadingSession - 호스트 TTS 엔진과 TPdfView 단어 추적을 위한 read-aloud 오케스트레이션 컴포넌트
- TPdfThumbnailView - 페이지 탐색을 위한 스크롤 가능한 썸네일 사이드 패널
- 네이티브 LCL 플랫폼 - Linux Qt6와 macOS Cocoa에서 네이티브 PDFium, 올바른 LP64 바인딩, 플랫폼 글꼴 및 파일 서비스, 실제 비트맵 채널 레이아웃을 사용합니다. 검증된 Free Pascal/LCL 구성과 기능 범위는 네이티브 설치를 참조하세요
문서 작업
- 문서 로딩 -
LoadCustomDocument를 통해 디스크, 메모리 스트림, 완전한 바이트 배열, 0 기반Index/Count바이트 배열 윈도우 또는 온디맨드 TStream 어댑터에서 PDF 파일을 로드합니다. compatible, strict, recovery 정책은 PDFium의 의미적 파서를 대체하지 않으면서 제한된 classic, hybrid, xref-stream 진단을 추가합니다- 검증된 복구 출력 -
SaveAsRepaired는 완전한 단일 리비전 복사본을 만들고, 바이트를 반환하거나 파일을 원자적으로 교체하기 전에 xref와 페이지 구조를 독립적인 strict 로드로 검증합니다- 타입화된 객체 그래프 -
ExportObjectGraph는 direct 객체와 object-stream 값을 위한 제한된 타입화 JSON을 출력하고,SaveAsObjectGraphPatched는 검증된 최상위 사전 변경을 단계적 증분 리비전으로 적용한 뒤 전달 전에 결과를 strict 로드로 검증합니다- 암호 보호 - 암호로 보호된 PDF 문서를 열고 인증된 세션의 유효
UserPermissions를 보고합니다- 문서 생성 -
CreateDocument,AddPage,AddText,AddImage,AddPicture,AddJpegImage,CreatePath로 처음부터 새로운 PDF 문서를 만듭니다- 문서 저장 - 다양한 옵션(증분, 보안 제거)과 PDF 1.0부터 PDF 1.7까지의 명시적 PDF 대상 버전으로 수정된 문서를 저장합니다
- PDF/A-1b 출력 -
SaveAsPdfA/SaveAsPdfAToStream은 XMP 메타데이터 스트림, sRGB ICC OutputIntent 및 업데이트된 Catalog를 주입하는 증분 업데이트로 기본 저장을 사후 처리하여 결과가 PDF/A-1b를 준수하도록 합니다. 사용자 지정 ICC 프로필은TPdfASaveOptions.IccProfileData를 통해 지원됩니다- PDF/A 검증 -
ValidatePdfA및 읽기 전용PdfAConformance속성은 열린 문서에서 XMPpdfaid마커, 임베디드 ICC를 갖춘 OutputIntent, 암호화 존재 여부를 스캔하고 준수 수준(pac1a,pac1b,pac2b,pac3b,pacNone또는pacUnknown)과 발견된 각 문제를 설명하는TPdfAValidationIssue항목 목록을 보고합니다- PDF 버전 호환성 검증기 - SaveAs가 PDF 1.0부터 PDF 1.7을 대상으로 할 때 작성기는 선택한 대상 버전 이후에 도입된 사전 항목, 필터, 주석 하위 유형, 액션 유형, 글꼴, 색 공간 또는 암호화 매개변수를 거부합니다(예: JBIG2Decode, MarkInfo, OutputIntents, AES / AES-256, Polygon / Caret / Watermark / Redact 주석, JavaScript / Trans / SetState 액션)
- 스트림 압축 - 자동 FlateDecode 압축으로 저장 시 모든 PDF 스트림이 최적으로 압축되도록 보장하며, 디버그 파이프라인에서는
Compressed := False로 해제할 수 있습니다- 확장 가능한 배치 병합 -
MergeFiles는 소스별 페이지 범위와 암호를 지정해 파일 기반 소스를 가져오고, 한 번에 최대 하나의 소스 문서만 열어 두며, 진행률, 취소, 중지 또는 건너뛰기 처리, 롤백, 폼, 개요, 리소스, 뷰어 환경설정 정책을 노출합니다- 페이지 부분 가져오기 -
ImportPagesByIndex는 소스 문서에서 명시적 0 기반 인덱스 배열을 복사하며, InsertAt = 0은 1페이지 앞에 삽입하고 InsertAt = PageCount는 추가합니다. 빈 인덱스 배열을 전달하면 모든 소스 페이지를 가져옵니다- N-up 구성 -
ImportNPagesToOne은 PDF 사용자 단위(1단위 = 1/72인치)로 크기가 지정된 소스 문서의 페이지를 NumX×NumY 합성한 페이지를 가진 새로운TPdf를 반환합니다- 페이지 재정렬 -
MovePages는 0 기반 인덱스 배열과 첫 번째로 이동된 페이지의 대상 인덱스를 사용하여 페이지를 제자리에서 재정렬합니다- 페이지 계획 검증 -
ValidatePagePlan은 삭제, 이동, 삽입, 분할, 병합 매핑을 미리 보고, 탐색, 레이블, 폼, 구조 트리, 가져온 기능, 서명에 미치는 영향을 점검하며, 매달린 대상을 남기거나 명시적 승인 없이 서명된 콘텐츠를 수정하는 계획은 거부합니다- 2단계 레이아웃 생성 -
GenerateLayout은 원시 페이지 객체를 원자적으로 출력하기 전에 워드랩된 텍스트, 구분선, 이미지, 페이지 XObject, 머리글, 바닥글을 측정하고 페이지를 나누며, 안정적인{page}와{pages}플레이스홀더가 측정된 페이지 수를 유지합니다- 디스크 기반 페이징 레이아웃 -
GeneratePagedLayout은 호출자가 선택한 시크 가능 스토리지에 명령을 기록하고, 각 페이지를 컴팩트한 비연속 세그먼트에서 복원하며, LRU 캐시로 보존되는 페이지 배열을 제한하고, PDFium 페이지를 순차적으로 추가합니다- 페이지에 걸친 테이블 레이아웃 -
TPdfLayoutTable은 고정, 비율, 콘텐츠 크기 컬럼을 한 번에 해결하고, 연속된 헤더 행을 반복하고, 대상이 되는 본문 행을 분할하고, 행 병합 그룹을 그대로 유지하며, 캡션, 셀 테두리, 링크와 페이지에 걸친 하나의 연속적인 Table / TR / TH / TD 의미 계층을 출력합니다- 캐시된 레이아웃 노드 - 레이아웃 플랜은 제약, 콘텐츠, 폰트, 스타일, 소스, 측정기 식별자 전체를 기준으로 캐시되고,
TPdfLayoutCachedNode는 반복되는 템플릿을 지연 생성하며 각 배치를 재사용 가능한 하나의 네이티브 Form XObject에서 출력합니다- 자동 Tagged PDF 레이아웃 -
GenerateTaggedLayout은 동일한 측정된 레이아웃 플랜에서 네이티브 MCID, artifact, Document 구조 트리, ParentTree와 IDTree 매핑, 제목, 목록, 대체 텍스트가 있는 그림, 테이블 헤더, OBJR 소유권을 갖춘 Link 주석을 출력합니다. 항목 제약은 블록과 제목을 함께 유지하고, widow / orphan 최소 기준을 강제하며, 물리적 페이지 나눔을 강제합니다- Marked-content 편집 -
PageObjectMarks,AddPageObjectMark,SetPageObjectMarkParam,RemovePageObjectMarkParam,RemovePageObjectMark는 안정적인 네이티브 마크를 통해 BDC 속성 목록을 검사하고 변경합니다- Bidi 및 복합 스크립트 텍스트 -
AddShapedText는 방향성 런, 문맥적 자형, 합자, 전진량, 오프셋을 위치가 지정된 CID Type 2 글리프로 변환하고, 생성된 ToUnicode 매핑과ActualText가 논리적 Unicode 의미를 보존합니다- CID Type 2 폰트 작성 -
AddCidType2Text는 호출자가 제공한 TrueType 데이터를 명시적인 CID-to-GID 및 ToUnicode 매핑, 안전한 선택적 서브셋팅, 제어된 전체 폰트 폴백, 추출 무결성 검사와 함께 임베드합니다- 통합 캐시 바이트 예산 -
TPdf.CacheBudgetBytes는 파싱된 페이지 씬, 썸네일, 구조 데이터, 텍스트 스냅샷, 페이지 객체 스냅샷을 하나의 측정 가능한 전역 LRU로 조율하고,TPdfTileCache와 시스템 폰트 캐시는 호출자가 선택한 governor에 합류할 수 있습니다- 호스트 시스템 폰트 공급자 -
ConfigureSystemFontProvider는 네이티브 missing-font 요청을 바이트 검증, 제한된 LRU 캐싱, 선택적 공유 바이트 거버넌스, 네이티브 폴백, 테이블 추출, 수명 주기 통계를 갖춘 애플리케이션 공급자로 라우팅합니다- Form XObject 페이지 재사용 -
CreateXObjectFromPage는 다른 문서의 모든 페이지에서 재사용 가능한TPdfXObject핸들을 만듭니다.InsertFormObjectFromXObject는 래핑된 페이지의 사본 하나를 현재 페이지에 삽입합니다. 워터마크, 템플릿 오버레이 및 "한 페이지를 여러 페이지에 스탬프" 워크플로에 이상적입니다. 대상 페이지 객체는FPDFPageObj_SetMatrix및TPdfMatrix헬퍼를 통해 위치 지정, 크기 조정 및 회전할 수 있습니다- 페이지 관리 - 개별 페이지 추가, 삭제 및 조작.
AddPage(0, ...)는 첫 번째 페이지를 삽입하고 즉시 활성화합니다- 페이지 박스 - 현재 페이지에서 MediaBox, CropBox, BleedBox, TrimBox 및 ArtBox를 읽고 씁니다
- Catalog 언어 - Catalog /Lang 항목에 저장된 문서 언어를 읽고 씁니다
- Trailer File ID - 영구 및 변경 Trailer /ID 항목을 바이너리 바이트로 읽습니다
- 문서 JavaScript 액션 - 문서 수준 JavaScript 이름 트리 액션 이름 및 스크립트를 열거합니다
- Tagged PDF 구조 트리 - Tagged PDF 페이지의 논리적 구조 요소, 접근성 텍스트, 언어, marked-content ID 및 계층을 검사합니다
- 뷰어 환경설정 - 문서의 뷰어 환경설정 사전에서
PrintCopies,PrintPageRanges,PrintScaling및PrintPaperHandling을 읽습니다. 저장된 PDF는 기본적으로 첫 페이지 열기 액션으로 Fit Height를 사용합니다
텍스트 작업
- 텍스트 추출 -
Text,TextInRectangle, 인덱스된Character,CharacterRectangle,CharacterOrigin속성을 통해 문자 수준의 정밀도로 PDF 페이지에서 텍스트를 추출합니다- 구조화 텍스트 모델 -
GetStructuredText는 네이티브 문자 기하, 폰트 메타데이터, 텍스트 객체 식별, Tagged PDF 의미론, 물리 레이아웃 폴백 순서로 제한된 페이지, 블록, 줄, 스타일 스팬 계층을 만듭니다- 테이블 탐지 및 추출 -
ExtractTables와ExtractDocumentTables는 네이티브 단어 박스를 변환된 경로 지선과 결합하여 테두리가 있거나 공백 정렬된 테이블을 탐지하고, 병합된 스팬을 보존하고, 신뢰도를 점수화하고, 페이지 연속을 표시하고, CSV나 JSON을 출력합니다- 의미적 리플로우와 반응형 HTML -
BuildReflowDocument는 Tagged PDF 의미론, 물리 레이아웃 추론, 테이블 추출을 결합해 제한되고 재사용 가능한 노드 트리를 만들며, 그 안전한 HTML 출력은 제목, 문단, 목록, 그림, 페이지 섹션, 테이블 스팬을 보존합니다- 검색 가능한 OCR 레이어 -
ApplyOcrSearchLayer는 제한된 상하향 BGRA 페이지 렌더를 애플리케이션 공급자에 전달하고, 신뢰도 쿼드를 네이티브 페이지 기하로 매핑하며, 스캔 이미지를 다시 인코딩하지 않고 보이지 않는 검색 가능 텍스트를 추가합니다- 문장 단위 읽기 단위 - TPdf.ReadingUnits, TPdf.DocumentReadingUnits, TPdfView.ReadingUnits, BuildReadingUnits 는 동기화된 TTS 듣기 읽기를 위한 문장 크기 TPdfReadingUnit 레코드를 제공합니다
- 시각 줄 선택 -
TPdfView.SelectLineAt은 1 기반 페이지와 0 기반 문자 인덱스가 속한 시각 텍스트 줄을, 트리플 클릭 선택과Shift+Home또는Shift+End가 사용하는 것과 동일한 줄 경계 모델로 선택합니다- 단어 단위 읽기 강조 표시 -
TPdf.PageWordBoxes,TPdfView.PageWordBoxes,BuildWordBoxes,WordBoxIndexAtCharIndex,TPdfView.SelectWordBox,TPdfView.SelectWordSpan,TPdfView.TrackReadingWordAt,TPdfView.SetReadingWord,TPdfView.ClearReadingWord,ReadingWordColor,ReadingWordFollow페이지 문자 오프셋을 이를 포함하는 TPdfWordBox에 매핑하고 강조 표시한 뒤 단어 인덱스를 반환합니다; TPdfView에서 TPdfWordBox를 현재 읽는 단어로 강조 표시합니다; TPdfView의 현재 단어 단위 읽기 커서 오버레이를 지웁니다; 현재 단어 단위 읽기 커서에 사용하는 오버레이 색상을 제어합니다; 읽기 추적 중 TPdfView가 현재 읽는 단어를 화면 안으로 스크롤할지 제어합니다- 읽기 세션 오케스트레이션 -
TPdfReadingSession,TPdfSpokenText,SpokenTextAppend,BuildSpokenTextFromWords,SpokenToPageChar,EstimateSpokenWordIndex는 호스트 TTS 엔진, spoken chunk, word 위치 콜백, 추정 pacing, pause / resume 처리, TPdfView 단어 커서 업데이트를 조율합니다- 텍스트 검색 -
FindFirst,FindNext,FindPrevious로 대소문자 구분, 전체 단어, 연속 검색 옵션을 사용해 텍스트를 찾거나,TPdf.CreateDocumentSearch로 전체 문서에 걸쳐 순방향 및 역방향 일치 항목을 스트리밍하며, 페이지 공간 결과 사각형, 협력적 취소, 일정한 페이지 핸들 메모리를 제공합니다- 검색 하이라이트 오버레이 -
TPdfView.HighlightSearchText는 현재 페이지의 일치 오버레이를 교체하고,AddSearchTextHighlight는 추가 검색어의 고유한 범위를 덧붙여 여러 쿼리를 함께 표시할 수 있게 합니다.ClearHighlight는 전체 집합을 제거하며, 문자 범위는 페이지별이므로 다른 페이지로 이동하면 자동으로 지워집니다.HighlightColor의 기본값은clYellow이며 애플리케이션이 오버레이를 테마 지정할 수 있도록 게시됩니다- 문자 속성 -
CharacterAngle,CharacterFontSize,CharacterFontWeight,CharacterGenerated,CharacterIsHyphen,CharacterMapError인덱스 속성으로 개별 문자의 글꼴 크기, 굵기, 각도 및 위치에 접근합니다- 유럽 문자 지원 -
AddText는 텍스트 객체를 만들기 전에 일치하는 시스템 TrueType 글꼴을 자동으로 로드하고 캐시하므로 PDFium의 내장 표준 글꼴이 표현할 수 없는 악센트 부호가 있는 체코어, 프랑스어, 독일어, 스페인어, 포르투갈어, 폴란드어 및 터키어 문자가 코드 변경 없이 올바르게 렌더링됩니다- 텍스트 추가 - 사용자 지정 글꼴, 색상, 투명도 및 회전으로 PDF 페이지에 새 텍스트를 추가합니다
- 텍스트 객체 위치 지정 -
SetTextPositions및TPdfSingleArray를 통해 기존 텍스트 객체에 대한 문자별 위치를 설정합니다- 글꼴 정보 - 페이지 객체별로 패밀리 이름, 임베딩 상태, 이탤릭 각도, 어센트 / 디센트 및 원시 글꼴 데이터를 포함한 글꼴 속성을 검색합니다
주석 지원
- 주석 유형 - 텍스트, 링크, 강조 표시, 밑줄, 취소선 및 기타 많은 주석 유형 지원
- 주석 생성 - 프로그래밍 방식으로 새 주석 생성
- 주석 편집 - 색상, 투명도 및 내용을 포함한 기존 주석 속성 수정
- 링크 주석 - 액션 지원이 포함된 내부 및 외부 링크 처리
폼 지원
- 음성 폼 입력 접근자 - TPdf 및 TPdfView 의 FocusedFormFieldValue, FocusedFormFieldName, FocusedFormFieldDetails 는 키보드 또는 음성 기반 폼 입력을 위해 현재 논리 폼 필드의 값, 이름, TPdfFormFieldInfo 를 제공합니다
- 폼 유형 - AcroForm 및 XFA 폼 지원
- 폼 채우기 - JavaScript 지원이 포함된 대화형 폼 채우기
- V8 DLL 선택 - 일치하는
DLLs\Win32또는DLLs\Win64폴더의pdfium.v8.dll을 사용하려면 로딩 전에EnableV8Engine을 설정하고V8FeaturesAvailable,XfaBStrHelpersAvailable,GetRecommendedV8Flags를 통해 V8/XFA 헬퍼 가용성을 쿼리합니다- 필드 접근 - 인덱스 또는 위치별로 폼 필드 값을 읽고 씁니다
- 필드 정보 - 필드 유형, 플래그, 이름 및 기타 속성에 접근
- 필드 플래그 -
SetFormFieldFlags/SetFormFieldFlagsAt를 통해 인덱스 또는 위치별로 AcroForm 필드 플래그를 업데이트하며, 읽기 전용, 필수, 암호 및 다중 선택 플래그를 포함합니다- 폼 평탄화 -
GenerateFormAppearances는 모든 페이지의 모든 폼 위젯에 대한 /AP 외관 스트림을 재생성하고,FlattenPage/FlattenAllPages는 주석과 폼 필드를 정적 페이지 콘텐츠로 굽습니다(편집 불가)- 폼 위젯 텍스트 선택, 클립보드 및 실행 취소 / 다시 실행 - 포커스가 있는 AcroForm 위젯에서 뷰는
GetSelectedFormText,CopySelectedFormTextToClipboard,CutSelectedFormTextToClipboard,PasteFormTextFromClipboard,SelectAllFormText,FormUndo/FormRedo/FormCanUndo/FormCanRedo를 제공합니다. 편집기는Ctrl+A,Ctrl+C,Ctrl+Insert,Ctrl+X,Shift+Delete,Ctrl+V,Shift+Insert를 처리하며, 잘라내기와 붙여넣기는 읽기 전용 필드나 폼 입력 또는 수정 권한이 없는 세션을 거부합니다- 문서 편집 트랜잭션 및 실행 취소 / 다시 실행 -
BeginEditTransaction,CommitEditTransaction,RollbackEditTransaction은 임의의 페이지, 객체, 주석, 첨부 파일, 메타데이터 편집을 묶고,UndoEdit,RedoEdit, 이식 가능한 편집 저널은 제한된 SHA-256 검증 양방향 델타를 사용합니다- 크래시 복구 및 커밋 기반 자동 저장 - 체크섬이 적용된 복구 패키지는 소스와 복구된 지문을 제한된 편집 저널에 묶고, 원자적 자동 저장은 commit, 실행 취소, 다시 실행 이후 소스 PDF를 다시 쓰지 않고 명시적인 사이드카를 갱신합니다
이미지 작업
- 이미지 추출 - 인덱스된
Bitmap속성으로 PDF 페이지에서 비트맵을 추출하며,BitmapCount를 반복하여 모든 이미지를 디스크에 저장합니다- JPEG 삽입 -
AddJpegImage는 원시 JPEG 바이트의 TStream을 받아 재인코딩 없이 이미지를 /DCTDecode XObject로 임베드합니다- Picture 지원 -
AddPicture는 등록된 VCL/LCL 그래픽 클래스를 통해 자동 형식 변환이 포함된TPicture객체를 받습니다- 직접 이미지 삽입 -
AddImage(FileName)는 VCL 또는 LCL 그래픽 유닛(BMP, PngImage를 통한 PNG, JPG 등)에 등록된 모든 형식을 인식하고 AddPicture 파이프라인을 공유합니다.AddImage(TBitmap)는 TPicture 중간 단계를 건너뛰어, 렌더링 또는 일괄 생성 작업에서 이미 TBitmap을 보유한 호출자에게 적합합니다- 이미지 ICC 프로필 - 이미지 페이지 객체는 존재할 때 임베디드 ICC 프로필 데이터를 노출합니다(
FPDFImageObj_GetIccProfileDataDecoded바인딩)- 썸네일 생성 -
Thumbnail속성으로 현재 페이지 썸네일 비트맵을 만들거나TPdf.RenderPageThumbnail으로PageNumber를 바꾸지 않고 1 기반 페이지를 렌더링하며, 항목과 픽셀 바이트 상한으로 제한되는 리비전 인식 LRU를 사용합니다- 파싱된 페이지 씬 캐시 -
TPdf.RenderPageByIndex,RenderPageThumbnail,ExtractThumbnail은 제한된 LRU 캐시에 저장된 PDFium 페이지 씬을 재사용하고, 페이지 편집, 페이지 트리 변경, 폼 상태, 문서 해제는 오래된 항목을 무효화합니다
헬퍼 유닛
- 비동기 인프라 -
FPdfAsync는 구조화된 협력적 취소를 제거 가능한 콜백과 마감 시간 소스와 결합하고, 구성 가능한TPdfFuture<T>결과 디스패치와, 고정 워커, 네 개의 FIFO 우선순위 레인, 제한된 큐 백프레셔, 작업별 핸들, 타이밍 진단, 집계 통계, 우아한 종료를 갖춘 재사용 가능한TPdfAsyncExecutor를 제공합니다- 스트림 어댑터 -
TPdfStreamAdapter는 PascalTStream을 PDFium의FPDF_FILEACCESS콜백에 연결하여LoadCustomDocument가 전체 PDF를 메모리에 버퍼링하는 대신 필요에 따라 블록을 읽도록 합니다- 점진적 다운로드 세션 -
TPdfProgressiveDocument는 PDFium의 네이티브 가용성 공급자를 유지하고, 문서, 폼, 페이지 힌트를TPdfRangeRequestScheduler에 공급하며, 누락된 범위를 병합하고, 페이지에 중요한 바이트를 위해 백그라운드 전송을 선점하고, 요청 크기와 재시도를 제한하고, 중복 전송을 취소하고, 전체 PDF가 도착하기 전에 선형화된 페이지를 엽니다- 제한된 스트림 검사 -
TPdfStreamInspector는 물리적 스트림 객체를 점검하고, 안전한 원시 윈도우와 순서화된 일반 필터 디코딩을 노출하며, 이미지와 첨부 파일의 네이티브 접근 경로를 보고하고, 소스, 출력, 사전, 개수, 확장 비율 예산을 강제합니다- 콘텐츠 스트림 정규화 -
TPdf.SaveAsNormalizedContent는 논리적 페이지 콘텐츠를 토큰화하고, 주석을 제거하고, 상태와 컨테이너 균형을 검증하며, 지원되지 않는 연산자와 인라인 이미지 데이터를 보존하고, 안전한/Contents배열을 병합합니다- Fast Web View 출력 -
TPdf.SaveAsLinearized는 첫 페이지 객체를 이후 페이지보다 앞세워 기록하고, 두 개의 교차 참조 섹션을 출력하며, 페이지 오프셋과 공유 객체 힌트 테이블을 만들어 HTTP Range 클라이언트가 전체 파일을 다운로드하지 않고도 요청한 페이지를 열 수 있게 합니다- 객체 스트림 출력 -
TPdf.SaveAsObjectStream은 대상 값을 제한된 PDF 1.5+ ObjStm 그룹으로 패킹하고, 열기에 중요한 객체는 direct로 유지하며, 랜덤 액세스를 희생하지 않으면서 더 작은 파일을 위한 적응형 type-2 xref 항목을 기록합니다- 변경 객체 증분 저장 -
TPdf.BeginIncrementalSave와CommitIncrementalSave는 안정적인 의미 스냅샷을 비교하고, 이전의 암호화 여부와 관계없는 모든 바이트를 보존하며, R5, R6, R7 보안 매개변수를 상속하고, 변경된 객체만 덧붙이고, 각 결과를 strict 모드로 다시 열고, 파일 커밋에 내구성 있는 사이드 파일과 원자적 교체를 사용합니다- 선택적 콘텐츠 제어 -
TPdf.InspectOptionalContent는 레이어, 구성, 사용 메타데이터, 라디오 그룹, 순서, 잠금, OCMD 정책, 가시성 표현식을 점검하고,SaveAsOptionalContentConfigured는 PDFium이 네이티브 렌더링 컨텍스트를 통해 적용하는 결정론적 레이어 상태를 기록합니다- 제한된 작업 스토리지 -
TPdfRandomAccessStore는 작은 데이터를 메모리에 보관하고, 호출자가 지정한 상한에서 개인 delete-on-close 임시 파일로 한 번 넘치며(스필), 공유 커서를 바꾸지 않는 위치 지정 읽기를 제공합니다.TPdf.SaveMemoryLimit은 핵심 저장 후처리에 같은 정책을 적용하고, 기본 open-action과 page-label Catalog 업데이트는 고정 크기 윈도우와 스파스 지연 객체 인덱스를 사용합니다- 네이티브 버전 조회 -
TPdf.PdfVersion은 헤더와 Catalog 의미에FPDF_GetFileVersion파서 상태를 재사용하고, 잘못된 Catalog 다운그레이드를 거부하기 위해 8바이트 헤더 가드를 한 번 수행합니다- 행렬 지오메트리 툴킷 -
FPdfMatrix는 PDFium의FS_MATRIX를 후행 및 선행 합성, 피벗 인식 변환, stretch / contain / cover 사각형 맞춤, 스케일을 고려한 가역성 진단, 분해, 비변형 역행렬 헬퍼, 벡터와 사분면 매핑, 단일 할당 점 또는 사각형 배치, 제자리 변형, 단일 패스 변환 바운드로 래핑합니다- 취소 가능한 점진적 렌더링 -
TPdf.RenderPageProgressive는 PDFium의FPDF_RenderPageBitmap_Start+RenderPage_Continue루프를 구동하고IFSDK_PAUSE콜백을 통해 반복 사이에IPdfCancellationToken을 폴링하여, 장기 고해상도 렌더링이 완료까지 차단되는 대신 페이지 중간에 중단할 수 있습니다.prsDone,prsCancelled또는prsFailed의TPdfProgressiveStatus를 반환합니다- 제로 카피 렌더 경로 -
RenderPage/RenderTile/RenderPageProgressive는 내부 버퍼를 통한 스테이징 대신 PDFium 출력을 대상TBitmap의 DIB 버퍼에 직접 쓰므로, 렌더당 width × height × 4 바이트의 메모리 복사 한 번을 절약합니다. 이는 고해상도(썸네일 패널, 인쇄 품질 내보내기, 일괄 내보내기)에서 가장 눈에 띕니다. 대상 DIB를 안전하게 래핑할 수 없을 때는 스캔라인별 폴백 경로가 유지됩니다- 저시력 비트맵 색상 변환 - InvertPdfBitmap, GrayscalePdfBitmap, DuotonePdfBitmap 은 렌더링된 32비트 TBitmap 픽셀을 제자리 변환해 반전, 회색, 2색 저시력 보기를 제공합니다
- 실시간 저시력 보기 -
TPdfView.Options는reInvert와reNightDuotone를 지원하며,NightDuotoneInk와NightDuotonePaper가 오버레이가 그려지기 전에 live night palette를 제어합니다
드로잉 작업
- 경로 그리기 - 선, 베지어 곡선 및 닫힌 도형으로 경로를 만듭니다
- 객체 제거 - 페이지 객체를 제거하고 TPdf 또는 TPdfView에서 페이지 콘텐츠를 재생성합니다
- 채우기 및 선 - 채우기 모드, 색상, 투명도 및 선 속성 구성
- 블렌드 모드 - 다양한 PDF 블렌드 모드 지원
- 선 스타일 - 선 캡, 선 결합 및 선 너비 구성
전자 서명
- 서명 감지 - PDF 문서의 전자 서명 감지 및 열거
- 서명 정보 - 서명 내용, 바이트 범위, 하위 필터, 이유 및 시간에 접근
- MDP 권한 - 문서 수정 감지 및 방지 권한 쿼리
- 서명 후 리비전 분석 -
AnalyzeSignatureRevisions는 원본 바이트에 대한 증분 변경을 DocMDP와 FieldMDP 기준으로 분류하고, 검증 자료 업데이트를 식별하며, 문서를 다시 저장하지 않고 섀도 정의나 미해결 압축 객체를 보고합니다- PDF 2.0 타원곡선 프로필 - PAdES 검증은 NIST, Brainpool, Ed25519, Ed448 서명을 식별하고, 곡선-다이제스트 일치와 AlgorithmIdentifier 매개변수를 검사하며, 지원되지 않는 네이티브 암호학을 잘못된 조합과 독립적으로 보고합니다
첨부 파일 지원
- 첨부 파일 접근 - 임베디드 파일 첨부 파일 읽기, 생성, 수정 및 삭제
- 제한된 일괄 추출 -
ReadAttachmentMetadata는 첨부 파일을 한 번 점검하고,ExtractAttachmentsToStreams는 파일별, 집계, 청크, 취소 제어 아래에서 한 번에 하나의 디코딩된 페이로드를 기록합니다- 첨부 파일 이름 - 첨부 파일 파일명 접근
- 첨부 파일 유형 - 존재할 때 임베디드 파일 MIME 하위 유형 값 읽기
- 북마크 -
Bookmarks배열,BookmarkChildren,HasBookmarkChildren,BookmarkFrom순회 헬퍼를 통해 계층적 지원이 포함된 문서 북마크를 탐색합니다- 이름 지정된 목적지 -
Destination,DestinationByName,DestinationCount를 통해 인덱스 또는 이름별로 이름 지정된 목적지에 접근합니다- 페이지 레이블 -
PageLabel을 통해 각 페이지의 페이지 레이블을 검색합니다. 문서가 표제부에 로마 숫자를 사용할 때 유용합니다- 웹 링크 -
WebLink,WebLinkCount및TPdfView.WebLinkAtPos로 페이지의 웹 링크를 감지하고 탐색합니다- 링크 주석 -
LinkAnnotation,LinkAnnotationCount및TPdfView.LinkAnnotationAtPos를 통해 액션 및 목적지 정보가 포함된 링크 주석에 접근합니다- 안전한 링크 클릭 처리 - TPdfView는 자동 이동 / URI 처리 전에
OnAnnotationLinkClick/OnWebLinkClick이벤트를 발생시키며, launch 액션은 기본적으로 비활성화됩니다. 링크 클릭 감지는 드래그가 아닌 클릭일 때만 실행되며, 새로운 MouseDown 앵커를 사용하여 패닝 제스처가 변경 없이 기존 스크롤 경로를 통해 계속 흐르도록 합니다
렌더링
- 고품질 렌더링 -
RenderPage/RenderTile을 통해 디바이스 컨텍스트, 비트맵 또는 타일로 페이지를 렌더링하며, 대상 DIB 버퍼에 제로 카피 직접 쓰기를 수행합니다- 취소 가능한 점진적 렌더링 -
RenderPageProgressive는 PDFium의 점진적 루프를 구동하고 반복 사이에IPdfCancellationToken을 폴링하여,prsDone,prsCancelled또는prsFailed를 반환합니다. 취소되면 비트맵은 지금까지 수행된 부분 작업을 보유합니다- 병렬 페이지 렌더링 -
RenderPagesParallel은 현재 문서를 한 번 캡처하고, 각 워커에게 독립적으로 로드된 PDFium 모듈과 문서를 제공하며, 요청 순서를 유지하고, 페이지별 및 집계 보존 출력 메모리를 제한합니다- 안전한 콘텐츠 삭제(Redaction) -
SaveAsRedacted는 격리된 스냅샷에/Redact사각형을 적용하고, 교차하는 최상위 페이지 객체와 겹치는 주석을 보수적으로 제거하며, 불투명한 대체물을 칠하고, 임베디드 첨부 파일을 제거하고, 로드된 문서를 변경하지 않으면서 정화된 단일 리비전 결과를 기록합니다- 렌더 옵션 - LCD 텍스트 최적화(
reLcd), 주석(reAnnotations), 그레이스케일 및 인쇄 모드 플래그- Skia 훅 - 호출자가 외부 SkCanvas를 제공할 때 저수준
FPDF_RenderPageSkia및FPDF_FFLDrawSkia바인딩을 사용할 수 있습니다(번들된 DLL 익스포트에 따라 다름)- 인쇄 모드 선택 -
TPdfPrintMode가 포함된SetPdfPrintMode를 통해 EMF, 텍스트 전용, PostScript, 패스스루, 이미지 마스크 및 Type 42 PDFium 인쇄 모드를 설정합니다- 비동기 오버레이 - TPdfView는 애플리케이션 소유 워커가 별도의 TPdf 인스턴스로 렌더링하는 동안 옵트인 로딩 오버레이를 표시할 수 있습니다
- 페이지 회전 - 0, 90, 180, 270도 회전 지원(
ro0,ro90,ro180,ro270)- 투명도 감지 -
Transparent속성은 블렌드 모드 및 부분 알파를 포함하여 현재 페이지의 객체에 투명도가 있는지 보고합니다
보기 (TPdfView)
- 표시 모드 -
dmSingleContinuous,dmTwoPageContinuous및dmTwoPageContinuousWithCover(표지 페이지는 단독으로 서고, 그 다음 두 페이지 펼침으로 계속됨). 유닛 수준의ComputeSpreadPages헬퍼는 뷰어를 인스턴스화하지 않고 펼침 페이지 수학을 노출합니다- Fit 모드 -
FitMode는 페이지가 뷰포트에 어떻게 배치되는지 선택합니다:pfmNone(수동 줌),pfmActualSize(100%),pfmFitPage(전체 페이지가 뷰포트에 맞음),pfmFitWidth(페이지 너비가 뷰포트 너비와 일치),pfmFitHeight(페이지 높이가 뷰포트 높이와 일치). 활성 fit 모드는 크기 조정 시와 현재 페이지가 변경될 때 자동으로 다시 적용되며, Zoom을 직접 설정하면 활성 fit 모드가 취소됩니다(FitMode는pfmNone으로 되돌아감) — 표준 PDF 뷰어 관례와 일치합니다- 줌 제어 -
PageZoom,PageWidthZoom,PageHeightZoom,ActualSizeZoom페이지별 헬퍼로 가변 줌- 페이지 색상 -
PageColor는 렌더링된 PDF 페이지 배경을 주변 컨트롤의Color와 분리합니다. 기본값은clWhite이므로 호스트 애플리케이션의 테마에 관계없이 PDF 페이지가 종이 흰색으로 렌더링됩니다. 다크 모드 뷰어는 실제 PDF 페이지를 흰색(또는 애플리케이션이 선택한 모든 색상)으로 유지하면서 스크롤 영역을 어둡게 유지할 수 있습니다- 대화형 텍스트 선택 - 최종 사용자가 PDF 페이지의 텍스트를 드래그하여 선택할 수 있으며, 선택과 팬 간의 히트 테스트 자동 전환: 문자를 클릭하면 선택 드래그가 시작되고 공백을 클릭하면 패닝됩니다. 더블 클릭은 단어를 선택하고, 트리플 클릭은 줄을 선택하며,
Ctrl+A는 페이지를 선택하고(펼침 모드에서는 두 페이지 모두),Ctrl+C는CF_UNICODETEXT로 복사하며,Shift+arrows는 선택을 확장하고, 텍스트 위에 호버하면 커서가crIBeam으로 전환되며, 뷰어 가장자리로 드래그하면 페이지가 자동 스크롤됩니다. 새로 게시된SelectionColor및OnSelectionChange; 새로운 publicHasSelection,SelectedText,SelectionCharCount,ClearSelection,SelectAll,CopySelectionToClipboard. 펼침 표시 모드는 CR/LF 결합으로 두 보이는 페이지에서 선택합니다. 호스트가 자체PopupMenu를 할당하지 않은 경우 기본 우클릭 복사 팝업이 자동으로 첨부됩니다. 키오스크 호스트를 위한 v1.17.0AllowUserTextSelection플래그로 게이트됩니다- 좌표 매핑 -
DeviceToPage/PageToDevice로 뷰어 디바이스 좌표와 PDF 페이지 좌표 간 변환,TRect를 받고TPdfRectangle을 반환하는 오버로드 포함- 텍스트 선택 및 히트 테스팅 -
CharacterIndexAtPos로 뷰어 점 아래의 문자를 해결하고PaintSelection을 통해 텍스트 선택 강조 표시를 그립니다- 마우스 및 키보드 - 마우스 드래그 스크롤, PgUp / PgDn / Ctrl+Home / Ctrl+End 단축키 및 휠 업 / 휠 다운 페이지 탐색이 포함된 완전한 입력 장치 지원. Ctrl+휠은 애플리케이션 줌용으로 예약되어 탐색 핸들러가 건너뜁니다
- 사용자 입력 잠금 -
AllowUserPageChange는 키보드 페이지 단축키를 제어하고,ChangePageOnMouseScrolling은 휠 페이지 점프를 제어하며,AllowUserTextSelection은 마우스 / 키보드 텍스트 선택 입력을 제어합니다. 세 가지 모두 기본값은 True이며, 서브클래싱 없이 키오스크, 미리보기 창 또는 읽기 전용 임베딩을 잠그려면 False로 전환합니다- 비동기 렌더 오버레이 -
AsyncRendering,LoadingText,LoadingColor는 렌더링된 페이지 위에 작은 "로딩 중..." 표시기를 그려서, 장기 렌더링을 위해 자체 워커를 사용하는 애플리케이션이 일관된 시각적 행동 유도성을 공유합니다. 기본값은 기존 동작을 유지합니다.TPdf는 이제 인스턴스별로 렌더 및 페이지 언로드 호출을 직렬화합니다. 애플리케이션은 여전히 워커 디스패치를 소유하며 렌더링이 진행 중인 동안 문서를 변경하지 않아야 합니다- 안전한 링크 클릭 처리 -
LinkOptions는 네 가지 PDF 링크 액션 유형의 자동 동작을 제어하는 게시된 세트입니다:loAutoGoto(페이지 점프),loAutoOpenURI(ShellExecute),loAutoLaunch(ShellExecute),loAutoEmbeddedGoto(예약됨). 기본값은loAutoGoto및loAutoOpenURI만 활성화합니다.loAutoLaunch및loAutoEmbeddedGoto는 꺼진 채로 유지되어 잘못된 클릭이 임의의 프로그램을 실행할 수 없습니다.OnAnnotationLinkClick과OnWebLinkClick은 자동 액션 전에 발생하며 애플리케이션이 이벤트를 Handled로 표시하거나 리디렉션할 수 있도록 합니다- 폼 상호작용 - 뷰어 내 대화형 폼 편집과 v1.23.0 선택 / 실행 취소 / 다시 실행 헬퍼
- 시각적 스타일링 -
PageShadowSize,PageShadowColor,PageBorderColor는 페이지 사각형 아래에 선택적인 그림자와 그 주위에 1픽셀 테두리를 그립니다.SmoothScroll은 이제 타이머 기반 세그먼트로 행/페이지 스크롤바 명령을 애니메이션화하며 썸 추적은 즉시 유지됩니다- 썸네일 탐색 -
TPdfThumbnailView(유닛FPdfThumbnail)는 호버 및 선택 강조 표시와 클릭 이동 탐색이 포함된 스크롤 가능한 사이드 패널에 행당 페이지 썸네일 하나를 렌더링합니다. TPdfView 옆에 배치되도록 설계되었습니다. 속성:CurrentPageIndex,ThumbnailWidth,ThumbnailHeight,TextColor,HoverColor,SelectionColor,BorderColor; 이벤트:OnPageClick
압축
- 자동 압축 -
Compressed속성이 True(기본값)일 때 저장 시 모든 PDF 스트림이 FlateDecode로 압축되도록 보장합니다- 사후 처리 - 압축 엔진은 저장된 PDF 데이터를 스캔하고 zlib 최대 압축을 사용하여 압축되지 않은 모든 스트림을 압축합니다
- 크로스 참조 재구축 - 스트림 압축이 바이트 오프셋을 변경할 때 xref 테이블을 자동으로 재구축합니다
- 제로 오버헤드 - 모든 스트림이 이미 압축되어 있으면 데이터는 수정 없이 통과합니다
보안
- 암호 지원 - 암호로 보호된 PDF 문서 열기
- 권한 - 문서 및 사용자 권한 읽기.
SecurityAudit데모는 권한, 첨부 파일, 문서 JavaScript, URI / Launch 링크, 서명, XFA, V8 가용성을 TXT / JSON 리포트 저장 및 TXT 복사 액션이 포함된 읽기 전용 위험 표면으로 결합합니다- 제한된 DER 툴킷 -
FPdfAsn1은 낮은/높은 태그 번호, 타입화된 값, 정렬된 SET OF 컬렉션, 정규 시간 또는 문자열 형식을 인코딩하고, 제로 카피 리더 윈도우, 타입화된 디코더, 리소스 제한 검증기가 CMS, PAdES, 인증서, 타임스탬프 워크플로를 지원합니다- 서명별 장기 검증 -
TPadesDssOptions.Vris는 해시 키 인덱스 방식의 간접 VRI 사전을 기록하고, 공유되는 인증서, OCSP, CRL 스트림은 콘텐츠 해시로 중복 제거되며, PAdES B-LT 또는 B-LTA 서명은 새 서명의 VRI를 자동으로 만듭니다- 원격 및 중단된 서명 -
PreparePadesRemoteSignature는 HSM 또는 클라우드 서명을 위해 SHA-256 문서 다이제스트, 정확한 ByteRange, 플레이스홀더 좌표, 준비된 PDF 지문을 저장하고,CompletePadesRemoteSignature는 수정되었거나 재사용되었거나 너무 크거나 다이제스트가 일치하지 않는 세션을 출력 기록 전에 거부합니다- 서명 리비전 정책 분석 -
AnalyzeSignatureRevisions는 classic, hybrid, xref-stream 리비전 체인을 재구성하고, 서명별로 DocMDP와 FieldMDP를 적용하며, 잘못되었거나 섀도이거나 압축되었거나 예산을 초과한 변경에 대해서는 보수적으로 실패 처리합니다- 모호성에 강한 서명 프로필 - PAdES 검증은 필요한 키를 최상위 서명 사전 수준에서만 계수하고, 중복과 일관성 없는 Sig 또는 DocTimeStamp 프로필을 거부하며, ByteRange가 direct 16진수 Contents 토큰을 정확히 제외하도록 요구합니다
- 다중 서명 증거 내보내기 -
BuildPadesEvidenceReport는 PDFium 팩트, CMS 정책, 신뢰 및 타임스탬프 상태, 인증서 경로 해시, DSS/VRI 커버리지, 리비전 결정을 상호 연관시켜 제한된 JSON과 CSV로 출력합니다- 아카이브 타임스탬프 갱신 -
RenewPadesArchiveTimestamp는 기존 서명 이력 그대로 위에 RFC 3161 Document Time-stamp를 덧붙이고, 선택적으로 먼저 전체 DSS를 갱신하며, 출력 전에 결과 B-LTA 체인을 검증합니다- 비동기 신뢰 검증 -
ValidatePadesTrust와ValidatePadesTrustAsync는 원본 바이트 분리 서명, 서명자 및 TSA 체인, 선택적 온라인 폐기 증거, RFC 3161 타임스탬프 토큰을 단계적 진행, 제한된 조회, 협력적 취소와 함께 검증합니다- Qualified trust -
TPdfEuropeanTrustedList는 호출자가 인증한 ETSI 신뢰 목록만 파싱하고, 캐시된 XML을 재인증하며, 호출자 소유의 업데이트 소스를 받아들이고,QualifiedTrustEvaluator를 통해 오프라인 qualified-service 평가를 제공합니다- 보안 제거 - 보안이 제거된 문서 저장(권한이 있을 때)
인쇄
- 인쇄 모드 - 전역
SetPdfPrintMode함수를 통해 EMF, 텍스트 전용, PostScript Level 2 / 3, PostScript 패스스루, EMF 이미지 마스크 및 Type 42 인쇄 모드 중에서 선택합니다- 뷰어 환경설정 -
PrintCopies,PrintPageRanges(1 기반 페이지 범위),PrintScaling,PrintPaperHandling을 통해 문서 작성자 의도를 표면화합니다.SetPdfPrintPaperHandlingDevMode는 양면 인쇄 힌트를 WindowsDEVMODE.dmDuplex에 매핑합니다- N-up 인쇄 - Delphi, C++Builder 및 Lazarus
PrintPreferences데모는 홀수 / 짝수 페이지 필터링, 그레이스케일 렌더링, 선택적 1픽셀 셀 테두리, PDF 작성자 인쇄 환경설정 및SetPdfPrintPaperHandlingDevMode를 통한 양면 인쇄 의도 매핑이 포함된 N-up 시트 구성(시트당 1 / 2 / 4 / 9 페이지)을 보여줍니다
제공 데모
Demo\Delphi,Demo\CBuilder,Demo\Lazarus트리에는 세 가지 IDE 패밀리 전체에서 라이브 API 표면을 실행하는 실행 가능한 샘플 프로젝트가 제공됩니다. 하이라이트:
- PDFViewer / MultiPageViewer / SplitView - 엔드 투 엔드 TPdfView 사용: 로드, 탐색, 줌, 회전, 두 페이지 펼침, 표지 인식 레이아웃, 동기화된 명령이 포함된 Delphi / C++Builder / Lazarus 나란히 PDF 비교. 뷰어 데모는 또한 멀티 기가바이트 PDF에 대한 실용적인 속도 테스트이며, 2.x GB 문서가 거의 즉시 사용 가능한 첫 번째 뷰에 도달할 수 있고 페이지 렌더링은 응답성을 유지합니다
- ViewerInteractionLab - 표시 모드, fit 모드, 페이지 색상, 회전, 검색 강조 표시, 텍스트 선택, 선택된 텍스트 미리보기, 클립보드 액션 및 DeviceToPage 좌표 피드백을 위한 Delphi, C++Builder, Lazarus 집중 TPdfView 상호작용 샘플
- SearchAndSelect - 전체 페이지 검색 결과 목록, 이전 / 다음 일치 탐색, 더블 클릭 결과 이동,
HighlightSearchText, 대소문자 구분 / 단어 단위 검색,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelection, 펼침 표시 모드를 위한 Delphi, Lazarus, C++Builder 집중 워크플로 샘플- PreflightReport - 재사용 가능한
FPdfPreflightReport객체는 PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R, PDF/VT 결과를 상태, Info / Warning / Error 심각도, 조회, 검색, 필터링, 결정론적 집계, 안정적인 SHA-256 지문, TXT / HTML / Markdown / JSON / CSV 출력, SARIF 2.1.0 / JUnit XML / NDJSON / XML 자동화 형식과 함께 수집합니다. Delphi, Lazarus, C++Builder 데모와 콘솔 워크플로는 미리보기, 배치 라우팅, 요약, 리포트 첨부, CI 종료 코드 게이팅을 제공합니다- ContentExtractionLab - 문서 메타데이터, 페이지 텍스트, 페이지 객체, 이미지, 첨부 파일, 링크, 주석, 북마크 및 글꼴 / 문자 메트릭에 대한 Delphi, Lazarus, C++Builder 통합 콘텐츠 인벤토리 워크플로. TXT / JSON 내보내기, 모두 / 없음 카테고리 선택, 소스 PDF 저장, 리포트 복사 액션을 포함합니다
- WatermarkStamp - 다중 페이지 대상 PDF 전체에서 중앙 워터마크, 모서리 스탬프, 페이지 번호 레이블을 위한 Delphi, Lazarus, C++Builder 재사용 가능한 Form XObject 워크플로
- CreatePDF - 텍스트, 이미지, 경로, 테이블, 워터마크 구성으로 처음부터 다중 페이지 PDF 빌드; 글꼴 선택 및 유니코드 처리 검증을 위한 악센트 부호가 있는 체코어 / 프랑스어 / 독일어 / 스페인어 / 포르투갈어 / 폴란드어 / 터키어 텍스트를 작성하는 '유럽 텍스트' 옵션 포함
- ExtractText / ExtractImages / ContentExtractionLab - 추출된 텍스트(페이지별 분리 출력 포함) 또는 임베디드 이미지를 디스크에 저장하거나, 한 번의 패스로 다중 카테고리 콘텐츠 인벤토리 리포트 생성
- FormFill - AcroForm 필드 메타데이터 읽기, 값 쓰기, /AP 외관 재생성, 편집 가능 또는 평탄화된 결과 저장
- FontProperties - Delphi, C++Builder, Lazarus에서 TPdf와 TPdfView 양쪽으로 인덱스된 문자 / 글꼴 메타데이터 검사
- MergePDF / SplitPDF - 파일별 페이지 범위 선택, 선택적 출력 경로, 실행 로그, 취소 버튼, 병합 완료 요약이 포함된 여러 소스 PDF 결합, 또는 하나의 PDF를 페이지별 출력 파일로 분할
- PDFtoJpg / BatchExport - 파일별 전체 진행률, 페이지별 현재 진행률, DPI / 품질 / 암호 입력,
IPdfCancellationToken으로 뒷받침되는 협력적으로 취소 가능한 일괄 처리가 포함된 Delphi, C++Builder, Lazarus 단발 또는 일괄 다중 파일 PDF에서 JPG로의 변환- StandardsLab - PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R, PDF/VT 검증, 문제 보고, 표준 지향 저장 출력을 위한 Delphi, C++Builder, Lazarus 워크플로 샘플
- PrintPDF / PrintPreferences - 미리보기, 페이지 범위, 매수, 한 부씩 인쇄, 진행률, 취소가 포함된 Delphi, C++Builder, Lazarus 표준 PDF 인쇄(PrintPDF), 그리고 홀수 / 짝수 필터링과 PDF 작성자 인쇄 환경설정이 포함된 Delphi, C++Builder, Lazarus N-up 시트 구성(PrintPreferences)
- SecurityAudit - 권한, 첨부 파일, JavaScript 액션, URI / Launch 링크, 웹 링크, 서명, XFA 상태, V8 / XFA 헬퍼 가용성, TXT / JSON 감사 리포트를 위한 Delphi, C++Builder, Lazarus 읽기 전용 위험 표면 샘플
- Attachment - PDF 만들기, MIME 하위 유형 표시가 포함된 임베디드 파일 첨부 파일 추가 / 목록 / 추출 / 삭제 / 저장
- ImageToPDF - 미리보기 및 이미지별 진행률이 포함된 Delphi, C++Builder, Lazarus 이미지 일괄 변환을 하나의 PDF로(페이지당 이미지 하나)
Delphi, C++Builder, Lazarus 회귀 스위트는 동일한 픽스처 PDF를 공유하는 147개(Pas) / 123개(C++) 케이스를 다루므로 세 가지 IDE 패밀리 전체에서 동작이 바이트 정렬을 유지합니다
플랫폼 지원
- Delphi - Delphi XE5 (RAD Studio XE5)부터 Delphi 13.1 Florence (RAD Studio 13.1)까지
- C++Builder - C++Builder XE5 (RAD Studio XE5)부터 C++Builder 13.1 Florence까지
- Lazarus - Free Pascal / Lazarus 지원
- Win32 / Win64 - 32비트 및 64비트 Windows 플랫폼 모두
정렬 비교는 삽입, 삭제, 이동 페이지를 찾으며 상한이 있는 Unicode 텍스트 변경과 여러 시각 영역을 제공합니다. overlay로 변경을 내보낼 수 있습니다
트랜잭션 탐색 병합은 선택하거나 재정렬해 페이지를 가져와도 outline 계층, 스타일, URI action, 재연결한 페이지 목적지를 유지합니다
선택적 Tesseract OCR은 스캔 페이지에 검색 텍스트를 추가하며 의존성 진단, 취소, 리소스 상한을 명시합니다
선택 페이지의 트랜잭션 AcroForm 병합은 명시적인 이름 정책과 리소스 분리를 지원합니다. 선택적 바코드 프로바이더는 Code128, QR, DataMatrix, PDF417을 생성하고 회색조 이미지를 인식합니다