Основні компоненти
- TPdf - Основний компонент для роботи з PDF-документами для відкриття, навігації, вилучення тексту та редагування PDF-документів
- TPdfView - Візуальний компонент для показу та взаємодії зі сторінками PDF
- TPdfReadingSession - Компонент оркестрації озвучування для рушіїв TTS хоста та відстеження слів у TPdfView
- TPdfThumbnailView - Прокручувана бічна панель мініатюр для навігації сторінками
Операції з документами
- Завантаження документів - Завантажує PDF-файли з диска, потоків пам'яті, масивів байтів або адаптерів TStream за запитом через
LoadCustomDocument. PDFium читає блоки за потреби, тому документи на кілька ГБ і віддалені або прив'язані до бази даних джерела не потребують попередньої копії в пам'яті- Захист паролем - Відкриває PDF-документи, захищені паролем, і показує ефективні
UserPermissionsдля автентифікованого сеансу- Створення документів - Створює нові PDF-документи з нуля через
CreateDocument,AddPage,AddText,AddImage,AddPicture,AddJpegImageіCreatePath- Збереження документів - Зберігає змінені документи з різними параметрами (інкрементально, без захисту) і явними цільовими версіями PDF від PDF 1.0 до PDF 1.7
- Вивід PDF/A-1b -
SaveAsPdfA/SaveAsPdfAToStreamпостобробляють базове збереження інкрементальним оновленням, що додає потік метаданих XMP, sRGB ICC OutputIntent і оновлений каталог документа, щоб результат відповідав PDF/A-1b. Користувацькі ICC-профілі підтримуються черезTPdfASaveOptions.IccProfileData- Перевірка PDF/A -
ValidatePdfAі властивість лише для читанняPdfAConformanceсканують відкритий документ на наявність маркерів XMPpdfaid, OutputIntent із вбудованим ICC, наявності шифрування та повідомляють рівень відповідності (pac1a,pac1b,pac2b,pac3b,pacNoneабоpacUnknown) разом зі списком записівTPdfAValidationIssue, що описують кожну знайдену проблему- Перевірка відповідності версії PDF - Коли SaveAs націлюється на PDF від 1.0 до 1.7, записувач відхиляє будь-який запис словника, фільтр, підтип анотації, тип дії, шрифт, колірний простір або параметр шифрування, доданий після вибраної цільової версії (наприклад, JBIG2Decode, MarkInfo, OutputIntents, AES / AES-256, анотації Polygon / Caret / Watermark / Redact, дії JavaScript / Trans / SetState)
- Стиснення потоків - Автоматичне стиснення FlateDecode гарантує, що всі потоки PDF максимально стиснені під час збереження; встановіть
Compressed := False, щоб вимкнути це для налагоджувальних конвеєрів- Об’єднання документів - Імпортує сторінки з інших PDF-документів
- Імпорт вибраної підмножини сторінок -
ImportPagesByIndexкопіює явний масив індексів з нумерацією від 0 із вихідного документа, використовуючи InsertAt = 0 для вставлення перед сторінкою 1 або InsertAt = PageCount для додавання в кінець. Передайте порожній масив індексів, щоб імпортувати кожну вихідну сторінку- Компонування N-у-1 -
ImportNPagesToOneповертає новийTPdf, сторінки якого є композиціями NumX×NumY зі сторінок вихідного документа, розміром у PDF user units (1 unit = 1/72 in)- Перевпорядкування сторінок -
MovePagesперевпорядковує сторінки на місці, використовуючи масив індексів з нумерацією від 0 і цільовий індекс для першої переміщеної сторінки- Повторне використання сторінки як Form XObject -
CreateXObjectFromPageстворює повторно використовуваний дескрипторTPdfXObjectз будь-якої сторінки іншого документа;InsertFormObjectFromXObjectвставляє ОДНУ копію загорнутої сторінки в поточну сторінку. Ідеально підходить для водяних знаків, накладань шаблонів і сценаріїв "штампувати одну сторінку на багато". Об’єкт цільової сторінки можна позиціонувати, масштабувати й повертати черезFPDFPageObj_SetMatrixі допоміжні засобиTPdfMatrix- Керування сторінками - Додає, видаляє та змінює окремі сторінки;
AddPage(0, ...)вставляє саму першу сторінку й одразу активує її- Сторінкові поля - Читає й записує MediaBox, CropBox, BleedBox, TrimBox і ArtBox на поточній сторінці
- Мова каталогу - Читає й записує мову документа, що зберігається в записі каталогу /Lang
- Ідентифікатори Trailer - Читає постійні та змінні записи trailer /ID як двійкові байти
- Дії JavaScript документа - Перелічує імена дій дерева імен JavaScript на рівні документа та скрипти
- Дерево структури Tagged PDF - Перевіряє елементи логічної структури, текст доступності, мову, ідентифікатори marked-content і ієрархію для сторінок Tagged PDF
- Параметри переглядача - Читає
PrintCopies,PrintPageRanges,PrintScalingіPrintPaperHandlingзі словника viewer-preference документа; збережені PDF за замовчуванням відкриваються першою сторінкою з дією Fit Height
Операції з текстом
- Витяг тексту - Витягує текст зі сторінок PDF із точністю на рівні символів через властивості
Text,TextInRectangle, індексованіCharacter,CharacterRectangleіCharacterOrigin- Одиниці читання на рівні речення - TPdf.ReadingUnits, TPdf.DocumentReadingUnits, TPdfView.ReadingUnits і BuildReadingUnits надають записи TPdfReadingUnit розміру речення для синхронізованого прослуховування з TTS
- Підсвічування читання на рівні слова -
TPdf.PageWordBoxes,TPdfView.PageWordBoxes,BuildWordBoxes,WordBoxIndexAtCharIndex,TPdfView.SelectWordBox,TPdfView.SelectWordSpan,TPdfView.TrackReadingWordAt,TPdfView.SetReadingWord,TPdfView.ClearReadingWord,ReadingWordColor,ReadingWordFollowВідображає зсув символу сторінки на відповідний TPdfWordBox, підсвічує його та повертає індекс слова; Підсвічує один TPdfWordBox як поточне вимовлюване слово в TPdfView; Очищує поточну накладку курсора читання на рівні слова в TPdfView; Керує кольором накладки, що використовується для поточного курсора читання на рівні слова; Керує тим, чи прокручує TPdfView поточне вимовлюване слово у видиму область під час стеження за читанням- Оркестрація сесії озвучування -
TPdfReadingSession,TPdfSpokenText,SpokenTextAppend,BuildSpokenTextFromWords,SpokenToPageCharіEstimateSpokenWordIndexкоординують рушії TTS хоста, озвучені фрагменти, callback-и позиції слів, оцінений темп, обробку pause/resume і оновлення курсора слів TPdfView- Пошук тексту - Знаходить текст із параметрами урахування регістру, цілого слова й послідовного пошуку через
FindFirst,FindNextіFindPrevious- Накладка підсвічування пошуку -
TPdfView.HighlightSearchTextсканує поточну сторінку перегляду та малює справжню альфа-змішану накладкуHighlightColorнад кожним збігом під час кожного перерисування, повертаючи кількість збігів.ClearHighlightприбирає накладку; перехід на іншу сторінку очищує її автоматично, бо збіги прив’язані до сторінки.HighlightColorза замовчуванням маєclYellowі є опублікованою, щоб програми могли налаштовувати тему- Властивості символів - Доступ до розміру шрифту, насиченості, кута та позиціонування окремих символів через індексовані властивості
CharacterAngle,CharacterFontSize,CharacterFontWeight,CharacterGenerated,CharacterIsHyphenіCharacterMapError- Підтримка європейських символів -
AddTextавтоматично завантажує й кешує відповідний системний шрифт TrueType перед створенням текстового об’єкта, тож символи з наголосами для Czech, French, German, Spanish, Portuguese, Polish і Turkish, які вбудовані стандартні шрифти PDFium не можуть відобразити, тепер рендеряться правильно без будь-яких змін коду- Додавання тексту - Додає новий текст на сторінки PDF із користувацькими шрифтами, кольорами, прозорістю та поворотом
- Розміщення текстового об’єкта - Встановлює позиції для кожного символу в наявних текстових об’єктах через
SetTextPositionsіTPdfSingleArray- Відомості про шрифти - Отримує властивості шрифту, зокрема назву сімейства, стан вбудовування, кут нахилу, ascent / descent і сирі дані шрифту для кожного об’єкта сторінки
Підтримка анотацій
- Типи анотацій - Підтримка text, link, highlight, underline, strikeout і багатьох інших типів анотацій
- Створення анотацій - Створює нові анотації програмно
- Редагування анотацій - Змінює наявні властивості анотацій, зокрема колір, прозорість і вміст
- Анотації посилань - Обробляє внутрішні та зовнішні посилання з підтримкою дій
Підтримка форм
- Доступ до заповнення форм голосом -
FocusedFormFieldValue,FocusedFormFieldNameіFocusedFormFieldDetailsуTPdfтаTPdfViewнадають поточне логічне значення поля форми, назву таTPdfFormFieldInfoдля заповнення форми з клавіатури або голосом- Типи форм - Підтримка форм AcroForm і XFA
- Заповнення форм - Інтерактивне заповнення форм із підтримкою JavaScript
- Вибір DLL V8 - Set
EnableV8Enginebefore loading to usepdfium.v8.dllfrom the matchingDLLs\Win32orDLLs\Win64folder and query V8/XFA helper availability viaV8FeaturesAvailable,XfaBStrHelpersAvailable, andGetRecommendedV8Flags- Доступ до полів - Читати й записувати значення полів форми за індексом або позицією
- Відомості про поля - Надає доступ до типу поля, прапорців, назви та інших властивостей
- Прапорці полів - Оновлює прапорці полів AcroForm за індексом або позицією через
SetFormFieldFlags/SetFormFieldFlagsAt, включно з прапорцями лише для читання, обов’язкового, пароля та множинного вибору- Сплющення форм -
GenerateFormAppearancesповторно генерує потік вигляду /AP для кожного віджета форми на кожній сторінці, аFlattenPage/FlattenAllPagesвбудовують анотації та поля форми у статичний вміст сторінки, який не можна редагувати- Виділення тексту віджета форми та Undo / Redo - На сфокусованому віджеті AcroForm перегляд надає
GetSelectedFormText(поточний виділений текст),SelectAllFormText(виділити кожен символ) іFormUndo/FormRedo/FormCanUndo/FormCanRedo(керування історією редагування PDFium для кожного віджета). Усі шість методів безпечно завершаються, коли перегляд неактивний або жоден віджет не сфокусовано
Операції зі зображеннями
- Витяг зображень - Витягує растри зі сторінок PDF через індексовану властивість
Bitmap; перегляньтеBitmapCount, щоб зберегти кожне зображення на диск- Вставлення JPEG -
AddJpegImageприймаєTStreamіз сирими байтами JPEG і вбудовує зображення як/DCTDecodeXObject без повторного кодування- Підтримка зображень -
AddPictureприймає об’єктTPictureз автоматичним перетворенням формату через зареєстровані графічні класи VCL/LCL- Пряме вставлення зображень -
AddImage(FileName)розпізнає будь-який формат, зареєстрований у графічних модулях VCL або LCL (BMP, PNG через PngImage, JPG, ...) і використовує той самий конвеєрAddPicture.AddImage(TBitmap)пропускає проміжнийTPicture, що спрощує код, який уже маєTBitmapз рендерингу або пакетного створення- ICC-профіль зображення - Об’єкти сторінки зображення надають вбудовані дані ICC-профілю, коли вони наявні (обгортка для
FPDFImageObj_GetIccProfileDataDecoded)- Створення мініатюр - Генерує растрові зображення мініатюр поточної сторінки через властивість
Thumbnailабо відтворює будь-яку сторінку з нумерацією від 1 черезTPdf.RenderPageThumbnailбез зміниPageNumber
Допоміжні модулі
- Асинхронна інфраструктура -
FPdfAsyncнадаєIPdfCancellationToken/IPdfCancellationTokenSourceдля кооперативної семантики скасування з UI, повторно використовуваний синглтонPdfNoCancellationTokenі легкий допоміжний засібTPdfFuture<T>, який запускає робітник у фоновому потоці та повертає оболонкуTPdfFutureResult<T>до головного потоку, розрізняючи успіх, скасування та збій- Адаптер потоку -
TPdfStreamAdapterз’єднує PascalTStreamіз callback-амиFPDF_FILEACCESSPDFium, щобLoadCustomDocumentчитав блоки на вимогу замість буферизувати весь PDF у пам’яті- Композиція матриць -
FPdfMatrixобгортаєFS_MATRIXPDFium через OO API дляTranslate,Scale,Rotate,HorizontalFlip,VerticalFlip,CentralFlip,SkewіMultiply.Multiplyзнімає копію шести елементів матриці перед обчисленням нових значень рядка, уникаючи пастки альтернативної реалізації Pascal, де попередні елементи перезаписуються під час того самого виклику та дають неправильні композиції- Поетапне відтворення з можливістю скасування -
TPdf.RenderPageProgressiveкерує цикломFPDF_RenderPageBitmap_Start+RenderPage_ContinuePDFium і опитуєIPdfCancellationTokenміж ітераціями через callbackIFSDK_PAUSE, тож довгі високодетальні рендери можуть перерватися посеред сторінки замість блокування до завершення. ПовертаєTPdfProgressiveStatusзі значеннямprsDone,prsCancelledабоprsFailed- Шлях відтворення без копіювання -
RenderPage/RenderTile/RenderPageProgressiveзаписують вихід PDFium безпосередньо в DIB-буфер цільовогоTBitmapзамість проміжного буфера, заощаджуючи одну копію пам’яті наwidth × height × 4байти для кожного рендера — це особливо помітно на високому DPI (панелі мініатюр, експорт друкарської якості, пакетний експорт). Запасний шлях по рядках збережено, коли цільовий DIB не можна безпечно обгорнути- Перетворення растрових зображень для слабкого зору - InvertPdfBitmap, GrayscalePdfBitmap і DuotonePdfBitmap перетворюють відтворені 32-бітні пікселі TBitmap на місці для інвертованих, сіроградаційних або двоколірних режимів слабкого зору
- Живий перегляд для слабкого зору -
TPdfView.OptionsпідтримуєreInvertіreNightDuotone, аNightDuotoneInkтаNightDuotonePaperкерують живою нічною палітрою перед малюванням накладок
Операції малювання
- Малювання шляхів - Створює контури з лініями, кривими Безьє та замкненими фігурами
- Видалення об’єктів - Видаляє об’єкти сторінки та повторно створює вміст сторінки з
TPdfабоTPdfView- Заливка та обведення - Налаштовує режим заливки, кольори, прозорість і властивості штриха
- Режими змішування - Підтримує різні режими змішування PDF
- Стилі ліній - Налаштовує кінці ліній, з’єднання ліній і товщину штриха
Цифрові підписи
- Виявлення підписів - Виявляє та перелічує цифрові підписи в PDF-документах
- Відомості про підпис - Надає доступ до вмісту підпису, діапазону байтів, підфільтра, причини та часу
- Дозволи MDP - Запитує дозволи на виявлення та запобігання зміні документа
Підтримка вкладень
- Доступ до вкладень - Читає, створює, змінює та видаляє вбудовані файлові вкладення
- Назви вкладень - Надає доступ до імен файлів вкладень
- Типи вкладень - Читає значення MIME subtype вбудованого файла, коли вони наявні
- Bookmarks - Навігація закладками документа з ієрархічною підтримкою через масив
Bookmarks,BookmarkChildren,HasBookmarkChildrenі допоміжні засоби обходуBookmarkFrom- Іменовані призначення - Надає доступ до іменованих призначень за індексом або назвою через
Destination,DestinationByNameіDestinationCount- Мітки сторінок - Отримує мітки сторінок для кожної сторінки через
PageLabel; корисно, коли документи використовують римські цифри для передтитульних матеріалів- Веб-посилання - Виявляє та відкриває вебпосилання на сторінках через
WebLink,WebLinkCountіTPdfView.WebLinkAtPos- Анотації посилань - Надає доступ до анотацій посилань з інформацією про дію та призначення через
LinkAnnotation,LinkAnnotationCountіTPdfView.LinkAnnotationAtPos- Безпечна обробка натискання посилань -
TPdfViewвикликає подіїOnAnnotationLinkClick/OnWebLinkClickперед автоматичною обробкою goto / URI, а дії запуску вимкнено типово. Виявлення натискання посилань працює лише тоді, коли жест є саме клацанням, а не перетягуванням, використовуючи свіжу точку прив’язки MouseDown, щоб жести панорамування йшли тим самим шляхом прокрутки без змін
Відтворення
- Високоякісне відтворення - Відтворює сторінки в device context, bitmap або tile через
RenderPage/RenderTileз прямим записом без копіювання в цільовий DIB-буфер- Поетапне відтворення з можливістю скасування -
RenderPageProgressiveкерує циклом progressive PDFium і опитуєIPdfCancellationTokenміж ітераціями, повертаючиprsDone,prsCancelledабоprsFailed. Растр зберігає частково виконану роботу, якщо процес скасовано- Параметри відтворення - Оптимізація тексту LCD (
reLcd), анотації (reAnnotations), сіроградаційний режим і прапорці режиму друку- Гачки Skia - Низькорівневі зв’язування
FPDF_RenderPageSkiaіFPDF_FFLDrawSkiaдоступні, коли викликач надає зовнішній SkCanvas (залежить від експортів DLL у комплекті)- Вибір режиму друку - Встановлює режими друку PDFium EMF, text-only, PostScript, pass-through, image-mask і Type 42 через
SetPdfPrintModeзTPdfPrintMode- Асинхронна накладка - TPdfView може показувати необов’язкову накладку завантаження, поки керовані застосунком робітники відтворюють окремі екземпляри TPdf
- Поворот сторінки - Підтримка обертання на 0, 90, 180 і 270 градусів (
ro0,ro90,ro180,ro270)- Виявлення прозорості - Властивість
Transparentповідомляє, чи має будь-який об’єкт на поточній сторінці прозорість, включно з режимами змішування та частковим альфа-каналом
Перегляд (TPdfView)
- Режими відображення -
dmSingleContinuous,dmTwoPageContinuousіdmTwoPageContinuousWithCover(обкладинка стоїть окремо, а далі йдуть розвороти з двох сторінок). Допоміжний засіб рівня модуляComputeSpreadPagesвідкриває математику сторінок розвороту без створення переглядача- Режим підгонки -
FitModeвибирає, як сторінка розміщується у вікні перегляду:pfmNone(ручний масштаб),pfmActualSize(100%),pfmFitPage(уся сторінка вміщується у вікні) іpfmFitWidth(ширина сторінки відповідає ширині вікна). Активний режим підгонки автоматично застосовується повторно під час Resize і коли змінюється поточна сторінка; встановлення Zoom напряму скасовує активний режим підгонки (FitMode повертається доpfmNone), що відповідає стандартній конвенції PDF-переглядачів- Керування масштабом - Змінне масштабування через
PageZoom,PageWidthZoom,PageHeightZoomіActualSizeZoomдля кожної сторінки- Колір сторінки -
PageColorвідокремлює фон відтвореної сторінки PDF відColorнавколишнього елемента керування. Типовим значенням єclWhite, тож сторінки PDF тепер відтворюються як папір-білі незалежно від теми хост-застосунку. Переглядачі в темному режимі можуть лишати темною область прокрутки, зберігаючи саму сторінку PDF білою або будь-якого вибраного застосунком кольору- Інтерактивне виділення тексту - Користувач може перетягуванням виділяти текст на сторінках PDF, а hit-test автоматично перемикається між виділенням і панорамуванням: клацання по символу починає перетягування виділення, клацання по пробільній області панорамніє. Подвійне клацання виділяє слово, потрійне — рядок,
Ctrl+Aвиділяє сторінку (обидві сторінки в режимі розвороту),Ctrl+Cкопіює якCF_UNICODETEXT,Shift+стрілкирозширюють виділення, наведення на текст перемикає курсор наcrIBeam, а перетягування до краю переглядача автоматично прокручує сторінку. Нові опублікованіSelectionColorіOnSelectionChange; нові публічніHasSelection,SelectedText,SelectionCharCount,ClearSelection,SelectAll,CopySelectionToClipboard. Режими відображення розвороту виділяють обидві видимі сторінки з об’єднанням через CR/LF. Типове контекстне меню Copy з правим клацанням автоматично додається, коли хост не призначив власнийPopupMenu. Діє прапорецьAllowUserTextSelectionз v1.17.0 для кіоск-хостів- Відображення координат - Convert between viewer device coordinates and PDF page coordinates with
DeviceToPage/PageToDevice, including overloads that take aTRectand return aTPdfRectangle- Виділення тексту та hit-test - Resolve characters under viewer points with
CharacterIndexAtPosand paint text selection highlights viaPaintSelection- Миша та клавіатура - Повна підтримка пристроїв введення з прокручуванням перетягуванням мишею, комбінаціями PgUp / PgDn / Ctrl+Home / Ctrl+End і навігацією сторінками колесом угору / униз. Ctrl+колесо зарезервовано для масштабування застосунку і навігатор його пропускає
- Блокування введення користувача -
AllowUserPageChangeкерує клавішними скороченнями переходу між сторінками,ChangePageOnMouseScrollingкерує переходами сторінок колесом, аAllowUserTextSelectionкерує виділенням тексту мишею та клавіатурою. Усі три параметри типово мають значення True; встановіть False, щоб заблокувати кіоски, панелі попереднього перегляду або вбудовування лише для читання без перевизначення класу- Асинхронна накладка рендерингу -
AsyncRendering,LoadingTextіLoadingColorмалюють невеликий індикатор "Loading..." поверх відтвореної сторінки, тож застосунки з власним worker для тривалого рендерингу отримують узгоджений візуальний сигнал. Типові значення зберігають наявну поведінку.TPdfтепер послідовно виконує виклики рендерингу та вивантаження сторінки для кожного екземпляра; застосунки все ще самі керують worker dispatch і не повинні змінювати документ, коли рендер уже триває- Безпечна обробка натискання посилань -
LinkOptionsє опублікованим набором, що керує автоматичною поведінкою для чотирьох типів дій PDF-посилань:loAutoGoto(перехід на сторінку),loAutoOpenURI(ShellExecute),loAutoLaunch(ShellExecute) іloAutoEmbeddedGoto(зарезервовано). Типово ввімкнено лишеloAutoGotoіloAutoOpenURI;loAutoLaunchтаloAutoEmbeddedGotoзалишаються вимкненими, щоб випадкове натискання не могло запустити довільну програму.OnAnnotationLinkClickіOnWebLinkClickспрацьовують перед будь-якою автоматичною дією та дозволяють застосунку позначити подію як Handled або перенаправити її.- Взаємодія з формами - Інтерактивне редагування форм у переглядачі, а також помічники виділення, Undo і Redo з v1.23.0
- Візуальне оформлення -
PageShadowSize,PageShadowColorіPageBorderColorмалюють необов’язкову тінь під прямокутником сторінки та однопіксельну рамку навколо нього;SmoothScrollтепер анімує команди смуги прокрутки для рядків і сторінок у сегментах за таймером, тоді як перетягування повзунка лишається миттєвим- Навігація мініатюр -
TPdfThumbnailView(модульFPdfThumbnail) показує по одній мініатюрі сторінки в кожному рядку в прокручуваній бічній панелі з підсвічуванням наведення та виділенням, а також навігацією через клацання. Призначено для розміщення поруч ізTPdfView. Властивості:CurrentPageIndex,ThumbnailWidth,ThumbnailHeight,TextColor,HoverColor,SelectionColor,BorderColor; подія:OnPageClick.
Стиснення
- Автоматичне стиснення - Коли властивість
Compressedмає значення True (типово), усі потоки PDF під час збереження гарантуються як стиснені FlateDecode- Післяобробка - Рушій стиснення сканує збережені дані PDF і стискає будь-які нестиснені потоки з максимальною компресією zlib
- Перебудова перехресних посилань - Автоматично перебудовує таблицю xref, коли стиснення потоку змінює байтові зсуви
- Нульові накладні витрати - Якщо всі потоки вже стиснені, дані проходять без змін
Безпека
- Підтримка пароля - Відкриває PDF-документи, захищені паролем
- Permissions - Читає дозволи документа і користувача; демо
SecurityAuditпоєднує дозволи, вкладення, document JavaScript, URI / Launch-посилання, підписи, XFA і доступність V8 у поверхню ризику лише для читання з діями збереження звіту TXT / JSON та копіювання TXT- Видалення захисту - Зберігає документи без захисту, коли це дозволено
Друк
- Режими друку - Дозволяє вибирати між EMF, text-only, PostScript Level 2 / 3, PostScript pass-through, EMF image-mask і Type 42 через глобальну функцію
SetPdfPrintMode- Друк N-up - Демонстрації Delphi, C++Builder і Lazarus
PrintPreferencesпоказують компонування аркушів N-up (1 / 2 / 4 / 9 сторінок на аркуш) із фільтрацією непарних / парних сторінок, відтворенням у сірому, необов’язковими 1-піксельними межами комірок, параметрами друку PDF автора та відображенням наміру двобічного друку черезSetPdfPrintPaperHandlingDevMode- Параметри переглядача - Показує намір автора документа через
PrintCopies,PrintPageRanges(діапазони сторінок з нумерацією від 1),PrintScalingіPrintPaperHandling;SetPdfPrintPaperHandlingDevModeвідображає підказку двобічного друку в WindowsDEVMODE.dmDuplex
Поставні демо
Дерева
Demo\Delphi,Demo\CBuilderіDemo\Lazarusпостачаються з придатними до запуску зразками проєктів, що перевіряють живу поверхню API в усіх трьох сімействах IDE. Основні моменти:
- PDFViewer / MultiPageViewer / SplitView - Наскрізне використання TPdfView: завантаження, навігація, масштабування, обертання, двосторінковий розворот, макети з урахуванням обкладинки та паралельне порівняння PDF у Delphi / C++Builder / Lazarus із синхронізованими командами; демонстрації переглядача також є практичними тестами швидкості для багатогігабайтних PDF-файлів, де документи об'ємом 2,x ГБ можуть майже відразу досягати придатного першого перегляду, а рендеринг сторінки залишається чуйним
- ViewerInteractionLab - Сфокусовані зразки взаємодії з TPdfView для Delphi, C++Builder та Lazarus для режимів відображення, режимів підгонки, кольорів сторінок, обертання, виділення пошуку, виділення тексту, попереднього перегляду виділеного тексту, дій буфера обміну та зворотного зв'язку за координатами DeviceToPage
- SearchAndSelect - Сфокусовані зразки робочих процесів для Delphi, Lazarus та C++Builder для списку результатів пошуку на всіх сторінках, навігації до попереднього / наступного збігу, переходу до результату подвійним натисканням,
HighlightSearchText, пошуку з урахуванням регістру / цілого слова,AllowUserTextSelection,SelectedText,SelectAll,CopySelectionToClipboard,ClearSelectionта режимів відображення розвороту- PreflightReport - демонстрації робочих процесів для Delphi, Lazarus та C++Builder плюс консольний додаток Delphi навколо багаторазового
FPdfPreflightReport, що збирає результати перевірки PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R та PDF/VT у статус, пріоритет, категорію проблеми, кількість проблем у категорії, рядки підсумків наступної дії, рекомендації щодо проблем, попередній перегляд тексту / Markdown / JSON / CSV, звіти у форматах TXT / HTML / Markdown / JSON / CSV, створення звітів за допомогою сценаріїв, пакетну обробку списків і каталогів із маршрутизацією каталогів звітів, зведені підсумки у форматах TXT / JSON / HTML, маніфести рядків CSV, необов'язкове вбудовування вкладень звітів і коди виходу для шлюзування CI- ContentExtractionLab - Уніфікований робочий процес інвентаризації вмісту для Delphi, Lazarus та C++Builder для метаданих документа, тексту сторінки, об'єктів сторінки, зображень, вкладень, посилань, анотацій, закладок і метрик шрифтів / символів з експортом у формати TXT / JSON, вибором категорій "усі / жодні", збереженням вихідного PDF-файлу та діями копіювання звіту
- WatermarkStamp - Робочий процес із багаторазовим використанням Form XObject для Delphi, Lazarus та C++Builder для відцентрованих водяних знаків, кутових штампів і міток номерів сторінок у цільовому багатосторінковому PDF-файлі
- CreatePDF - Створення багатосторінкового PDF-файлу з нуля з текстом, зображеннями, контурами, таблицями та компонуванням водяних знаків; включає опцію 'European Text' для запису тексту з акцентами чеською / французькою / німецькою / іспанською / португальською / польською / турецькою мовами для перевірки вибору шрифту та обробки Unicode
- ExtractText / ExtractImages / ContentExtractionLab - Збереження витягнутого тексту (включно з посторінково розділеним виводом) або вбудованих зображень на диск; або генерація багатокатегорійного звіту про інвентаризацію вмісту за один прохід
- FormFill - Читає метадані полів AcroForm, записує значення, відтворює /AP appearances і зберігає або редагований, або сплющений результат
- FontProperties - Перевіряйте метадані індексованого символу/шрифту за допомогою TPdf та TPdfView у Delphi, C++Builder та Lazarus
- MergePDF / SplitPDF - Об'єднання кількох вихідних PDF-файлів (з вибором діапазону сторінок для кожного файлу, необов'язковим шляхом виводу, журналом виконання, кнопкою скасування та підсумком завершення об'єднання) або розділення одного PDF-файлу на посторінкові файли виводу
- PDFtoJpg / BatchExport - Одноразове або пакетне перетворення кількох файлів PDF у JPG для Delphi, C++Builder та Lazarus із загальним прогресом для кожного файлу, поточним прогресом для кожної сторінки, введенням DPI / якості / пароля та пакетом, що кооперативно скасовується, який підтримується
IPdfCancellationToken- StandardsLab - Зразки робочих процесів для Delphi, C++Builder та Lazarus для валідації PDF/A, PDF/UA, PDF/E, PDF/X, PDF/R та PDF/VT, звітування про проблеми та збереження виводу, орієнтованого на стандарти
- PrintPDF / PrintPreferences - Стандартний друк PDF для Delphi, C++Builder та Lazarus із попереднім переглядом, діапазонами сторінок, копіями, сортуванням, прогресом і скасуванням (PrintPDF), а також композицією аркушів N-up для Delphi, C++Builder та Lazarus із фільтруванням парних/непарних сторінок та налаштуваннями друку автора PDF (PrintPreferences)
- SecurityAudit - Зразки поверхні ризиків лише для читання для Delphi, C++Builder та Lazarus щодо дозволів, вкладень, дій JavaScript, посилань URI / Launch, вебпосилань, підписів, стану XFA, доступності допоміжних функцій V8 / XFA та аудиторських звітів у форматах TXT / JSON
- Attachment - Створюйте PDF-файли, додавайте / створюйте список / витягуйте / видаляйте / зберігайте вбудовані вкладення файлів з відображенням підтипу MIME
- ImageToPDF - Пакетне перетворення зображень для Delphi, C++Builder та Lazarus в один PDF, одне зображення на сторінку, з попереднім переглядом і прогресом для кожного зображення
Набори тестів регресії для Delphi, C++Builder та Lazarus охоплюють 147 (Pas) / 123 (C++) випадків, які спільно використовують ті самі тестові файли PDF, тому поведінка залишається вирівняною за байтами в усіх трьох сімействах 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 - Платформи Windows як 32-розрядні, так і 64-розрядні