Các thành phần cốt lõi
- TPdf - Thành phần chính để xử lý tài liệu PDF, dùng để mở, điều hướng, trích xuất văn bản và chỉnh sửa tài liệu PDF
- TPdfView - Thành phần hiển thị trực quan để xem và tương tác với các trang PDF
- TPdfReadingSession - Thành phần điều phối đọc to cho bộ máy TTS của máy chủ và theo dõi từ của TPdfView
- TPdfThumbnailView - Bảng thumbnail cuộn ở bên cạnh để điều hướng trang
Thao tác tài liệu
- Tải tài liệu - Tải tệp PDF từ đĩa, luồng bộ nhớ, mảng byte hoặc bộ điều hợp TStream theo yêu cầu thông qua
LoadCustomDocument. PDFium đọc các khối theo nhu cầu, nên tài liệu nhiều GB và các nguồn từ xa hoặc dựa trên cơ sở dữ liệu không cần bản sao sẵn trong bộ nhớ- Bảo vệ bằng mật khẩu - Mở tài liệu PDF có mật khẩu và báo cáo
UserPermissionsthực tế cho phiên đã xác thực- Tạo tài liệu - Tạo tài liệu PDF mới từ đầu với
CreateDocument,AddPage,AddText,AddImage,AddPicture,AddJpegImagevàCreatePath- Lưu tài liệu - Lưu tài liệu đã sửa với nhiều tùy chọn khác nhau (gia tăng, gỡ bỏ bảo mật) và các phiên bản PDF đích rõ ràng từ PDF 1.0 đến PDF 1.7
- Xuất PDF/A-1b -
SaveAsPdfA/SaveAsPdfAToStreamhậu xử lý bản lưu cơ sở bằng một cập nhật gia tăng chèn luồng siêu dữ liệu XMP,OutputIntentICC sRGB và catalog tài liệu đã cập nhật để kết quả tuân thủ PDF/A-1b. Hồ sơ ICC tùy chỉnh được hỗ trợ quaTPdfASaveOptions.IccProfileData- Kiểm tra PDF/A -
ValidatePdfAvà thuộc tính chỉ đọcPdfAConformancequét tài liệu đang mở để tìm dấupdfaidXMP,OutputIntentcó ICC nhúng, sự hiện diện của mã hóa, rồi báo cáo mức tuân thủ (pac1a,pac1b,pac2b,pac3b,pacNonehoặcpacUnknown) kèm danh sách các mụcTPdfAValidationIssuemô tả từng vấn đề được phát hiện- Trình kiểm tra tuân thủ phiên bản PDF - Khi SaveAs đặt đích PDF 1.0 đến PDF 1.7, writer sẽ từ chối mọi mục dictionary, bộ lọc, kiểu chú thích, kiểu hành động, phông chữ, không gian màu hoặc tham số mã hóa nào được giới thiệu sau phiên bản đích đã chọn (ví dụ JBIG2Decode, MarkInfo, OutputIntents, AES / AES-256, chú thích Polygon / Caret / Watermark / Redact, hành động JavaScript / Trans / SetState)
- Nén luồng - Tự động nén FlateDecode bảo đảm mọi luồng PDF đều được nén tối ưu khi lưu; đặt
Compressed := Falseđể tắt trong các pipeline gỡ lỗi- Ghép tài liệu - Nhập trang từ các tài liệu PDF khác
- Nhập tập con trang -
ImportPagesByIndexsao chép một mảng chỉ mục zero-based rõ ràng từ tài liệu nguồn, với InsertAt = 0 để chèn trước trang 1 hoặc InsertAt = PageCount để nối thêm vào cuối. Truyền một mảng chỉ mục rỗng để nhập mọi trang nguồn- Bố cục N-up -
ImportNPagesToOnetrả về mộtTPdfhoàn toàn mới, trong đó các trang là bố cục tổng hợp NumX×NumY của các trang trong tài liệu nguồn, tính theo đơn vị người dùng PDF (1 unit = 1/72 in)- Sắp xếp lại trang -
MovePagessắp xếp lại các trang tại chỗ bằng một mảng chỉ mục zero-based và chỉ mục đích cho trang đầu tiên được chuyển- Tái sử dụng trang bằng Form XObject -
CreateXObjectFromPagetạo một handleTPdfXObjectcó thể tái sử dụng từ bất kỳ trang nào của tài liệu khác;InsertFormObjectFromXObjectchèn MỘT bản sao của trang được bao gói vào trang hiện tại. Rất phù hợp cho watermark, lớp phủ mẫu và quy trình "đóng dấu một trang lên nhiều trang". Đối tượng trang đích có thể được định vị, co giãn và xoay quaFPDFPageObj_SetMatrixvà các helperTPdfMatrix- Quản lý trang - Thêm, xóa và thao tác từng trang riêng lẻ;
AddPage(0, ...)chèn trang đầu tiên và kích hoạt ngay lập tức- Hộp trang - Đọc và ghi MediaBox, CropBox, BleedBox, TrimBox và ArtBox trên trang hiện tại
- Ngôn ngữ catalog - Đọc và ghi ngôn ngữ tài liệu được lưu trong mục /Lang của catalog
- ID trailer - Đọc các mục trailer /ID cố định và thay đổi dưới dạng byte nhị phân
- Hành động JavaScript của tài liệu - Liệt kê tên hành động và script JavaScript ở cấp tài liệu trong cây tên
- Cây cấu trúc Tagged PDF - Kiểm tra các phần tử cấu trúc logic, văn bản hỗ trợ truy cập, ngôn ngữ, ID nội dung được đánh dấu và hệ thống phân cấp cho các trang Tagged PDF
- Tùy chọn trình xem - Đọc
PrintCopies,PrintPageRanges,PrintScalingvàPrintPaperHandlingtừ dictionary tùy chọn của trình xem trong tài liệu; các PDF đã lưu mặc định mở trang đầu theo hành động Fit Height
Thao tác văn bản
- Trích xuất văn bản - Trích xuất văn bản từ các trang PDF với độ chính xác đến từng ký tự qua các thuộc tính
Text,TextInRectangle,Character,CharacterRectanglevàCharacterOrigin- Đơn vị đọc cấp câu - TPdf.ReadingUnits, TPdf.DocumentReadingUnits, TPdfView.ReadingUnits và BuildReadingUnits cung cấp các bản ghi TPdfReadingUnit cỡ câu cho việc nghe-đọc TTS đồng bộ
- Tô sáng đọc cấp từ -
TPdf.PageWordBoxes,TPdfView.PageWordBoxes,BuildWordBoxes,WordBoxIndexAtCharIndex,TPdfView.SelectWordBox,TPdfView.SelectWordSpan,TPdfView.TrackReadingWordAt,TPdfView.SetReadingWord,TPdfView.ClearReadingWord,ReadingWordColor,ReadingWordFollowánh xạ một vị trí ký tự của trang sang TPdfWordBox chứa nó, tô sáng nó và trả về chỉ mục từ; tô sáng một TPdfWordBox làm từ đang được đọc hiện tại trên TPdfView; xóa lớp phủ con trỏ đọc cấp từ hiện tại trên TPdfView; điều khiển màu lớp phủ dùng cho con trỏ đọc cấp từ hiện tại; điều khiển việc TPdfView có cuộn từ đang đọc vào vùng nhìn thấy khi theo dõi đọc hay không- Điều phối phiên đọc to -
TPdfReadingSession,TPdfSpokenText,SpokenTextAppend,BuildSpokenTextFromWords,SpokenToPageCharvàEstimateSpokenWordIndexphối hợp các bộ máy TTS của máy chủ, các đoạn đã nói, callback vị trí từ, nhịp độ ước tính, xử lý tạm dừng/tiếp tục và cập nhật con trỏ từ của TPdfView- Tìm kiếm văn bản - Tìm văn bản với các tùy chọn phân biệt hoa thường, nguyên từ và tìm liên tiếp bằng
FindFirst,FindNext,FindPrevious- Lớp phủ tô sáng tìm kiếm -
TPdfView.HighlightSearchTextquét trang đang xem và vẽ một lớp phủHighlightColorđược alpha-blend thật sự lên mọi kết quả khớp ở mỗi lần vẽ lại, rồi trả về số lượng kết quả.ClearHighlightxóa lớp phủ; việc chuyển sang trang khác sẽ tự động xóa vì các kết quả khớp gắn với từng trang.HighlightColormặc định làclYellowvà được công khai để ứng dụng có thể phối màu theo giao diện của mình- Thuộc tính ký tự - Truy cập kích thước phông, độ đậm, góc và vị trí của từng ký tự bằng các thuộc tính đánh chỉ mục
CharacterAngle,CharacterFontSize,CharacterFontWeight,CharacterGenerated,CharacterIsHyphenvàCharacterMapError- Hỗ trợ ký tự châu Âu -
AddTexttự động nạp và lưu đệm phông TrueType hệ thống phù hợp trước khi tạo đối tượng văn bản, nên các ký tự có dấu trong tiếng Czech, French, German, Spanish, Portuguese, Polish và Turkish mà các phông chuẩn tích hợp của PDFium không biểu diễn được giờ sẽ hiển thị đúng mà không cần đổi mã- Thêm văn bản - Thêm văn bản mới vào các trang PDF với phông, màu, độ trong suốt và xoay tùy chỉnh
- Định vị đối tượng văn bản - Đặt vị trí theo từng ký tự cho các đối tượng văn bản hiện có qua
SetTextPositionsvàTPdfSingleArray- Thông tin phông chữ - Lấy các thuộc tính phông bao gồm tên họ, trạng thái nhúng, góc nghiêng, ascent / descent và dữ liệu phông thô theo từng đối tượng trang
Hỗ trợ chú thích
- Kiểu chú thích - Hỗ trợ chú thích dạng text, link, highlight, underline, strikeout và nhiều kiểu chú thích khác
- Tạo chú thích - Tạo chú thích mới bằng lập trình
- Chỉnh sửa chú thích - Sửa các thuộc tính chú thích hiện có, gồm màu, độ trong suốt và nội dung
- Chú thích liên kết - Xử lý các liên kết nội bộ và bên ngoài với hỗ trợ action
Hỗ trợ biểu mẫu
- Bộ truy cập điền biểu mẫu bằng giọng nói - FocusedFormFieldValue, FocusedFormFieldName và FocusedFormFieldDetails trên TPdf và TPdfView cung cấp giá trị trường biểu mẫu logic hiện tại, tên và TPdfFormFieldInfo cho việc điền biểu mẫu bằng bàn phím hoặc giọng nói
- Kiểu biểu mẫu - Hỗ trợ các biểu mẫu AcroForm và XFA
- Điền biểu mẫu - Điền biểu mẫu tương tác với hỗ trợ JavaScript
- Chọn DLL V8 - Đặt
EnableV8Enginetrước khi tải để dùngpdfium.v8.dlltừ thư mụcDLLs\Win32hoặcDLLs\Win64tương ứng và truy vấn khả năng sẵn có của helper V8/XFA quaV8FeaturesAvailable,XfaBStrHelpersAvailablevàGetRecommendedV8Flags- Truy cập trường - Đọc và ghi giá trị trường biểu mẫu theo chỉ mục hoặc vị trí
- Thông tin trường - Truy cập kiểu trường, cờ, tên và các thuộc tính khác
- Cờ trường - Cập nhật cờ trường AcroForm theo chỉ mục hoặc vị trí qua
SetFormFieldFlags/SetFormFieldFlagsAt, bao gồm cờ chỉ đọc, bắt buộc, mật khẩu và chọn nhiều- Làm phẳng biểu mẫu -
GenerateFormAppearancestạo lại luồng hiển thị /AP cho mọi widget biểu mẫu trên mọi trang, vàFlattenPage/FlattenAllPageshợp nhất chú thích và trường biểu mẫu thành nội dung trang tĩnh (không thể chỉnh sửa)- Chọn văn bản widget biểu mẫu & Hoàn tác / Làm lại - Trên widget AcroForm đang được focus, view cung cấp
GetSelectedFormText(văn bản đang chọn),SelectAllFormText(chọn mọi ký tự) vàFormUndo/FormRedo/FormCanUndo/FormCanRedo(điều khiển lịch sử chỉnh sửa theo từng widget của PDFium). Cả sáu đều thoát an toàn khi view không hoạt động hoặc không có widget nào được focus
Thao tác ảnh
- Trích xuất ảnh - Trích xuất bitmap từ các trang PDF bằng thuộc tính đánh chỉ mục
Bitmap; duyệtBitmapCountđể lưu mọi ảnh ra đĩa- Chèn JPEG -
AddJpegImagenhận một TStream chứa byte JPEG thô và nhúng ảnh dưới dạng một XObject /DCTDecode mà không mã hóa lại- Hỗ trợ Picture -
AddPicturenhận một đối tượngTPicturevới chuyển đổi định dạng tự động qua các lớp đồ họa VCL/LCL đã đăng ký- Chèn ảnh trực tiếp -
AddImage(FileName)nhận diện mọi định dạng đã đăng ký với các unit đồ họa VCL hoặc LCL (BMP, PNG qua PngImage, JPG, ...) và dùng chung pipeline AddPicture.AddImage(TBitmap)bỏ qua bước trung gian TPicture, giúp đơn giản hóa các lời gọi đã có sẵn một TBitmap từ công việc kết xuất hoặc tạo hàng loạt- Hồ sơ ICC của ảnh - Các đối tượng trang ảnh hiển thị dữ liệu hồ sơ ICC nhúng của chúng khi có (binding cho
FPDFImageObj_GetIccProfileDataDecoded)- Tạo thumbnail - Tạo bitmap thumbnail của trang hiện tại qua thuộc tính
Thumbnailhoặc kết xuất bất kỳ trang one-based nào quaTPdf.RenderPageThumbnailmà không thay đổiPageNumber
Unit trợ giúp
- Hạ tầng bất đồng bộ -
FPdfAsynccung cấpIPdfCancellationToken/IPdfCancellationTokenSourcecho ngữ nghĩa hủy từ UI theo kiểu hợp tác, một singletonPdfNoCancellationTokencó thể tái sử dụng và helper nhẹTPdfFuture<T>chạy worker trên luồng nền rồi gửi một baoTPdfFutureResult<T>trở lại luồng chính, phân biệt các trường hợp thành công, hủy và thất bại- Bộ chuyển đổi luồng -
TPdfStreamAdapternối mộtTStreamPascal với các callbackFPDF_FILEACCESScủa PDFium đểLoadCustomDocumentđọc khối theo nhu cầu thay vì đệm toàn bộ PDF trong bộ nhớ- Tổ hợp ma trận -
FPdfMatrixbao bọcFS_MATRIXcủa PDFium bằng API hướng đối tượng choTranslate,Scale,Rotate,HorizontalFlip,VerticalFlip,CentralFlip,SkewvàMultiply.Multiplychụp lại sáu phần tử ma trận trước khi tính các giá trị hàng mới, tránh lỗi của cách cài đặt Pascal thay thế nơi các phần tử trước đó bị ghi đè trong cùng một lời gọi và tạo ra phép kết hợp sai- Kết xuất tăng dần có thể hủy -
TPdf.RenderPageProgressiveđiều khiển vòng lặpFPDF_RenderPageBitmap_Start+RenderPage_Continuecủa PDFium và thăm dò mộtIPdfCancellationTokengiữa các vòng qua callbackIFSDK_PAUSEđể những lần kết xuất dài ở DPI cao có thể dừng giữa chừng thay vì chặn đến khi hoàn tất. Trả vềTPdfProgressiveStatuslàprsDone,prsCancelledhoặcprsFailed- Đường kết xuất không sao chép -
RenderPage/RenderTile/RenderPageProgressiveghi đầu ra của PDFium trực tiếp vào vùng đệm DIB củaTBitmapđích thay vì trung gian qua một vùng đệm nội bộ, tiết kiệm một lần sao chép bộ nhớ kích thước width × height × 4 byte cho mỗi lần kết xuất - thấy rõ nhất ở DPI cao như bảng thumbnail, xuất chất lượng in và xuất hàng loạt. Một đường dự phòng theo từng scanline vẫn được giữ lại khi DIB đích không thể bọc an toàn- Biến đổi bitmap cho người khiếm thị - InvertPdfBitmap, GrayscalePdfBitmap và DuotonePdfBitmap biến đổi tại chỗ các pixel TBitmap 32-bit đã kết xuất cho chế độ xem đảo màu, thang xám hoặc hai màu dành cho người khiếm thị
- Xem khiếm thị trực tiếp -
TPdfView.Optionshỗ trợreInvertvàreNightDuotone, vớiNightDuotoneInkvàNightDuotonePaperđiều khiển bảng màu ban đêm trực tiếp trước khi các lớp phủ được vẽ
Thao tác vẽ
- Vẽ đường - Tạo các đường dẫn bằng đoạn thẳng, đường cong Bezier và hình khép kín
- Xóa đối tượng - Xóa các đối tượng trang và tái tạo nội dung trang từ TPdf hoặc TPdfView
- Tô và nét - Cấu hình chế độ tô, màu, độ trong suốt và các thuộc tính nét
- Chế độ hòa trộn - Hỗ trợ nhiều chế độ hòa trộn PDF khác nhau
- Kiểu đường - Cấu hình đầu nét, mối nối nét và độ rộng nét
Chữ ký số
- Phát hiện chữ ký - Phát hiện và liệt kê các chữ ký số trong tài liệu PDF
- Thông tin chữ ký - Truy cập nội dung chữ ký, byte range, sub-filter, lý do và thời gian
- Quyền MDP - Truy vấn quyền phát hiện và ngăn ngừa sửa đổi tài liệu
Hỗ trợ tệp đính kèm
- Truy cập tệp đính kèm - Đọc, tạo, sửa và xóa các tệp đính kèm nhúng
- Tên tệp đính kèm - Truy cập tên tệp đính kèm
- Kiểu tệp đính kèm - Đọc các giá trị MIME subtype của tệp nhúng khi có
- Dấu trang - Điều hướng các bookmark của tài liệu với hỗ trợ phân cấp qua mảng
Bookmarks,BookmarkChildren,HasBookmarkChildrenvà các helper duyệtBookmarkFrom- Đích đặt tên - Truy cập các đích được đặt tên theo chỉ mục hoặc theo tên qua
Destination,DestinationByNamevàDestinationCount- Nhãn trang - Lấy nhãn trang cho từng trang qua
PageLabel; hữu ích khi tài liệu dùng số La Mã cho phần đầu- Liên kết web - Phát hiện và điều hướng liên kết web trên trang với
WebLink,WebLinkCountvàTPdfView.WebLinkAtPos- Chú thích liên kết - Truy cập chú thích liên kết với thông tin action và destination qua
LinkAnnotation,LinkAnnotationCountvàTPdfView.LinkAnnotationAtPos- Xử lý nhấp liên kết an toàn - TPdfView phát sinh các sự kiện
OnAnnotationLinkClick/OnWebLinkClicktrước khi xử lý goto / URI tự động, với launch actions bị tắt theo mặc định. Việc phát hiện nhấp liên kết chỉ chạy khi cử chỉ là một cú click thay vì kéo, dùng một anchor MouseDown mới để các cử chỉ pan vẫn đi qua đường cuộn hiện có như cũ
Kết xuất
- Kết xuất chất lượng cao - Kết xuất trang ra device context, bitmap hoặc tile qua
RenderPage/RenderTile, với ghi trực tiếp không sao chép vào vùng đệm DIB của đích- Kết xuất tăng dần có thể hủy -
RenderPageProgressiveđiều khiển vòng lặp tăng dần của PDFium và thăm dòIPdfCancellationTokengiữa các vòng, rồi trả vềprsDone,prsCancelledhoặcprsFailed. Khi bị hủy, bitmap giữ lại phần công việc đã làm được đến thời điểm đó- Tùy chọn kết xuất - Tối ưu hóa văn bản LCD (
reLcd), chú thích (reAnnotations), thang xám và các cờ chế độ in- Móc Skia - Có sẵn các binding cấp thấp cho
FPDF_RenderPageSkiavàFPDF_FFLDrawSkiakhi người gọi cung cấp một SkCanvas bên ngoài (phụ thuộc vào các export DLL đi kèm)- Chọn chế độ in - Đặt các chế độ in PDFium EMF, chỉ văn bản, PostScript, pass-through, image-mask và Type 42 qua
SetPdfPrintModevớiTPdfPrintMode- Lớp phủ bất đồng bộ - TPdfView có thể hiển thị lớp phủ tải tùy chọn trong khi các worker do ứng dụng sở hữu kết xuất bằng các thể hiện TPdf riêng
- Xoay trang - Hỗ trợ xoay 0, 90, 180 và 270 độ (
ro0,ro90,ro180,ro270)- Phát hiện độ trong suốt - Thuộc tính
Transparentbáo cho biết bất kỳ đối tượng nào trên trang hiện tại có độ trong suốt hay không, gồm cả blend mode và alpha một phần
Xem tài liệu (TPdfView)
- Chế độ hiển thị -
dmSingleContinuous,dmTwoPageContinuousvàdmTwoPageContinuousWithCover(trang bìa đứng riêng rồi tiếp tục bằng bố cục hai trang). Helper cấp unitComputeSpreadPagescung cấp toán học của trang spread mà không cần khởi tạo viewer- Chế độ vừa khít -
FitModechọn cách trang nằm trong viewport:pfmNone(zoom thủ công),pfmActualSize(100%),pfmFitPage(toàn bộ trang vừa trong viewport) vàpfmFitWidth(bề rộng trang khớp bề rộng viewport). Chế độ fit đang hoạt động được áp lại tự động khi Resize và khi trang hiện tại thay đổi; đặt Zoom trực tiếp sẽ hủy chế độ fit đang hoạt động (FitMode quay lạipfmNone), đúng với quy ước của trình xem PDF chuẩn- Điều khiển thu phóng - Thu phóng linh hoạt với các helper theo trang
PageZoom,PageWidthZoom,PageHeightZoomvàActualSizeZoom- Màu trang -
PageColortách riêng nền trang PDF đã kết xuất khỏiColorcủa control bao quanh. Mặc định làclWhite, nên các trang PDF giờ kết xuất trắng như giấy bất kể giao diện của ứng dụng chủ. Trình xem nền tối có thể giữ vùng cuộn tối trong khi vẫn để trang PDF thực tế màu trắng hoặc bất kỳ màu nào ứng dụng chọn- Chọn văn bản tương tác - Người dùng cuối có thể kéo để chọn văn bản trên trang PDF, với hit-test tự chuyển giữa chọn và pan: nhấp vào ký tự bắt đầu kéo chọn, nhấp vào khoảng trắng thì pan. Nhấp đúp chọn từ, nhấp ba lần chọn dòng,
Ctrl+Achọn trang (cả hai trang trong chế độ spread),Ctrl+Csao chép dưới dạngCF_UNICODETEXT,Shift+arrowsmở rộng vùng chọn, rê chuột lên văn bản đổi con trỏ sangcrIBeamvà kéo vào mép viewer sẽ tự cuộn trang. CóSelectionColorvàOnSelectionChangemới đã public; thêm các mục publicHasSelection,SelectedText,SelectionCharCount,ClearSelection,SelectAll,CopySelectionToClipboard. Chế độ hiển thị spread chọn trên cả hai trang đang thấy với CR/LF nối giữa. Một popup Copy mặc định khi nhấp chuột phải sẽ tự gắn nếu host chưa gánPopupMenuriêng. Bị khóa bởi cờ v1.17.0AllowUserTextSelectioncho các host kiosk- Ánh xạ tọa độ - Chuyển đổi giữa tọa độ thiết bị của viewer và tọa độ trang PDF với
DeviceToPage/PageToDevice, gồm cả các overload nhậnTRectvà trả vềTPdfRectangle- Chọn văn bản và hit-testing - Xác định các ký tự bên dưới điểm chuột của viewer với
CharacterIndexAtPosvà vẽ tô sáng vùng chọn văn bản quaPaintSelection- Chuột & bàn phím - Hỗ trợ đầy đủ thiết bị nhập với cuộn bằng kéo chuột, phím tắt PgUp / PgDn / Ctrl+Trang chủ / Ctrl+End và điều hướng trang bằng wheel lên / wheel xuống. Ctrl+wheel được dành riêng cho zoom của ứng dụng và bị bộ xử lý điều hướng bỏ qua
- Khóa đầu vào người dùng -
AllowUserPageChangeđiều khiển phím tắt đổi trang,ChangePageOnMouseScrollingđiều khiển việc wheel nhảy trang vàAllowUserTextSelectionđiều khiển đầu vào chọn văn bản bằng chuột / bàn phím. Cả ba đều mặc định là True; đặt False để khóa kiosk, khung xem trước hoặc nhúng chỉ đọc mà không cần kế thừa lại- Lớp phủ kết xuất bất đồng bộ -
AsyncRendering,LoadingTextvàLoadingColorvẽ một chỉ báo nhỏ "Loading..." trên trang đã kết xuất để các ứng dụng dùng worker riêng cho các lần kết xuất dài có một dấu hiệu trực quan nhất quán. Giá trị mặc định giữ nguyên hành vi hiện có.TPdfgiờ tuần tự hóa các lời gọi render và unload trang theo từng instance; ứng dụng vẫn tự quản lý việc dispatch worker và phải tránh sửa tài liệu trong lúc đang render- Safe Link Click Handling -
LinkOptionslà một tập public điều khiển hành vi tự động cho bốn kiểu action liên kết PDF:loAutoGoto(nhảy trang),loAutoOpenURI(ShellExecute),loAutoLaunch(ShellExecute) vàloAutoEmbeddedGoto(dành riêng). Mặc định chỉ bậtloAutoGotovàloAutoOpenURI;loAutoLaunchvàloAutoEmbeddedGotovẫn tắt để một cú nhấp nhầm không thể chạy chương trình tùy ý.OnAnnotationLinkClickvàOnWebLinkClickphát ra trước mọi hành động tự động và cho phép ứng dụng đánh dấu sự kiện là Handled hoặc chuyển hướng nó- Tương tác biểu mẫu - Chỉnh sửa biểu mẫu tương tác ngay trong viewer, cùng các helper selection / Undo / Redo của v1.23.0
- Kiểu hiển thị -
PageShadowSize,PageShadowColorvàPageBorderColorvẽ bóng đổ tùy chọn dưới hình chữ nhật trang và viền một pixel quanh nó;SmoothScrollgiờ animate các lệnh thanh cuộn line/page theo từng đoạn do timer điều khiển trong khi việc kéo thumb vẫn tức thì- Điều hướng thumbnail -
TPdfThumbnailView(unitFPdfThumbnail) hiển thị một thumbnail cho mỗi trang theo từng hàng trong bảng bên cạnh có thể cuộn, với tô sáng khi hover và khi chọn cùng điều hướng nhấp để đi tới trang. Được thiết kế để đặt cạnh TPdfView. Thuộc tính:CurrentPageIndex,ThumbnailWidth,ThumbnailHeight,TextColor,HoverColor,SelectionColor,BorderColor; event:OnPageClick
Nén
- Nén tự động - Khi thuộc tính
Compressedlà True (mặc định), mọi luồng PDF đều được bảo đảm nén FlateDecode khi lưu- Hậu xử lý - Bộ máy nén quét dữ liệu PDF đã lưu và nén mọi luồng chưa nén bằng mức nén tối đa của zlib
- Xây dựng lại bảng tham chiếu - Tự động xây dựng lại bảng xref khi nén luồng làm thay đổi byte offset
- Không tốn thêm chi phí - Nếu mọi luồng đã được nén sẵn, dữ liệu đi qua mà không bị thay đổi
Bảo mật
- Hỗ trợ mật khẩu - Mở tài liệu PDF được bảo vệ bằng mật khẩu
- Quyền - Đọc quyền của tài liệu và người dùng; demo
SecurityAuditkết hợp quyền, tệp đính kèm, JavaScript tài liệu, liên kết URI / Launch, chữ ký, XFA và khả năng sẵn có của V8 thành một bề mặt rủi ro chỉ đọc với các thao tác lưu báo cáo TXT / JSON và sao chép TXT- Gỡ bỏ bảo mật - Lưu tài liệu với phần bảo mật đã bị gỡ bỏ khi được cho phép
In ấn
- Chế độ in - Chọn giữa các chế độ in EMF, chỉ văn bản, PostScript Level 2 / 3, PostScript pass-through, EMF image-mask và Type 42 qua hàm toàn cục
SetPdfPrintMode- Tùy chọn trình xem - Thể hiện ý định của tác giả tài liệu qua
PrintCopies,PrintPageRanges(các phạm vi trang one-based),PrintScalingvàPrintPaperHandling;SetPdfPrintPaperHandlingDevModeánh xạ gợi ý duplex sangDEVMODE.dmDuplexcủa Windows- In N-up - Các demo
PrintPreferencescho Delphi, C++Builder và Lazarus cho thấy bố cục trang N-up (1 / 2 / 4 / 9 trang mỗi tờ) với lọc trang lẻ / chẵn, kết xuất thang xám, viền ô 1 pixel tùy chọn, tùy chọn in của tác giả PDF và ánh xạ ý định duplex quaSetPdfPrintPaperHandlingDevMode
Demo đi kèm
Các cây
Demo\Delphi,Demo\CBuildervàDemo\Lazarusđi kèm những project mẫu có thể chạy để khai thác bề mặt API thực trên cả ba họ IDE. Điểm nổi bật:
- PDFViewer / MultiPageViewer / SplitView - Sử dụng TPdfView từ đầu đến cuối: tải, điều hướng, zoom, xoay, bố cục hai trang, bố cục có xét trang bìa và so sánh PDF song song giữa Delphi / C++Builder / Lazarus với các lệnh đồng bộ; các demo viewer cũng là bài kiểm tra tốc độ thực tế cho PDF nhiều gigabyte, nơi tài liệu 2.x GB có thể có được chế độ xem đầu tiên dùng được gần như ngay lập tức trong khi việc kết xuất trang vẫn phản hồi tốt
- ViewerInteractionLab - Các mẫu tương tác TPdfView tập trung cho Delphi, C++Builder và Lazarus về chế độ hiển thị, chế độ fit, màu trang, xoay, tô sáng tìm kiếm, chọn văn bản, xem trước văn bản đã chọn, thao tác clipboard và phản hồi tọa độ DeviceToPage
- SearchAndSelect - Các mẫu quy trình làm việc tập trung cho Delphi, Lazarus và C++Builder về liệt kê kết quả tìm kiếm toàn trang, điều hướng kết quả trước / sau, nhảy tới kết quả bằng nhấp đúp,
HighlightSearchText, tìm phân biệt hoa thường / nguyên từ,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelectionvà các chế độ hiển thị spread- PreflightReport - Các demo quy trình làm việc cho Delphi, Lazarus và C++Builder cùng một bạn đồng hành console Delphi quanh
FPdfPreflightReportcó thể tái sử dụng, gom kết quả kiểm tra PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R và PDF/VT vào trạng thái, mức ưu tiên, nhóm vấn đề, số lượng theo nhóm, các dòng tóm tắt hành động tiếp theo, khuyến nghị xử lý, bản xem trước text / Markdown / JSON / CSV, báo cáo TXT / HTML / Markdown / JSON / CSV, tạo báo cáo có thể kịch bản hóa, xử lý danh sách hàng loạt và thư mục với định tuyến thư mục báo cáo, tóm tắt tổng hợp TXT / JSON / HTML, manifest hàng CSV, nhúng tệp đính kèm báo cáo tùy chọn và mã thoát để chặn trong CI- ContentExtractionLab - Quy trình kiểm kê nội dung hợp nhất cho Delphi, Lazarus và C++Builder về siêu dữ liệu tài liệu, văn bản trang, đối tượng trang, ảnh, tệp đính kèm, liên kết, chú thích, bookmark và số liệu phông / ký tự với xuất TXT / JSON, chọn danh mục all / none, lưu lại PDF nguồn và các thao tác sao chép báo cáo
- WatermarkStamp - Quy trình Form XObject tái sử dụng cho Delphi, Lazarus và C++Builder để tạo watermark căn giữa, dấu góc và nhãn số trang trên một PDF đích nhiều trang
- CreatePDF - Tạo tệp PDF nhiều trang từ đầu với văn bản, hình ảnh, đường dẫn, bảng và cấu trúc hình mờ; bao gồm tùy chọn 'European Text' để viết văn bản có dấu của Séc / Pháp / Đức / Tây Ban Nha / Bồ Đào Nha / Ba Lan / Thổ Nhĩ Kỳ nhằm xác minh việc chọn phông chữ và xử lý Unicode
- ExtractText / ExtractImages / ContentExtractionLab - Lưu văn bản được trích xuất (bao gồm cả đầu ra được phân tách theo từng trang) hoặc hình ảnh nhúng vào đĩa; hoặc tạo báo cáo kiểm kê nội dung đa danh mục trong một lần chạy
- FormFill - Đọc siêu dữ liệu trường AcroForm, ghi giá trị, tạo lại hiển thị /AP và lưu kết quả ở dạng còn chỉnh sửa được hoặc đã làm phẳng
- FontInformation - Kiểm tra siêu dữ liệu ký tự / phông đánh chỉ mục qua cả TPdf và TPdfView trong Delphi, C++Builder và Lazarus
- MergePDF / SplitPDF - Kết hợp nhiều tệp PDF nguồn (với lựa chọn phạm vi trang cho từng tệp, đường dẫn đầu ra tùy chọn, nhật ký chạy, nút hủy và tóm tắt hoàn tất kết hợp) hoặc chia một tệp PDF thành các tệp đầu ra cho từng trang
- PDFtoJpg / BatchExport - Chuyển PDF sang JPG một lần hoặc theo lô nhiều file trong Delphi, C++Builder và Lazarus với tiến trình tổng thể theo file, tiến trình hiện tại theo trang, đầu vào DPI / chất lượng / mật khẩu và một batch có thể hủy hợp tác dựa trên
IPdfCancellationToken- StandardsLab - Các mẫu quy trình cho Delphi, C++Builder và Lazarus để kiểm tra PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R và PDF/VT, báo cáo vấn đề và các đầu ra lưu theo định hướng tiêu chuẩn
- PrintPDF / PrintPreferences - In PDF chuẩn trong Delphi, C++Builder và Lazarus với xem trước, phạm vi trang, số bản in, collate, tiến độ và hủy (PrintPDF), cùng với bố cục tờ N-up cho Delphi, C++Builder và Lazarus với lọc lẻ / chẵn và tùy chọn in của tác giả PDF (PrintPreferences)
- SecurityAudit - Các mẫu bề mặt rủi ro chỉ đọc cho Delphi, C++Builder và Lazarus về quyền, tệp đính kèm, hành động JavaScript, liên kết URI / Launch, liên kết web, chữ ký, trạng thái XFA, khả năng sẵn có của helper V8 / XFA và báo cáo kiểm tra TXT / JSON
- Attachment - Tạo PDF, thêm / liệt kê / trích xuất / xóa / lưu các tệp đính kèm nhúng với hiển thị subtype MIME
- ImageToPDF - Chuyển đổi hàng loạt ảnh thành một PDF trong Delphi, C++Builder và Lazarus, mỗi ảnh một trang, có xem trước và tiến độ theo từng ảnh
Bộ regression của Delphi, C++Builder và Lazarus bao phủ 147 (Pas) / 123 (C++) trường hợp dùng chung cùng bộ PDF fixture để hành vi luôn khớp từng byte trên cả ba họ IDE
Hỗ trợ nền tảng
- Delphi - Delphi XE5 (RAD Studio XE5) đến Delphi 13.1 Florence (RAD Studio 13.1)
- C++Builder - C++Builder XE5 (RAD Studio XE5) đến C++Builder 13.1 Florence
- Lazarus - Hỗ trợ Free Pascal / Lazarus
- Win32 / Win64 - Cả nền tảng Windows 32-bit và 64-bit