PDFiumVCL リリースノート
PDFiumVCL のユーザー向け機能、修正、ビューア改善、ドキュメント生成、PDF/A 出力、レンダリング、ドキュメント更新のバージョン履歴です。
Version 1.39.52
変更 (Changed)
Demo\Lazarus\CreatePDFを強化し、入門サンプルが vector paths、table content、embedded image、text annotation、rotated text、より分かりやすい document-building walkthrough を含む 2 ページ PDF を生成するようになりました。- すべての Delphi、C++Builder、Lazarus demo folder に整った
README.htmlページを追加し、残っていた text-only demo README をブラウザーで読めるガイドに置き換えました。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.52 に更新しました。
Version 1.39.51
Demo\Delphi\PreflightReportCliの batch summary を強化し、selected standards 全体の Pass、Action required、Review results に対する standard status totals を追加しました。- TXT / HTML / JSON / CSV summary の per-file rows には action-required count と review count が含まれるようになり、各 generated report を開かずに CI artifacts を確認しやすくなりました。
TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.51 に更新しました。
Version 1.39.50
Demo\Delphi\PreflightReportCliの directory batch mode を強化し、batchdir=folderは検出した PDF paths を収集してソートした後、安定した順序で reports を生成するようになりました。- Recursive directory scans は再現可能な report order と summary rows を生成し、明示的な
batch=list.txtprocessing は引き続き list file order を保持します。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.50 に更新しました。
Version 1.39.49
Demo\Delphi\PreflightReportCliの batch summary を強化し、source kind、source path、recursive state、output directory、report format、selected standards、failon=mode などの run settings を記録するようにしました。- JSON summary には
runobject を追加し、TXT と HTML summary には run settings section を表示し、CSV rows には spreadsheet と CI pipelines 向けに同じ audit columns を繰り返し出力します。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.49 に更新しました。
Version 1.39.48
Demo\Delphi\PreflightReportCliの batch output naming を強化し、同じoutdir=を共有する duplicate input file names が generated reports を互いに上書きしないようにしました。- Batch runs は同じ実行内で generated report path が既に割り当て済みの場合に
-2、-3以降の suffixes を追加し、summaries は最終的な collision-safe report path を記録します。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.48 に更新しました。
Version 1.39.47
Demo\Delphi\PreflightReportCliの batch summaries を強化し、TXT と JSON の出力に total files、processed files、failed files、issues、failon=matches の aggregate totals を含めるようにしました。- CSV summaries は既存 consumers 向けに純粋な row table のままとし、HTML summaries は dashboard header で同じ aggregate metrics を引き続き表示します。
TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.47 に更新しました。
Version 1.39.46
Demo\Delphi\PreflightReportCliにsummary=batch.html/.htmを追加し、batch runs が TXT / CSV / JSON manifests に加えて browser-readable dashboard を出力できるようにしました。- HTML summaries は total、processed、failed、issue、
failon=match metrics を表示し、各 input を report links、status、counts、error text とともに一覧します。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.46 に更新しました。
Version 1.39.45
Demo\Delphi\PreflightReportCliにbatchdir=folderとrecursiveを追加し、scripts が list file を先に作成せずに PDF folders を直接スキャンできるようにしました。- Directory batch mode は list-based batch mode の
outdir=、summary=、standards=、failon=の動作を再利用します。non-recursive は選択した folder のみをスキャンし、recursiveは subfolders を含めます。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.45 に更新しました。
Version 1.39.44
Demo\Delphi\PreflightReportCliにsummary=batch.csv|json|txtを追加し、batch runs が per-file reports の横に machine-readable manifest を出力できるようにしました。- Batch summaries には、各 input path、report path、status、standard count、passed count、issue count、
failon=match state、error text が含まれ、CI jobs と外部 scripts で利用できます。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.44 に更新しました。
Version 1.39.43
Demo\Delphi\PreflightReportCliにbatch=list.txtとoutdir=reportsを追加し、scripts が 1 回の実行で PDF files の一覧から preflight reports を生成できるようにしました。- Batch mode は空行と
#コメント行をスキップし、入力 PDF から各.preflight.<ext>report name を派生し、per-file errors の後も続行して、戻る前に processed と failed files を集計します。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.43 に更新しました。
Version 1.39.42
Demo\Delphi\PreflightReportCliにfailon=none|issues|action|reviewを追加し、CI jobs が生成された preflight results を決定的な exit codes に変換できるようにしました。- CLI は report file と optional attached-report PDF の生成後、選択された
failon=rule に一致した場合に exit code 2 を返します。runtime errors は引き続き exit code 1 を返します。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.42 に更新しました。
Version 1.39.41
Demo\Delphi\PreflightReportCliにattach=output.pdfを追加し、生成した preflight report を新しい PDF copy の document-level attachment として埋め込めるようにしました。- CLI は生成した TXT / HTML / Markdown / JSON / CSV report file をディスクに保持し、元の input PDF path への添付を拒否することで、誤った上書きリスクを低減します。
TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.41 に更新しました。
Version 1.39.40
Demo\Delphi\PreflightReportCliを追加しました。viewer を開かずに scriptable なFPdfPreflightReport生成を行う Delphi console companion です。- CLI は no-argument sample creation に加え、input / output arguments、optional password、
text/html/md/json/csvoutput formats、PDF/A、PDF/UA、PDF/E、PDF/X、PDF/R、PDF/VT 向けのstandards=filtering をサポートします。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.40 に更新しました。
Version 1.39.39
FPdfPreflightReportにTPdfPreflightReport.ToMarkdownとSaveMarkdownToFileを追加し、preflight reports を issue tracker に適した Markdown としてエクスポートできるようにしました。- Delphi、C++Builder、Lazarus の
PreflightReportサンプルに、既存の TXT / HTML / JSON / CSV workflow と並ぶ Markdown preview switching と Save MD actions を追加しました。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.39 を報告するようにしました。
Version 1.39.38
- Delphi、C++Builder、Lazarus の
SecurityAuditサンプルに、既存の TXT save / copy workflow と並ぶ JSON audit report export を追加しました。 - JSON report には
format、generatedAt、summary、findingCount、および severity、area、detail フィールドを持つ構造化されたfindingsrows が含まれます。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.38 を報告するようにしました。
Version 1.39.37
FPdfPreflightReportにTPdfPreflightReport.ToCsvとSaveCsvToFileを追加し、preflight reports を spreadsheet-friendly CSV としてエクスポートできるようにしました。- Delphi、C++Builder、Lazarus の
PreflightReportsamples を更新し、既存の TXT / HTML / JSON workflow に加えて CSV preview switching と Save CSV actions を追加しました。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.37 を報告するようにしました。
Version 1.39.36
FPdfPreflightReportにTPdfPreflightReport.IssueCategoryCountsと再利用可能なTPdfPreflightIssueCategoryCount/TPdfPreflightIssueCategoryCounts型を追加し、marker-level issues を category 別に集計できるようにしました。TPdfPreflightReport.ToText、ToHtml、ToJsonを更新し、生成される PreflightReport 出力に per-standard rows と detailed issue recommendations に加えて issue-category count summaries を含めました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.36 に更新しました。
Version 1.39.35
- 拡張済みの
PrintDialogsample を Delphi、C++Builder、Lazarus でPrintPreferencesにリネームし、demo name が PDF author print preferences、N-up printing、odd / even filtering、grayscale、cell border、duplex mapping workflow に一致するようにしました。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.35 に更新しました。
Version 1.39.34
Demo\Delphi\PrintPDFにドラッグ&ドロップによる PDF 読み込みを追加し、既存のDemo\CBuilder\PrintPDFworkflow を Delphi および Lazarus の PrintPDF サンプルとあわせて文書化しました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.34 を報告するようにしました。
Version 1.39.33
Demo\CBuilder\SplitViewを追加し、Delphi、C++Builder、Lazarus 全体で SplitView sample matrix を完成しました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.33 を報告するようにしました。
Version 1.39.32
Demo\Lazarus\SplitViewを追加し、two- or three-pane layouts、active-view navigation、synchronized commands、zoom presets、rotation を備えた side-by-side PDF comparison を Lazarus に提供しました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.32 を報告するようにしました。
Version 1.39.31
Demo\Lazarus\PrintPDFを追加し、preview navigation、page ranges、copies、collate mode、progress、cancellation を備えた standard PDF print workflow を Lazarus に提供しました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.31 を報告するようにしました。
Version 1.39.30
Demo\Lazarus\FontPropertiesを追加し、Delphi、C++Builder、Lazarus 全体で FontProperties サンプル行列を補完しました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.30 を報告するようにしました。
Version 1.39.29
Demo\CBuilder\FontPropertiesを追加し、Delphi サンプルに加えて C++Builder でもインデックス指定の文字およびフォントメタデータ検査を利用できるようにしました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.29 を報告するようにしました。
Version 1.39.28
Demo\Delphi\ExtractTextPagesを追加し、Delphi、C++Builder、Lazarus 全体でページ単位のテキスト抽出サンプル行列を補完しました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.28 を報告するようにしました。
Version 1.39.27
Demo\Lazarus\PrintDialogを追加し、Delphi、C++Builder、Lazarus の PrintDialog sample matrix を完成させました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.27 を報告するようにしました。
Version 1.39.26
Demo\CBuilder\PrintDialogを追加し、N-up printing と PDF author print preferences workflow を Delphi sample に加えて C++Builder でも利用できるようにしました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.26 を報告するようにしました。
Version 1.39.25
Demo\CBuilder\ViewerInteractionLabを追加し、Delphi、C++Builder、Lazarus の ViewerInteractionLab sample matrix を完成させました。- library build workflow と Win64 C++Builder package outputs を更新し、
TPdfViewviewer interaction methods が Win64 demos で正しくリンクされるようにしました。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.25 を報告するようにしました。
Version 1.39.24
Demo\Lazarus\ViewerInteractionLabを追加し、focused viewer interaction workflow を Delphi sample に加えて Lazarus でも利用できるようにしました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.24 を報告するようにしました。
Version 1.39.23
Demo\Lazarus\SearchAndSelectを追加し、Delphi、C++Builder、Lazarus の SearchAndSelect sample matrix を完成させました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.23 を報告するようにしました。
Version 1.39.22
Demo\CBuilder\ContentExtractionLabとDemo\Lazarus\ContentExtractionLabを追加し、multi-category content extraction workflow をすべての対応 demo IDE で利用できるようにしました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.22 を報告するようにしました。
Version 1.39.21
Demo\Delphi\PreflightReport、Demo\Lazarus\PreflightReport、Demo\CBuilder\PreflightReportに preview format selector を追加し、レポート保存前に text または JSON output を確認できるようにしました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.21 を報告するようにしました。
Version 1.39.20
FPdfPreflightReportにTPdfPreflightReport.ToJsonとSaveJsonToFileによる JSON export を追加し、機械可読の summary、per-standard status / priority、next action、issue detail を出力できるようにしました。Demo\Delphi\PreflightReport、Demo\Lazarus\PreflightReport、Demo\CBuilder\PreflightReportに、TXT / HTML export と並ぶ Save JSON 操作を追加しました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.20 を報告するようにしました。
Version 1.39.19
FPdfPreflightReportにTPdfPreflightStatus、issue categories、per-standard priority、TXT / HTML reports の next-action guidance を追加しました。Demo\Delphi\PreflightReport、Demo\Lazarus\PreflightReport、Demo\CBuilder\PreflightReportは summary grid に status、priority、issue count、next action を表示します。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.19 に更新しました。
Version 1.39.18
Demo\Lazarus\SecurityAuditを追加し、read-only PDF risk-surface audit workflow の Delphi、C++Builder、Lazarus サンプルマトリックスを完了しました。- Lazarus サンプルは permissions、attachments、JavaScript actions、URI / Launch link annotations、web links、signatures、XFA state、V8 / XFA helper availability、unsupported-feature callbacks を列挙し、finding list を TXT report として保存またはコピーできます。
TPdf.AboutInfo、Lazarus package metadata、installer version metadata が 1.39.18 を報告するよう更新しました。
Version 1.39.17
Demo\CBuilder\SecurityAuditを追加し、既存の Delphi サンプルに加えて read-only PDF risk-surface audit workflow を C++Builder に提供しました。- C++Builder サンプルは permissions、attachments、JavaScript actions、URI / Launch link annotations、web links、signatures、XFA state、V8 / XFA helper availability、unsupported-feature callbacks を列挙し、finding list を TXT report として保存またはコピーできます。
TPdf.AboutInfo、Lazarus package metadata、installer version metadata が 1.39.17 を報告するよう更新しました。
Version 1.39.16
Demo\CBuilder\SearchAndSelectを追加し、既存の Delphi サンプルに加えて独立した SearchAndSelect viewer workflow を C++Builder に提供しました。- C++Builder サンプルは PDFs の作成またはオープン、全ページ matches の page / character-index previews 付き一覧、Previous / Next と double-click navigation、
HighlightSearchTextによる現在ページ matches のハイライトを示します。 AllowUserTextSelection、SelectedText、SelectAll、CopySelectionToClipboard、ClearSelection、OnSelectionChange、spreadDisplayModeoptions も公開し、バージョンメタデータは 1.39.16 を報告します。
Version 1.39.15
Demo\CBuilder\WatermarkStampを追加し、再利用可能な Form XObject watermark と stamp workflows の Delphi、Lazarus、C++Builder demo matrix を完成させました。- C++Builder サンプルは target PDF と stamp PDF を作成し、
CreateXObjectFromPageで stamp page を再利用し、TPdfMatrixtransforms を適用して centered watermarks、corner stamps、page number labels を保存します。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.15 を報告するようにしました。
Version 1.39.14
Demo\Lazarus\WatermarkStampを追加し、再利用可能な Form XObject watermark と stamp workflow を Lazarus に提供しました。- Lazarus サンプルは target PDF と stamp PDF を作成し、
CreateXObjectFromPageで stamp page を再利用し、TPdfMatrixtransforms を適用して centered watermarks、corner stamps、page number labels を保存します。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.14 を報告するようにしました。
Version 1.39.13
Demo\CBuilder\PreflightReportを追加し、再利用可能なFPdfPreflightReportworkflow の Delphi、Lazarus、C++Builder demo matrix を完成させました。- C++Builder サンプルは
FPdfPreflightReport.hppを使って standard summaries、TXT report previews、TXT / HTML report files、Open Last Report の動作を生成します。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.13 を報告するようにしました。
Version 1.39.12
Demo\Lazarus\PreflightReportを追加し、PDF/A、PDF/UA、PDF/E、PDF/X、PDF/R、PDF/VT の preflight report workflow を Lazarus に提供しました。- Lazarus サンプルでは PDF を開く、または作成し、target standards を選択し、summary rows と TXT report output をプレビューし、TXT / HTML reports を保存して、直近に保存した report を開けます。
TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.12 を報告するようにしました。
Version 1.39.11
Demo\Delphi\SearchAndSelectを強化し、すべてのページの検索結果リストで page number、character index、preview text を記録できるようにしました。- 現在ページの
HighlightSearchTextの動作を維持しながら、Previous / Next match navigation と double-click result jumping を追加しました。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を更新し、1.39.11 を報告するようにしました。
Version 1.39.10
Demo\Delphi\SecurityAuditに Save Report と Copy Report actions を追加し、現在の summary と finding rows を TXT audit report として出力できるようにしました。- audit panel をリセットしたときに report export state をクリアし、コピーまたは保存した reports が表示中の findings と一致するようにしました。
TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.10 に更新しました。
Version 1.39.9
Demo\Delphi\ContentExtractionLabに source-PDF save、report copy-to-clipboard、all / none category selection actions を追加しました。- category selection が変更されたときに現在の report を無効化し、TXT / JSON exports が表示中の extraction scope を反映するようにしました。
TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.9 に更新しました。
Version 1.39.8
Demo\Delphi\ContentExtractionLabを追加しました。document metadata、page text、page objects、images、attachments、links、annotations、bookmarks、font / character metrics を扱う統合 content extraction workflow sample です。- この sample は既存の PDF を開くか、text、image、attachment、annotation を含む synthetic PDF を作成し、summary rows と詳細な TXT / JSON reports を生成できます。
TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.8 に更新しました。
Version 1.39.7
ValidatePdfA、ValidatePdfUa、ValidatePdfE、ValidatePdfX、ValidatePdfR、ValidatePdfVTを 1 つのTPdfPreflightReportオブジェクトにまとめる再利用可能な report helper として、Lib\FPdfPreflightReport.pasを追加しました。- PDF を開くか作成し、target standards を選択し、summary rows と issue recommendations をプレビューして、TXT または HTML レポートを保存する workflow sample として
Demo\Delphi\PreflightReportを追加しました。 - 生成されるレポートは、内蔵 validator が marker-level validation を対象とする境界を明示し、必要に応じて専用の content-level preflight tools と組み合わせられるようにしました。
TPdf.AboutInfo、Lazarus package metadata、package project lists、installer version metadata を 1.39.7 に更新しました。
Version 1.39.6
- search highlighting、text selection、selected-text preview、copy、clear、spread display modes に集中した viewer workflow サンプル
Demo\Delphi\SearchAndSelectを追加しました。 - このサンプルは、新しいライブラリ API を追加せずに
HighlightSearchText、match-case / whole-word 検索オプション、AllowUserTextSelection、SelectedText、SelectAll、CopySelectionToClipboard、ClearSelectionを示します。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.6 に更新しました。
Version 1.39.5
Demo\Delphi\ViewerInteractionLabを SearchAndSelect スタイルの viewer UX サンプルに拡張し、HighlightSearchText、match-case / whole-word オプション、選択テキストのプレビュー、既存の selection / clipboard controls を含めました。Demo\Delphi\PrintDialogを拡張し、PDF author print preferences としてPrintCopies、PrintPageRanges、PrintScaling、PrintPaperHandling、およびSetPdfPrintPaperHandlingDevModeの duplex mapping を表示できるようにしました。- 読み取り専用の risk-surface サンプル
Demo\Delphi\SecurityAuditを追加し、permissions、attachments、document JavaScript、URI / Launch links、web links、signatures、XFA state、V8 / XFA helper availability を一覧表示します。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.5 に更新しました。
Version 1.39.4
Demo\CBuilder\ImageToPDFとDemo\Lazarus\ImageToPDFを追加し、Delphi、C++Builder、Lazarus 全体で ImageToPDF サンプルのマトリクスを完成させました。- 新しいサンプルは、複数画像の選択、選択画像のプレビュー、画像ごとに 1 つの PDF ページ、A4 portrait / landscape ページサイズ、中央揃えの画像スケーリング、画像ごとの進捗、保存後の生成 PDF 表示を示します。
TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.4 に更新しました。
Version 1.39.3
Demo\CBuilder\BatchExportを追加し、既存の Delphi および Lazarus サンプルと同じく、複数ファイルの PDF から JPG へのエクスポート workflow を C++Builder でも利用できるようにしました。- このサンプルは
LoadCustomDocument、IPdfCancellationTokenSource、ストリーミングTFileStream入力、ファイル別およびページ別の進捗、キャンセル処理、DPI / quality / password 入力、完了後の出力フォルダ表示を示します。 TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.3 に更新しました。
Version 1.39.2
Demo\Delphi\WatermarkStampを追加しました。ターゲット PDF と再利用可能な stamp PDF を作成し、中央の透かし、右上のスタンプ、ページ番号ラベルを各ページへ適用する、実行可能な Form XObject ワークフロー例です。- このサンプルは、新しいライブラリ API を追加せずに
CreateXObjectFromPage、InsertFormObjectFromXObject、TPdfMatrix、FPDFPageObj_SetMatrixを示します。 FPDFPageObj_SetMatrixに行列を渡す際、現在のTPdfMatrix.Handleパターンを使うようDocs\en-us\Examples.htmlを更新しました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.2 に更新しました。
Version 1.39.1
- 現在の project mode に合わせて
nullptrをNULLに置き換え、PDFViewerとMultiPageViewerの C++Builder demo batch-build compatibility を修正しました。 Demo\Delphi\ViewerInteractionLabを追加しました。TPdfViewの display modes、fit modes、page colors、rotation、user text selection、clipboard actions、DeviceToPage座標フィードバックを確認できる集中型サンプルです。Demo\CBuilder\StandardsLab/Demo\Lazarus\StandardsLabを追加し、Lazarus ユーザーも PDF/A、PDF/UA、PDF/E、PDF/X、PDF/R、PDF/VT の検証と marker-output ワークフローを実行できるようにしました。Lib\37.0\PDFiumVcl.dprojandLib\FPC\PDFiumLaz.lpkに standards units を列挙し、重複したWinapi.ShellAPIimport を削除して DelphiSplitViewdemo のビルドを修正しました。BatchExport、PDFViewer、MultiPageViewer、SplitViewの Delphi demo batch-build blocker を、実行時動作を変えずに修正しました。TPdf.AboutInfo、Lazarus package metadata、installer version metadata を 1.39.1 に更新しました。
Version 1.39.0
Demo\Delphi\StandardsLabを追加しました。PDF を読み込むか作成し、ValidatePdfA、ValidatePdfUa、ValidatePdfE、ValidatePdfX、ValidatePdfR、ValidatePdfVTを実行して、検出された conformance、合否状態、issue 数を 1 つのグリッドに表示する実行可能な標準ワークフロー例です。- StandardsLab の保存ボタンは
SaveAsPdfA、SaveAsPdfUa、SaveAsPdfE、SaveAsPdfX、SaveAsPdfR、SaveAsPdfVTを呼び出し、独自のハーネスを書かずに PDF 標準 marker 出力を確認できます。 TPdf.AboutInfo、Lazarus パッケージメタデータ、インストーラーのバージョンメタデータを 1.39.0 に更新しました。
Version 1.38.0
TPdfViewの検索およびテキスト選択オーバーレイは、論理 mask 描画ではなく実際の alpha blending を使用するようになり、ハイライト下のページ内容を保持します。TPrintPaperHandlingを WindowsDEVMODE.dmDuplex値(DMDUP_SIMPLEX、DMDUP_HORIZONTAL、DMDUP_VERTICAL)へマップするSetPdfPrintPaperHandlingDevModeを追加しました。TPdfView.SmoothScrollは line/page scrollbar commands を timer-driven segments でアニメーションするようになりました。thumb tracking は即時のままです。TPdf.AboutInfoとインストーラーバージョンメタデータを 1.38.0 に更新しました。
Version 1.37.0
TPdfにインスタンス単位の render lock を追加し、RenderPage、RenderTile、RenderPageProgressive、ページ reload、ドキュメント unload を直列化しました。共有コンポーネント経由の worker レンダリングが実用的になり、ドキュメント変更とライフタイム管理は引き続きアプリケーションが調整します。- zero-copy bitmap wrapper が bottom-up
TBitmapDIB を拒否し、PDFium 所有バッファへフォールバックして最後にコピーするよう修正しました。VCL レンダリングテストの stride corruption / access violation を解消します。 TPdfViewの選択動作を調整しました。AllowUserTextSelectionはユーザー入力だけを制御し、コードレベルの選択 API は引き続き描画します。SelectAllは実際の表示 spread に従うため、表紙ページがページ 2 を選択しなくなりました。Delphi、Lazarus、C++Builder テストを拡張しました。TPdf.AboutInfoとインストーラーバージョンメタデータを 1.37.0 に更新しました。
Version 1.36.0
TPdfViewのエンドユーザー文字選択を有効化しました。v1.17.0 で予約されたAllowUserTextSelectionが、mouse drag、double-click word、triple-click line、Ctrl+A、Ctrl+C、Shift+arrowsの選択フローを駆動します。SelectionColor、OnSelectionChange、コードレベル選択 APIHasSelection、SelectionCharCount、SelectedText、ClearSelection、SelectAll、CopySelectionToClipboardを追加しました。- spread 表示モードは表示ページ間の選択をサポートし、ホストが
PopupMenuを指定しない場合は既定の Copy メニューを自動接続します。document、page、Active、DisplayMode の変更時に選択をクリアします。 - Delphi、Lazarus、C++Builder 回帰テストを拡張し、選択プロパティ、mouse path、keyboard shortcut、default popup、clipboard round-trip、spread selection をカバーしました。
Version 1.35.0
- PDF/VT (ISO 16612-2:2010) マーカー注入サポートを追加: TPdf.SaveAsPdfVT は現在のドキュメントを PDF/VT-1 または PDF/VT-2 準拠ファイル (可変データおよびトランザクション印刷用の PDF サブセット) に昇格させます。PDF/VT は PDF/X-4 (§6.2.1) の上に構築されているため、注入器は PDF/VT 固有のプロパティと共に完全な PDF/X-4 マーカーセット (XMP pdfxid、Info GTS_PDFXVersion + Trapped、ICC 付き OutputIntent) を書き込みます。
- PDF/VT 固有のプロパティには XMP
pdfvtid:GTS_PDFVTVersionとpdfvtid:GTS_PDFVTModDate(§6.3 NOTE 1 によりxmp:ModifyDateと同期) および pdfxid と pdfvtid の両方の NPES 名前空間用 pdfaExtension:schemas 記述が含まれます。 - メモリ内 PDF/VT 出力用の TPdf.SaveAsPdfVTToStream、ショートカット
TPdf.SaveAsPdfVT(FileName)を追加: デフォルトで PDF/VT-1 + 内蔵 sRGB OutputIntent を生成。 - TPdf.ValidatePdfVT を追加: PDF/VT マーカー (
pdfvtid:GTS_PDFVTModDate/xmp:ModifyDate等価性、/DPartRootの存在を含む) をチェックし TPdfVTValidationResult を返します。 - TPdf.PdfVTConformance プロパティを追加: ValidatePdfVT を明示的に呼ばずに準拠レベルを返します。
- 新しいユニット FPdfPdfvt にエクスポートされた新しい型: TPdfVTConformance、TPdfVTTrappedState、TPdfVTValidationResult、TPdfVTValidationIssue、TPdfVTSaveOptions。
- ドキュメント部分階層 (DPartRoot / DPart、§6.5) はアプリケーションレベルの構造であり、自動的に合成されません。PDF/X-4 コンテンツレベルの要件 (フォント埋め込み、透明度、ICC 色管理、OPI / JavaScript / Reference XObject 禁止) は引き続きドキュメント作成者の責任です。
- TPdf.AboutInfo 文字列を更新し、現在の製品バージョンを報告するようにしました。
Version 1.34.0
- PDF/R-1 (ISO 23504-1:2020) マーカー注入サポートを追加: TPdf.SaveAsPdfR は現在のドキュメントを PDF/R-1 準拠ファイル (スキャン文書用の PDF ラスター画像転送サブセット) に昇格させます。注入は後処理で達成可能なファイル形式レベルの要件をカバーします — trailer dictionary と startxref の間に書かれる独自の
%PDF-raster-1.0コメント (§5)、§6.3 ホワイトリスト (Version/ViewerPreferences/PageLayout/PageMode/AcroForm/Metadata のみ) に削減された catalog、§6.4.3 (Creator/Producer/CreationDate/ModDate のみ) に削減された Document Information Dictionary、§6.4.4 Table 1 の 4 エントリを含む XMP ストリーム、trailer/ID配列。 - メモリ内 PDF/R 出力用の TPdf.SaveAsPdfRToStream、ショートカット
TPdf.SaveAsPdfR(FileName)を追加。 - TPdf.ValidatePdfR を追加: マーカーをチェックし TPdfRValidationResult を返します。
- TPdf.PdfRConformance プロパティを追加: ValidatePdfR を明示的に呼ばずにレベルを返します。
- 新しいユニット FPdfPdfr にエクスポートされた新しい型: TPdfRConformance、TPdfRValidationResult、TPdfRValidationIssue、TPdfRSaveOptions。デフォルトは Info から Title/Author/Subject/Keywords を、catalog から不許可エントリを削除します。
- コンテンツレベルの要件 (ページごとの Contents 構造、MediaBox
[0 0 w h]、制限されたフィルター、object streams なし、ストリップレイアウト) は引き続きソース PDF の責任です。PDF/R は他の PDF/x 標準より構造的に厳格なため、完全な検証には TWAIN Working Group のバリデーターと組み合わせてください。 - TPdf.AboutInfo 文字列を更新し、現在の製品バージョンを報告するようにしました。
Version 1.33.0
- PDF/X (ISO 15930 ファミリー) マーカー注入サポートを追加: TPdf.SaveAsPdfX はベース PDF にインクリメンタル更新による後処理を施して、現在のドキュメントを PDF/X-1a:2001、PDF/X-3:2002、または PDF/X-4 準拠ファイルに昇格させます。注入は後処理で達成可能なファイル形式レベルの要件をカバーします —
pdfxid:GTS_PDFXVersionと pdfaExtension:schemas 記述を含む XMP メタデータストリーム、/GTS_PDFXVersion//GTS_PDFXConformance//Trappedエントリを含むよう書き換えられた Document Information Dictionary、/S /GTS_PDFXの OutputIntent (組み込み ICC profile を持つ) を参照する/OutputIntentsを持つ catalog、trailer/ID配列。 - メモリ内 PDF/X 出力用の TPdf.SaveAsPdfXToStream、デフォルトオプションのショートカット
TPdf.SaveAsPdfX(FileName)を追加: デフォルトで PDF/X-4 出力と組み込み sRGB IEC61966-2.1 OutputIntent を生成。 - TPdf.ValidatePdfX を追加: PDF/X 準拠マーカーをチェックし、TPdfXValidationResult を返します。
- TPdf.PdfXConformance プロパティを追加: ValidatePdfX を明示的に呼ばずに準拠レベルを返します。
- 新しいユニット FPdfPdfx にエクスポートされた新しい型: TPdfXConformance、TPdfXTrappedState、TPdfXValidationResult、TPdfXValidationIssue、TPdfXSaveOptions。デフォルトは PDF/X-4 と sRGB を対象とします; 呼び出し側は
IccProfileData経由で CMYK ICC profile (FOGRA39、GRACoL2006...) を提供できます。 - コンテンツレベルの要件 (全フォント埋め込み、JavaScript なし、可視 annotation なし、OPI 禁止、PDF/X-1a / PDF/X-3 の透明度ルール) は引き続きドキュメント作成者の責任です。完全な検証には callas pdfaPilot または Ghent PDF Workgroup Output Suite と組み合わせてください。
- TPdf.AboutInfo 文字列を更新し、現在の製品バージョンを報告するようにしました。
Version 1.32.0
- PDF/E-1 (ISO 24517-1:2008) マーカー注入サポートを追加: TPdf.SaveAsPdfE はベース PDF にインクリメンタル更新による後処理を施して、現在のドキュメントを PDF/E-1 準拠ファイルに昇格させます。注入は後処理で達成可能なファイル形式レベルの要件をカバーします —
pdfe:ISO_PDFEVersion = "PDF/E-1"と対応する pdfaExtension:schemas 記述を含む XMP メタデータストリーム、§5 で必須の/ISO_PDFEVersion (PDF/E-1)エントリを含むよう書き換えられた Document Information Dictionary、§13.1 経由で ISO 19005-1 §6.7 から継承された Info-XMP 等価性、および §6.2 で必須の trailer/ID配列。 - メモリ内 PDF/E 出力用の TPdf.SaveAsPdfEToStream、一般的なケース用のショートカット
TPdf.SaveAsPdfE(FileName)を追加。 - TPdf.ValidatePdfE を追加: PDF/E-1 準拠マーカーをチェックし、TPdfEValidationResult を返します。
- TPdf.PdfEConformance プロパティを追加: ValidatePdfE を明示的に呼ばずに準拠レベルを返します。
- 新しいユニット FPdfPdfe にエクスポートされた新しい型: TPdfEConformance、TPdfEValidationResult、TPdfEValidationIssue、TPdfESaveOptions。
- Info ディクショナリの書き換えは、PDFiumVCL の PDF/x 後処理パスで初めてのこと — 既存の Info オブジェクトを同じオブジェクト番号で書き換え (trailer の /Info 参照を維持)、ソース trailer に /Info がない場合は新しい Info ディクショナリを合成します。
- コンテンツレベルの要件 (フォント埋め込み、ToUnicode CMap、禁止された XObject / ExtGState キー / XFA フォーム) は引き続きドキュメント作成者の責任です。
- TPdf.AboutInfo 文字列を更新し、現在の製品バージョンを報告するようにしました。
Version 1.31.0
- PDF/UA-1 (ISO 14289-1:2014) マーカー注入サポートを追加: TPdf.SaveAsPdfUa は、ベース PDF にインクリメンタル更新による後処理を施して、現在のドキュメントを PDF/UA-1 準拠ファイルに昇格させます。注入は後処理で達成可能なファイル形式レベルの要件をカバーします —
pdfuaid:part = 1と対応する pdfaExtension:schemas 記述を含む XMP メタデータストリーム、必須のdc:title、catalog/MarkInfo << /Marked true /Suspects false >>と/ViewerPreferences << /DisplayDocTitle true >>(ソースに存在しない場合のみ注入)、catalog/Lang(呼び出し側が BCP 47 タグを提供した場合)、trailer/ID配列。 - メモリ内 PDF/UA 出力のための TPdf.SaveAsPdfUaToStream、および一般的なケース用のデフォルトオプションショートカット
TPdf.SaveAsPdfUa(FileName)を追加。 - TPdf.ValidatePdfUa を追加: 開いている PDF の PDF/UA-1 準拠マーカー (StructTreeRoot の存在、/Lang、/MarkInfo /Marked true かつ /Suspects = false、/ViewerPreferences /DisplayDocTitle true、XMP pdfuaid:part 識別子、dc:title の存在、trailer /ID、暗号化状態) をチェックし、検出された準拠レベルと問題セットを含む構造化結果を返します。
- TPdf.PdfUaConformance プロパティを追加: ValidatePdfUa を明示的に呼び出さずに、開いているドキュメントの準拠レベル (puc1、pucNone、または pucUnknown) を直接返します。
- 新しいユニット FPdfPdfua にエクスポートされた新しい型: TPdfUaConformance、TPdfUaValidationResult、TPdfUaValidationIssue、TPdfUaSaveOptions。
- TPdfUaSaveOptions の空フィールド (Title / Author / Subject / Keywords / Creator / Producer / CreationDate / ModDate / DocumentId / InstanceId / Language) は FPDF_GetMetaText / FPDF_GetFileIdentifier / FPDFCatalog_GetLanguage 経由で自動的に埋められます。
- コンテンツレベルの要件 (StructTreeRoot タグ付け完全性、Figure Alt テキスト、ToUnicode CMap、フォント埋め込みなど) は引き続きドキュメント作成者の責任です — SaveAsPdfUa はファイル形式マーカーのみを付加します。ValidatePdfUa は StructTreeRoot の不在を
pvuaiMissingStructTreeRootとして報告します。 - TPdf.AboutInfo 文字列を更新し、現在の製品バージョンを報告するようにしました。
Version 1.30.0
- PDF/A-1b 出力が ISO 19005-1 (Cor.1:2007 含む) の Document Information Dictionary と XMP の等価性要件を満たすようになりました。PDFium がベース PDF に書き込む Info dictionary の各エントリは XMP パケットにミラーリングされ、Title (dc:title)、Author (dc:creator)、Subject (Cor.1 により dc:description)、Keywords (pdf:Keywords)、Creator (xmp:CreatorTool)、Producer (pdf:Producer)、CreationDate (xmp:CreateDate)、ModDate (xmp:ModifyDate) を含みます。xmp:MetadataDate も出力されます。
- PDF/A ドキュメントの trailer に常に /ID 配列が含まれるようになりました (ISO 19005-1 6.1.3 の必須要件)。TPdf.SaveAsPdfA がすでに file identifier を持つドキュメントを処理する場合、既存の 16 バイトの permanent / changing ID が再利用されます。それ以外の場合は、ソースバイトから決定論的な 16 バイトのフォールバック ID が導出されます。
- 注入される XMP は、ISO 19005-1 6.7.8 (Cor.1 により改訂) で要求される pdfaid extension schema 記述を埋め込むようになりました。pdfaid は XMP Specification 2004 に対する extension schema として扱われ、すべての準拠ファイルは pdfaExtension:schemas コンテナにその property names、value types、categories を宣言する必要があります。
- TPdfASaveOptions に 5 つの新しいオプションフィールドが追加されました: Producer、CreationDate、ModDate (PDF 日付文字列 “D:YYYYMMDDHHmmSSOHH'mm'” 形式)、DocumentId、InstanceId (trailer /ID 配列用の 16 バイト文字列)。TPdf.SaveAsPdfA / SaveAsPdfAToStream は FPDF_GetMetaText と FPDF_GetFileIdentifier を介して欠落フィールドを自動的に埋めるため、既存の呼び出しコードは変更なしで動作し続けます。
- TPdf.ValidatePdfA / TPdf.PdfAConformance は 3 つの追加問題を報告するようになりました: pvaiMissingTrailerId (trailer に /ID なし)、pvaiMissingXmpDates (xmp:CreateDate または xmp:ModifyDate 欠落)、pvaiMissingExtensionSchema (pdfaid extension schema 記述欠落)。
- Title、Author、Subject、Keywords、Creator、Producer の非 ASCII 文字は XMP パケット内で UTF-8 としてエンコードされるようになりました (XMP Specification は UTF-8 を要求)。これにより、SaveAsPdfA を通して多言語メタデータが完全に保持されます。
- TPdf.AboutInfo 文字列を更新し、現在の製品バージョンを報告するようになりました。
Version 1.29.0
- 同梱の PDFium DLL(Win32 / Win64、標準ビルドおよび V8 ビルド)を 2026-05-22 のアップストリームスナップショットに更新し、FPDFText_SetText / FPDFText_SetCharcodes のクラッシュパスに対する上流修正および PDFium プロジェクトからの各種内部強化を取り込んだ。
- PDFium が新規追加した FPDF_SUBSET_NEW_FONTS 保存フラグを FPdfPageOps.pas で公開した。FPDF_SaveAsCopy の呼び出し元は新規追加されたテキストオブジェクトが参照する埋め込みフォントファイルに対して自動サブセット化を要求できる。既存の FPDF_INCREMENTAL, FPDF_NO_INCREMENTAL, FPDF_REMOVE_SECURITY 定数は上流のビットシフト形式で定義し直した(旧来の数値 3 はバイナリ互換性のため FPDF_REMOVE_SECURITY_DEPRECATED として残してある)。
- FPdfView.pas に FPDF_FONT_BACKEND_TYPE 列挙体(FREETYPE / FONTATIONS)と FPDF_LIBRARY_CONFIG の m_FontLibraryType フィールドを追加した。Skia レンダラーで PDFium を初期化するアプリケーションは起動時にフォントバックエンドを選択できるようになる。
- TFPDFPage_InsertObject のシグネチャを上流に合わせて更新した。C 側の関数は void ではなく FPDF_BOOL を返すようになる(成功時 TRUE、page_object が NULL の場合や所有権の移譲に失敗した場合は FALSE)。Delphi / FPC は関数の戻り値の無視を許容するため、PDFiumVCL の既存呼び出し元は変更なしで引き続きコンパイル可能。
- TPdf.AboutInfo 文字列を修正し、現在の製品バージョンを正しく返すようにした(v1.28.0 がドキュメントのみ更新だった経緯で v1.27.0 のまま取り残されていた)。
Version 1.28.0
- API リファレンス全体のページ内ドキュメントを大幅に拡張した。すべてのプロパティ、メソッド、イベント、グローバル関数の各エントリに 3 段落の Description、Remarks リスト、複数行の Delphi Example、より充実した See Also ブロックを追加 — これまで内容の薄かった 200+ ページを対象とし、すべての TPdf カウンタ、メタデータゲッター、フォントおよび文字アクセサ、ページレベルプロパティ、インデックス付きレコード、ドキュメントレベルメソッド、TPdfView の状態 / 表示 / イベントの全 API 面を含む。
- HotXLS リファレンスで使用している losLab ビジュアル基準に合わせてヘルプレイアウトを微調整した。h1/h2 サイズを統一し、API ナビゲーショングリッドのスタイルを共有 StyleSheet に集約、Navigation.html のページごとのインライン CSS オーバーライドを削除した。
- ドキュメントには補助スクリプト (Docs\Build-Expand-Entries.ps1) が同梱され、単一のデータテーブルからエントリページの内容を再生成して反復可能なメンテナンスを実現する。
Version 1.27.0
- PDF/A-1b 作成サポートを追加。TPdf.SaveAsPdfA は、ベース PDF にインクリメンタル更新を後処理として適用し、XMP メタデータストリーム、sRGB ICC OutputIntent、更新されたドキュメントカタログを注入することで、開いている任意のドキュメントを PDF/A-1b 準拠ファイルとして保存する — 追加の DLL API は不要。PDFiumVCL がサポートするすべてのプラットフォームで動作する。
- メモリ内 PDF/A 出力用に TPdf.SaveAsPdfAToStream を追加した。
- TPdf.ValidatePdfA を追加。開いている PDF の PDF/A 準拠性 (XMP pdfaid マーカー、埋め込み ICC プロファイル付き OutputIntent、暗号化) をチェックし、検出された準拠レベルと具体的に発見された問題セットを含む構造化された結果を返す。
- TPdf.PdfAConformance プロパティを追加。ValidatePdfA を明示的に呼び出すことなく、現在開いているドキュメントの準拠レベル (pac1b、pac1a、pac2b、pac3b、pacNone、pacUnknown) を返す。
- 新規エクスポート型: TPdfAConformance、TPdfAValidationResult、TPdfAValidationIssue、TPdfASaveOptions (新ユニット FPdfPdfa.pas)。
- SaveAsPdfA は TPdfASaveOptions.IccProfileData によるカスタム ICC プロファイルをサポート。空のままにすると、組み込みの sRGB IEC61966-2.1 (HP/Microsoft、3144 bytes) プロファイルが自動的に使用される。
- モノリシックな HTML リファレンスを再構築された Web ヘルプシステムに置き換えた。TPdf と TPdfView を網羅する 302 個の個別 API エントリページ (プロパティ、メソッド、イベント、グローバル関数ごとに 1 ページ) を提供し、各ページには完全な説明、パラメータテーブル、Delphi コード例、See Also リンクが含まれる。
- Navigation.html を追加。6 つのセクション (TPdf プロパティ/メソッド/イベント、TPdfView プロパティ/メソッド/イベント、グローバル関数) に整理された包括的なワンページ API ナビゲーションインデックスで、高速スキャン用に 5 列のフレックスグリッドを採用している。
- TPdf.html と TPdfView.html を、型リファレンスセクション (Types、Constants、Global Variables) を保持しつつ、全メンバーの個別エントリページにリンクするコンパクトなコンポーネント概要ページとして再構築した。
- Search.js による全文検索を追加。インデックス済み全 312 ページにわたるインクリメンタルなクライアントサイドマッチングを実現する。
- サイト全体のナビゲーションバーをすべて Navigation.html を指すように更新した。
Version 1.26.0
- v1.14.0 Delphi BatchExport デモの LCL 移植版である Demo/Lazarus/BatchExport を追加した。機能セットは同一: 複数ファイル PDF -> JPG エクスポート、ファイルごとの全体進捗、ページごとの現在進捗、DPI / 品質 / パスワード入力、IPdfCancellationToken に裏付けされた協調キャンセル可能なバッチ。抽出が正常に完了するとプラットフォームのファイルマネージャで出力フォルダが開かれる。
Version 1.25.0
- TPdf に Form XObject によるページ再利用機能を追加し、透かし、テンプレートオーバーレイ、“1 ページを多数のページに押印” ワークフローを実現可能にした。CreateXObjectFromPage は別ドキュメントの任意ページから再利用可能ハンドルを生成し、InsertFormObjectFromXObject はラップされたページの 1 つのコピーを現在のページに挿入する。挿入された FPDF_PAGEOBJECT を返すため、呼び出し側は FPDFPageObj_SetMatrix と v1.9.0 の TPdfMatrix ヘルパーで位置決め / スケーリング / 回転が可能。
- 新しい TPdfXObject Pascal クラスは PDFium の FPDF_XOBJECT ハンドルをラップし、デストラクタで自動的にクローズするため、手動の FPDF_CloseXObject 処理が不要となる。
- Delphi および Lazarus 回帰テストスイートを各 147 ケースに、C++Builder スイートを 123 ケースに拡張し、ハンドル作成とページオブジェクト挿入の契約をカバーした。
Version 1.24.0
- TPdf.RenderPageProgressive を追加 — PDFium のプログレッシブレンダリングループを駆動し、反復間で v1.7.0 の IPdfCancellationToken をポーリングする RenderPage のキャンセル可能なバリアント。高 DPI の長時間レンダリングが、完了まで呼び出し側をブロックする代わりにページ途中で中断できる。
- TPdfProgressiveStatus 値を返す: prsDone、prsCancelled、prsFailed。AToken = nil を渡すと一時停止せずに完了までレンダリングする (prsCancelled の可能性はない)。
- v1.21.0 で導入された同じ zero-copy ファストパスを使用 — PDFium が宛先 TBitmap の DIB に直接レンダリングする。DIB をラップできない場合には同じレガシーフォールバックが適用される。
- Delphi および Lazarus 回帰テストスイートを各 145 ケースに、C++Builder スイートを 121 ケースに拡張し、nil トークン (完了する)、事前キャンセル済みトークン (prsCancelled)、ライブトークンでの同期 RenderPage とのピクセル等価性をカバーした。
Version 1.23.0
- PDFium のフォームウィジェットテキスト選択と Undo/Redo をアプリケーションに公開する 6 つの新しい TPdfView メソッドを追加した。GetSelectedFormText はフォーカスされたフォームウィジェット内の現在選択されているテキストを返す。SelectAllFormText はすべての文字を選択する。FormUndo / FormRedo / FormCanUndo / FormCanRedo はフォーカスされたウィジェットの編集履歴を駆動する。基礎となる PDFium API は既にバインドされていたが、高レベルのエントリポイントが存在しなかった。6 つともビューが非アクティブの場合や、ドキュメントに AcroForm ウィジェットがフォーカスされていない場合は安全にショートサーキットする。
- Delphi および Lazarus 回帰テストスイートを各 142 ケースに、C++Builder スイートを 119 ケースに拡張し、全新規メソッドについて no-form-no-focus 契約をカバーした。
Version 1.22.0
- TPdf にページ構成ラッパーを追加した。ImportPagesByIndex はゼロベースのインデックス配列を受け取り、ソースドキュメントから特定のページをコピーする。ImportNPagesToOne は本ドキュメントのページを N-up 合成した新規 TPdf を返す。MovePages はページを所定の位置で並べ替える。基礎となる PDFium API は既にバインドされていたが、Pascal フレンドリーなエントリポイントが存在しなかった。
- ImportPagesByIndex は空配列を受け取るとすべてのソースページをインポートする (C ABI レベルで nil を渡すことに等価)。
- Delphi および Lazarus 回帰テストスイートを各 136 ケースに、C++Builder スイートを 115 ケースに拡張し、サブセットインポート、全文書インポート、ページ並べ替え、N-up 合成をカバーした。
Version 1.21.0
- TPdf.RenderPage / TPdf.RenderTile (および対応する TPdfView ヘルパー) を zero-copy 出力パスに切り替えてレンダリング性能を改善した。PDFium は内部バッファに書き込んでから 1 行ずつコピーする代わりに、宛先 TBitmap の DIB バッファに直接書き込むようになり、レンダリングごとに幅 x 高さ x 4 バイトのメモリコピーが 1 回節約される。高 DPI (サムネイルパネル、印刷品質エクスポート、バッチエクスポート) で特に効果が顕著。
- 従来のスキャンラインごとのパスは、宛先 DIB をラップできない稀なケース (極端なディメンション、特殊な stride、OOM) に備えた安全フォールバックとして維持される。動作は両パスでバイト単位で同一であり、フォールバック時は単に遅いだけ。
- Delphi および Lazarus 回帰テストスイートを各 132 ケースに、C++Builder スイートを 112 ケースに拡張し、呼び出し側ビットマップの pf32bit アップグレード、ディメンションのラウンドトリップ、大きなビットマップの stride サニティテストをカバーした。
Version 1.20.0
- TPdfView に検索結果ハイライト機能を追加。HighlightSearchText(Text, MatchCase, MatchWholeWord) は現在のビューページをスキャンして見つかったマッチ数を返し、再描画のたびに各マッチの上に HighlightColor マスクを描画する。ClearHighlight はハイライトを削除する。マッチはページ固有のため、ビューを別のページに切り替えると自動的にハイライトがクリアされる。
- HighlightColor のデフォルトは clYellow で、published されているためアプリケーションは UI パレットに合わせてハイライトをテーマ化できる。
- Delphi および Lazarus 回帰テストスイートを各 129 ケースに、C++Builder スイートを 109 ケースに拡張し、デフォルト色、色のラウンドトリップ、sample.pdf 文字列に対する “実フィクスチャの単語マッチ”、“存在しない単語はゼロマッチを返す” 契約をカバーした。
Version 1.19.0
- TPdfView に 4 つの値を持つ FitMode プロパティを追加: pfmNone (手動ズーム)、pfmActualSize (100%)、pfmFitPage (ページ全体をビューポートに収める)、pfmFitWidth (ページ幅をビューポート幅に一致させる)。アクティブなフィットモードは Resize 時と現在のページ変更時に自動的に再適用されるため、ページサイズが混在する長いドキュメントでも完璧にフレーミングされた状態を保つ。
- Zoom を直接設定するとアクティブなフィットモードがキャンセルされ (FitMode は pfmNone に戻る)、ズーム値を入力すると Fit Page / Fit Width から抜ける標準 PDF ビューアの慣習に従う。
- デフォルトは pfmNone で、既存のアプリケーションは明示的なズーム動作を維持する。
- Delphi および Lazarus 回帰テストスイートを各 124 ケースに、C++Builder スイートを 106 ケースに拡張し、デフォルト値、モードのラウンドトリップ、ロード済みドキュメントでフィットページが実際のズームを生成すること、手動ズームがフィットモードをキャンセルすることをカバーした。
Version 1.18.0
- TPdfView に PageColor プロパティを追加し、レンダリングされる PDF ページの背景を周囲のコントロールの Color から切り離した。デフォルトは clWhite のため、ホストアプリケーションのテーマに関係なく PDF ページがペーパーホワイトでレンダリングされる。ダークモードのビューアは、スクロール領域を暗く保ちつつ、実際の PDF ページを白 (またはアプリケーションが選択した任意の色) のままにできる。
- 動作変更: 以前 PDF ページの色を変えるために TPdfView.Color を設定していたアプリケーションは、代わりに PageColor を設定する必要がある。一般的なケース (テーマ化されたコントロール背景上の白いページ) ではコード変更なしでデフォルトの体験が改善される。
- Delphi および Lazarus 回帰テストスイートを各 120 ケースに、C++Builder スイートを 103 ケースに拡張し、デフォルト値と色のラウンドトリップをカバーした。
Version 1.17.0
- TPdfView にユーザー入力ロックダウンのトグルを追加し、kiosk、プレビューペイン、読み取り専用コンテキストにビューアを組み込むアプリケーションが、サブクラス化することなくナビゲーションジェスチャーを無効化できるようになった。AllowUserPageChange は新しい PgUp / PgDn / Ctrl+Home / Ctrl+End キーボードショートカットを制御する。ChangePageOnMouseScrolling は新しいホイールアップ / ホイールダウンによるページジャンプを制御する。AllowUserTextSelection は将来のマウスドラッグによるテキスト選択パスのために予約されている。3 つともデフォルトは True で、既存のアプリケーションは動作変更なしにアップグレードできる。
- マウスホイールによるページナビゲーションは Ctrl+ホイールをスキップするため、アプリケーションは Ctrl+ホイールをズーム用に予約しておける。
- Delphi および Lazarus 回帰テストスイートを各 118 ケースに、C++Builder スイートを 101 ケースに拡張し、デフォルト値とトグルのラウンドトリップをカバーした。
Version 1.16.2
- ビューアのページが関連付けられた TPdf のページと異なる場合の注釈リンククリックに対する TPdfView 回帰テストカバレッジを拡張し、Delphi、Lazarus、C++Builder にわたって実際のヘッドレスマウスクリックパスを使用するようにした。
- Delphi および Lazarus スイートは現在各 114 ケースを、C++Builder は現在 99 ケースを実行する。
Version 1.16.1
- TPdfView のリンククリック処理を修正し、関連付けられた TPdf コンポーネントが別のページに留まっている場合でも、自動的な注釈および Web リンクアクションがビューアに現在表示されているページを使用するようにした。
- リンクされた TPdf コンポーネントが破棄された際の TPdfThumbnailView の Pdf 参照の dangling を防ぐようにハードニングした。
- サムネイル参照のライフタイム回帰テストカバレッジを追加。Delphi および Lazarus スイートは現在各 113 ケースを、C++Builder は現在 98 ケースを実行する。
- README、テストドキュメント、HTML Help の検索/インデックスコンテンツ、生成された C++ パッケージの出力を v1.7.0 から v1.16.0 の統合更新に同期した。
Version 1.16.0
- 新しい Delphi PrintDialog デモ (Demo/Delphi/PrintDialog) を追加した。N-up 印刷 (1 / 2 / 4 / 9 ページ/シート) に焦点を当て、奇数 / 偶数ページのフィルタリング、グレースケールレンダリング、オプションの 1 ピクセルセル罫線を提供する。既にプレビュー、最近使ったファイル、ズーム、スケーリングをカバーしている既存の PrintPDF デモへの意図的な小規模コンパニオン。
Version 1.15.0
- 新しい TPdfThumbnailView コンポーネント (FPdfThumbnail ユニット) を追加した。1 行につき 1 ページサムネイルをスクロール可能なサイドパネルに描画し、ホバーと選択のハイライト、クリックジャンプナビゲーションをサポートする。TPdfView の横に配置し、エンドユーザーが長いドキュメントをページ単位でブラウズできるよう設計されている。
- このコンポーネントは TPdf および TPdfView と並んで losLab パレットタブに登録される。主要プロパティ: Pdf、CurrentPageIndex、ThumbnailWidth、ThumbnailHeight、TextColor、HoverColor、SelectionColor、BorderColor、および OnPageClick イベント。
- Delphi および Lazarus 回帰テストスイートを各 112 ケースに、C++Builder スイートを 97 ケースに拡張し、デフォルト値、サムネイルサイズのラウンドトリップ、極端な値のクランプ、色のラウンドトリップ、イベントハンドラの割り当てをカバーした。
Version 1.14.0
- 新しい Delphi BatchExport デモ (Demo/Delphi/BatchExport) を追加した。ストリーミングロードに TPdf.LoadCustomDocument を、協調キャンセルに IPdfCancellationToken を、ファイル毎の全体進捗とページ毎の進捗バーを使用して、多数の PDF ファイルを 1 回のパスで JPG に変換する方法を示す。デモはファイル毎に 1 つの TPdf インスタンスを使用し (PDFium 自体はスレッドセーフではない)、抽出が正常に完了するとエクスプローラで出力フォルダを開く。
Version 1.13.0
- 3 つの新しいプロパティを通して TPdfView に非同期レンダリング用 UI オーバーレイを追加: AsyncRendering、LoadingText、LoadingColor。AsyncRendering が True のとき、単一ページペイントパスは描画されたページの上に小さな “Loading...” インジケータを描画し、長時間レンダリングに独自のワーカーを使用するアプリケーションが一貫した視覚的アフォーダンスを共有できるようにする。
- デフォルトは既存の動作を維持: AsyncRendering は False のため、オプトインしないアプリケーションには視覚的な変化はない。
- ドキュメントでは PDFium 自体がスレッドセーフではないことを明確化 — レンダリングをワーカーに実際にオフロードするには、呼び出し側がワーカーごとに 1 つの TPdf を保持する必要がある。今後登場するバッチエクスポートデモがそのパターンを示す。
- Delphi および Lazarus 回帰テストスイートを各 106 ケースに、C++Builder スイートを 93 ケースに拡張し、デフォルト値と 3 プロパティのラウンドトリップをカバーした。
Version 1.12.0
- TPdfView にクリック駆動のリンク処理を追加した。新しい LinkOptions プロパティは 4 つの PDF リンクアクションタイプに対する自動動作を制御する: goto (ページジャンプ)、URI (ShellExecute)、launch (ShellExecute)、embedded GotoR (予約)。デフォルトでは loAutoGoto と loAutoOpenURI を有効化。loAutoLaunch と loAutoEmbeddedGoto はオフのままなので、誤クリックで任意のプログラムが実行されることはない。
- OnAnnotationLinkClick と OnWebLinkClick イベントを追加した。これらは自動アクションの前に発火し、アプリケーションがリンクを検査したり、Handled マークを付けたり、別の処理 (例: セキュリティ確認プロンプト) にリダイレクトしたりできる。
- リンククリックの検出は、ドラッグではなくクリックジェスチャーの場合のみ実行され、新しい MouseDown アンカーを使用するため、パンジェスチャーは引き続き既存のスクロールパスを変更なしに通過する。
- Delphi および Lazarus 回帰テストスイートを各 102 ケースに、C++Builder スイートを 91 ケースに拡張し、デフォルト LinkOptions、セットのラウンドトリップ、イベントハンドラの割り当てをカバーした。
Version 1.11.0
- TPdfView に視覚的な仕上げを追加: PageShadowSize、PageShadowColor、PageBorderColor プロパティがページ矩形の下にオプションのドロップシャドウを、そして周囲に 1 ピクセルの境界線を描画する。デフォルトは以前のフラットな見た目を維持する (PageShadowSize = 0; 境界線はデフォルトの clBlack で描画されるが、呼び出し側が色を変更するまでデフォルトの白背景に溶け込む)。
- 将来のインクリメンタルスクロールアニメーション用のオプトインフラグとして SmoothScroll プロパティを追加。現時点でプロパティはラウンドトリップし、アプリケーションが設定を永続化できるよう配線されている一方、レンダリング側は引き続き既存の即時スクロール動作を使用する。
- Delphi および Lazarus 回帰テストスイートを各 98 ケースに、C++Builder スイートを 89 ケースに拡張し、デフォルト値、プロパティのラウンドトリップ、負のシャドウサイズのクランプをカバーした。
Version 1.10.0
- 新しい TPdf.AddImage と TPdfView.AddImage のオーバーロードを介して直接画像挿入を追加した。これらはファイルパスまたは TBitmap のいずれかを受け取り、既存の TPicture ベースの AddPicture に加わる。AddImage(FileName) は VCL または LCL グラフィックスユニットに登録されている任意のフォーマット (BMP、PngImage ユニット経由の PNG、JPG など) を認識し、AddPicture と同じパイプラインを通過するため動作は同一。
- AddImage(TBitmap) は TPicture の中間ステップをスキップするため、レンダリングやバッチ生成作業で既に TBitmap を保持している呼び出し側がシンプルになる。
- Delphi および Lazarus 回帰テストスイートを各 92 ケースに、C++Builder スイートを 84 ケースに拡張し、ビットマップ挿入、ページオブジェクト境界、nil ビットマップ拒否、BMP ファイル読み込みをカバーした。
Version 1.9.0
- FPdfMatrix ユニットの新しい TPdfMatrix クラスを介して高レベルな変換マトリクスサポートを追加した。TPdfMatrix は PDFium の FS_MATRIX を Translate、Scale、Rotate、HorizontalFlip、VerticalFlip、CentralFlip、Skew、Multiply 用のオブジェクト指向 API でラップし、FPDFPageObj_SetMatrix 等の PDFium API に渡す前に変換を合成するのに適している。
- TPdfMatrix.Multiply は新しい行値を計算する前に 6 つのマトリクス要素を正しくスナップショットし、代替の Pascal 実装が同じ呼び出し中に以前の要素を上書きしてしまい、純粋な平行移動を超える合成で誤った結果を生成する潜在的な問題を修正する。
- Delphi および Lazarus 回帰テストスイートを各 88 ケースに、C++Builder スイートを 81 ケースに拡張し、恒等、リセット、平行移動 / スケール / 反転、ポスト乗算的合成順序、および Multiply 回帰ケースをカバーした。
Version 1.8.0
- 新しい TPdf.LoadCustomDocument(AStream, AOwnsStream) メソッドと TPdfStreamAdapter ヘルパークラスを介してオンデマンドストリームロードを追加。PDFium の FPDF_LoadCustomDocument が裏付けとなる。PDFium は必要時のみ提供された TStream からブロックを読み取るようになり、非常に大きなまたはリモートの PDF は事前のメモリ内コピーを必要としない。
- オプションのストリーム所有権を追加: AOwnsStream = True を渡すと TStream のライフタイムが TPdf に渡され、UnloadDocument 実行時に解放される。
- Delphi および Lazarus 回帰テストスイートを各 79 ケースに、C++Builder スイートを 75 ケースに拡張し、TFileStream 経由のストリーミングロード、所有ストリームのクリーンアップ、外部所有ストリームが unload を生き残る契約をカバーした。
Version 1.7.0
- 新しい FPdfAsync ユニットに協調的な非同期キャンセルプリミティブを追加し、IPdfCancellationToken / IPdfCancellationTokenSource と再利用可能な PdfNoCancellationToken シングルトンを公開した。これにより、長時間実行されるレンダリングおよびエクスポートのワークフローが UI からのクリーンなキャンセルセマンティクスをサポートできる。
- 軽量な TPdfFuture<T> ヘルパーを追加。ワーカーをバックグラウンドスレッドで実行し、TPdfFutureResult<T> エンベロープをメインスレッドにポストバックして、成功、キャンセル、失敗の各ケースを区別する。
- Delphi および Lazarus 回帰テストスイートを各 76 ケースに、C++Builder スイートを 73 ケースに拡張し、キャンセル状態、冪等なキャンセル、コールバックのファンアウト、キャンセル後の登録を共通でカバーした。
Version 1.6.10
- 高レベルな TPdf.PrintPageRanges アクセスを PDF ビューア設定の印刷ページ範囲に追加し、アプリケーションコード用に 1 ベースのページ範囲を返す。
- TPdf.SetFormFieldFlags / SetFormFieldFlagsAt と対応する TPdfView ヘルパーを追加し、パスワードおよびマルチセレクトフラグのカバレッジを含めて、アプリケーションが公開 API を通じて AcroForm フィールドフラグを更新できるようにした。
- Windows サイズの FPDF_DWORD、FPDF_FILEACCESS コールバック、V8 embedder スロットフィールドの PDFium バインディング ABI カバレッジをハードニングした。
Version 1.6.9
- 同梱の標準および V8 PDFium DLL で新たにエクスポートされた FPDF_RenderPageSkia と FPDF_FFLDrawSkia API 用の低レベル Skia レンダリングバインディングを追加した。
- 公開バインディングカバレッジチェックを拡張し、標準と V8 の DLL ロード時に、既存の V8/XFA 機能プローブに加えて Skia レンダリングエントリポイントも検証するようにした。
Version 1.6.8
- 新たにエクスポートされた FPDFText_SetPositions API を通して、既存テキストオブジェクト上の文字毎の位置を設定する TPdf.SetTextPositions と TPdfSingleArray を追加した。
- 現在同梱されている PDFium DLL について FPDFText_SetPositions を必須バインディングに昇格させる一方、DLL がまだエクスポートしていないため Skia レンダリングエントリポイントは引き続き利用不可であることを確認した。
- Delphi、C++Builder、Lazarus 回帰テストスイートを各 65 ケースに拡張し、テスト位置のカバレッジを追加した。
Version 1.6.7
- ドキュメント JavaScript の name-tree アクションへの高レベル TPdf アクセスを追加し、JavaScriptAction および JavaScriptActions を通してアクション名とスクリプトを返す。
- TPdf.FileIdentifier を追加し、永続的および可変的なトレーラ ID を、PDFium のターミネータバイトなしの二進 TBytes として読み取れるようにした。
- 現在のページ上の MediaBox、CropBox、BleedBox、TrimBox、ArtBox 用に TPdf.PageBox、GetPageBox、SetPageBox を追加した。
- 現在同梱されている PDFium DLL は、エクスポートが存在しないため Skia レンダリングエントリポイントのみがランタイムで利用不可であることを確認した。
- Delphi、C++Builder、Lazarus 回帰テストスイートを各 64 ケースに拡張し、ドキュメント JavaScript、トレーラ ID、ページボックスのカバレッジを追加した。
Version 1.6.6
- 同梱の V8 対応 PDFium DLL のランタイムサポートを追加した。ロード前に EnableV8Engine を設定すると、DLLs\Win32 または DLLs\Win64 ツリーから pdfium.v8.dll を選択し、ロードされた DLL が提供する場合に V8/XFA 専用バインディングを公開する。
- V8FeaturesAvailable、XfaBStrHelpersAvailable、GetRecommendedV8Flags、および FPDF_BStr_*、FPDF_GetRecommendedV8Flags、FPDF_GetArrayBufferAllocatorSharedInstance 用の低レベルオプションバインディングを追加した。
- FPDFText_SetPositions をオプションに変更し、その実験的なテキスト位置設定 API をエクスポートしない PDFium DLL でも PDFiumVCL がロードを継続できるようにした。
- Delphi、C++Builder、Lazarus 回帰テストスイートを各 61 ケースに拡張し、標準 DLL および V8 DLL の機能カバレッジを追加した。
Version 1.6.5
- TPdf.StructureElements および TPdfView.StructureElements を通して tagged PDF 構造ツリーの検査を追加した。要素タイプ、タイトル、代替テキスト、実テキスト、拡張テキスト、言語、marked-content ID、子数、属性数を含む。
- TPdfPrintMode と SetPdfPrintMode を通して Windows PDFium 印刷モードの選択を追加した。EMF、テキストのみ、PostScript、パススルー、イメージマスク、Type 42 印刷モードを網羅する。
- JavaScript アクション、注釈フォームフラグ/フォント色、ページオブジェクトのアクティブ状態、インデックス付き挿入、コンテンツマークの float 値、画像 ICC プロファイルデータ、フォームオブジェクトの削除、テキスト位置をカバーする残りの標準 DLL PDFium 公開エクスポートに対する低レベルバインディングを追加した。
- Delphi、C++Builder、Lazarus 回帰テストスイートを各 59 ケースに拡張し、tagged PDF 構造ツリー、印刷モード、公開エクスポートバインディングのカバレッジを追加した。
Version 1.6.4
- Delphi、C++Builder、Lazarus デモを更新し、生成された PDF、エクスポートされたテキスト/画像、バッチ出力フォルダを正常な作成後に自動的に開くようにした。
Version 1.6.3
- 整合された Delphi、C++Builder、Lazarus 回帰テストスイートを各 56 ケースに拡張し、フィットズームヘルパー、デバイス/ページ座標のラウンドトリップ、文字ヒットテスト、隠れウィンドウのビューアコントロールを介したマウスパンに対する TPdfView GUI カバレッジを追加した。
- TPdfView フィクスチャは明示的なビューアサイズと、保護されたマウスハンドラを実行しつつスイートを完全にヘッドレスに保つテスト専用のサブクラスを使用する。
Version 1.6.2
- TPdf.AddPage(0, ...) を修正し、挿入された最初のページがすぐにアクティブページになるようにした。既存のサンプルコードは引き続き動作し、PageNumber は挿入後に有効な 1 ベースページを返す。
- Lazarus パッケージのバージョンを同期し、整合された Delphi、C++Builder、Lazarus 回帰テストスイートを各 52 ケースに拡張した。
Version 1.6.1
- v1.6.0 の PDF バージョンコンプライアンスバリデータにおける不正な最小バージョン要件を修正した: SetState アクションを PDF 1.5 から PDF 1.2 に再分類し、PDF 1.2 Reference 6.9.9 に整合させた。SetState アクションを含む PDF 1.3 / 1.4 の SaveAs ターゲットは拒否されるのではなく正しく保存されるようになった。
- 同じ仕様セクションに従って対応する PDF 1.2 字句チェックを追加: 選択されたターゲットバージョンが PDF 1.2 より古い場合、Sound、Movie、NOP アクションおよび Separation 色空間がブロックされる。
- Delphi、C++Builder、Lazarus 回帰テストスイートを各 50 ケースに拡張し、修正された境界をロックインする肯定的な PDF 1.4 SetState 受け入れテストを追加した。
Version 1.6.0
- 明示的な PDF 1.0 から PDF 1.7 の SaveAs ターゲットを、PDF 1.1 から ISO 32000-1 までの機能タイムライン全体を網羅する完全なバージョン機能バリデータでハードニングした。バリデータは、選択されたターゲットバージョン以降に導入された辞書エントリ、フィルタ名、注釈サブタイプ、アクションタイプ、フォント、色空間、または暗号化パラメータを含む保存をブロックするようになった。例: JBIG2Decode (1.4+)、MarkInfo / Tagged PDF (1.4+)、OutputIntents (1.4+)、ICCBased / DeviceN / BleedBox / TrimBox / ArtBox / StructTreeRoot (1.3+)、Polygon / PolyLine / Caret / Screen / Watermark / Redact 注釈、AES および AES-256 暗号化 (CFM AESV2 / AESV3)、Perms / Legal / Requirements / NeedsRendering カタログエントリ、JavaScript、Trans、SetState、Rendition、GoToE、GoTo3DView などのバージョンゲートされたアクションは、ターゲット PDF バージョンが表現できない場合すべて拒否される。
Version 1.5.13
- Delphi、C++Builder、Lazarus 回帰テストスイートを各 49 ケースに拡張し、それぞれ PDF 1.2 / 1.3 / 1.4 / 1.5 / 1.6 のターゲットに対して、ICCBased 色空間、Tagged PDF MarkInfo、Polygon 注釈、AES (V2) 暗号化、Redact 注釈の拒否を直接カバーするテストを追加した。
Version 1.5.12
- インクリメンタルカタログ書き換えのための SaveAs 後処理を修正した。PDFiumVCL は最新の繰り返し間接オブジェクトを検証するようになり、明示的に古い PDF ターゲットバージョンに保存する際に既存のカタログ /Version オーバーライドが正しく置き換えられる。
- Delphi、C++Builder、Lazarus 回帰テストスイートを各 44 ケースに拡張し、古いカタログ /Version の置き換え、PDF 1.4 カタログバージョンの正規化、選択された PDF ターゲットバージョンが表現できない場合の透過性とポータブルコレクション機能の拒否を直接カバーするテストを追加した。
Version 1.5.11
- 明示的な PDF 1.3、1.4、1.5、1.6、1.7 ターゲット用にバージョン付き SaveAs 出力をハードニングした。PDFiumVCL はカタログバージョンマーカーを正規化し、デフォルトの Fit Height OpenAction をバージョンセーフに保ち、選択されたターゲットバージョンが表現できない場合は新しい PDF 機能を拒否する。
- 明示的な PDF 1.3 から PDF 1.7 ファイルを保存および再ロードし、最終的なヘッダ、デフォルトの Fit Height OpenAction、報告された PDF バージョンを検証する Delphi、C++Builder、Lazarus の回帰テストカバレッジを追加した。
Version 1.5.10
- 仕様のオプション B から C へと進み、3 つの IDE スイート (Tests.PdfView) のすべてに TPdfView スモークテストを追加した。各スイートは隠れた親 TForm を構築し (Pascal 側は TForm.CreateNew、C++Builder 側は
new TForm(NULL, 0))、TPdfView を reparent し、Active := True に設定した後、PageCount、PageNumber のデフォルト、Zoom、Rotation、DisplayMode、および View.Text が基礎となる TPdf.Text と一致することのラウンドトリップ面を検証する。各 IDE スイートは現在 39 ケースを実行する。
Version 1.5.9
- 仕様のオプション A から B へと進み、3 つの IDE スイートのすべてにレンダリングスモークテストを追加した。各 Tests.Render スイートは sample.pdf に対して TPdf.RenderPage を呼び出し、バイト単位のチェックサムではなく 3 つの堅牢なシグナルを検証する: 返されたビットマップが要求されたピクセルサイズと正確に一致すること、異なる要求サイズ (200x100、64x256) が一致するビットマップを生成すること、レンダリングされたページが少なくとも 95% 白い背景で、アンチエイリアスされたテキストをマークする少なくとも 50 (Lazarus: 20) 個の非白ピクセルを持つこと。各 IDE スイートは現在 33 ケースを実行する。
Version 1.5.8
- 元の A(2) テスト計画グループを締めくくり、IDE 毎に 7 つの追加回帰テストを追加した: anHighlight 注釈を構築する TPdf.CreateAnnotation と SaveAs/LoadDocument のラウンドトリップ、Demo/Delphi/FormFill/cmp_fill_out_and_merge_forms.pdf 上の AcroForm 読み取りパス (FormType は ftAcroForm、FormFieldCount > 0、FlattenAllPages はフィールドをゼロに落とす)、およびそれらの機能を持たないドキュメント上の Bookmarks、LinkAnnotationCount、WebLinkCount に対する静かな読み取りパスのカバレッジ。各 IDE スイートは現在 30 ケースを実行する。
Version 1.5.7
- Delphi (DUnitX)、Lazarus (FPCUnit)、C++Builder (GoogleTest) スイートを IDE 毎に 7 つの新しい回帰テストで拡張した: PdfVersion、PageRotation、TPdf.FindFirst / FindNext 部分文字列検索、AddText の原点に対する CharacterOrigin / CharacterRectangle の一致、CreateAttachment の登録と SaveAs/LoadDocument のラウンドトリップ、および v1.3.0 のヨーロッパ言語 TrueType 埋め込みパスが Latin-1 補助コードポイントを保持することを検証するアクセント付きテキストの AddText ラウンドトリップ。
Version 1.5.6
- 保存された PDF に、既存の OpenAction が存在しない場合のデフォルトの 1 ページ目 Fit Height オープンアクションが付与されるようになり、PDF リーダーは生成されたドキュメントを最初にページ高さズームで表示する。
- 生成された OpenAction と Fit Height 設定について Delphi、Lazarus、C++Builder の回帰テストカバレッジを追加した。
Version 1.5.5
- インデックス付きの文字およびフォント検査 API サーフェス (TPdf.FontBaseName、FontFamilyName、FontWeight、FontItalicAngle、FontData、FontIsEmbedded、CharacterFontWeight、CharacterAngle) について、Delphi (DUnitX)、Lazarus (FPCUnit)、C++Builder (GoogleTest) スイートにわたる回帰テストを追加した。Lazarus スイートでは FontData を意図的にスキップしている。これは FPC 下の FPDFFont_GetFontData 内で現在 access violation するためである。
Version 1.5.4
- Delphi サンプルから移植した C++Builder の Attachment デモを追加した。PDF の作成、追加、一覧表示、抽出、削除、MIME サブタイプ表示付きで埋め込みファイル添付の保存をカバーする。
Version 1.5.3
- TPdfView の 2 ページモードを裏付けるスプレッドページ計算を、ユニットレベルヘルパー ComputeSpreadPages(DisplayMode, PageNumber, PageCount, out LeftPageNo, out RightPageNo) として公開した。動作は変わらない。ヘルパーにより、ビューアをインスタンス化することなくカバーを考慮したルールを独立にテスト可能にする。
- Delphi (DUnitX)、Lazarus (FPCUnit)、C++Builder (GoogleTest) スイートにわたって 5 つの回帰テストを追加し、空のドキュメント、標準的な 2 ページペアリング、dmTwoPageContinuousWithCover で単独に立つカバーページ、カバー後のペア、最終ページ / 範囲外のクランプ動作をカバーした。
Version 1.5.2
- TPdf.Language を通したドキュメント言語サポートを追加し、PDF カタログの /Lang エントリにマッピングした。
- TPdf.AttachmentType による添付ファイル MIME サブタイプアクセスを追加した。
- TPdfAnnotationSubtype に anRedact を追加し、TPdf と TPdfView 用のページオブジェクト削除ヘルパーを追加した。
- ビューアと添付ファイルデモを更新し、利用可能な場合に新しい言語および添付ファイルタイプ情報を表示するようにした。
Version 1.5.1
- TPdfView 用に dmTwoPageContinuousWithCover を追加し、ビューアレイアウトが最初のページを単独で表示してから 2 ページの見開きで継続できるようにした。
- Delphi、C++Builder、Lazarus の MultiPageViewer デモを更新し、カバーを考慮した 2 ページ表示モードを公開した。
Version 1.5.0
- Delphi (DUnitX)、Lazarus (FPCUnit)、C++Builder (GoogleTest) 用にスモークレベルの自動テストスイートを追加した。3 つのスイートは Tests\TestData の単一フィクスチャ PDF を共有し、ドキュメントロード、ページ情報、テキスト抽出、メタデータ、保存ラウンドトリップ、PDF ヘッダ検証、Compressed プロパティをカバーする同じ 7 ケースを各々実行する。
Version 1.4.3
- FontProperties デモを強化し、フォントハンドル、フォントデータサイズ、文字メトリックを含む TPdfView と TPdf 双方のフォントメタデータ API を表示するようにした。
- インデックス付き TPdfView の文字およびフォント検査プロパティを追加し、テキストオブジェクトのフォントメタデータを照会するように FontProperties デモを更新した。
Version 1.4.2
- ビューアを必要とせずにテキスト分析を行えるよう、TPdf にインデックス付き文字およびフォント検査プロパティを追加した。文字インデックスのプロパティ (CharacterAngle、CharacterFontSize、CharacterFontWeight) は現在のページのテキストストリームから文字毎のメトリックを照会する。ページオブジェクトインデックスのプロパティ (FontAscent、FontBaseName、FontData、FontDescent、FontFamilyName、FontHandle、FontIsEmbedded、FontItalicAngle、FontWeight) は現在のページ上の任意のテキストオブジェクトに対するフォントメタデータを照会する。
- 非テキストページオブジェクトは、エラーを発生させずすべての Font* プロパティについて安全なゼロまたは空の値を返すため、すべてのページオブジェクトを反復しテキストのみを検査することが容易になる。
- FontBaseName はフォントファミリー名にフォールバックする代わりに PostScript ベースフォント名を直接読み取り、埋め込みフォントについてより正確な識別子を提供する。
Version 1.4.1
- EuropeanText デモの C++Builder および Lazarus バージョンを追加し、サポートされるすべての IDE ファミリーがシステム TrueType フォントによるアクセント付きヨーロッパ言語テキスト生成を検証できるようにした。
- FormFill デモの C++Builder および Lazarus バージョンを追加した。サンプルフォーム PDF、フィールド編集、外観の再生成、入力済み保存、フラット化保存ワークフローを含む。
Version 1.4.0
- Lazarus / Free Pascal サポートを追加した。新しい PDFiumLaz パッケージは LCL ウィジェットセットの下で同じ TPdf、TPdfView、および関連コンポーネントを提供し、既存の Delphi および C++Builder パッケージと並んでライブラリを Lazarus IDE および Free Pascal コンパイラへと拡張する。
- Lazarus 開発者がすべての機能を実行可能な例で探索できるよう、デモの Lazarus バージョンを追加した。
- Free Pascal の条件付き defines が Delphi のコンパイラバージョンチェックと一緒に評価され、FPC ビルドが Delphi 固有のユニット名を解決しようとして失敗する Lazarus コンパイル問題を修正した。
Version 1.3.1
- ヘルプセットにフォームフラット化ワークフローを文書化した: GenerateFormAppearances、FlattenPage、FlattenAllPages、および関連する FLAT_* / FLATTEN_* 定数を、TPdf、TPdfView、API リファレンス、機能マトリクス、プログラミング例に網羅した。
- 概要ページのアーキテクチャテーブルを修正し、Lib フォルダに同梱される実際のバインディングユニットを一覧するようにした。
Version 1.3.0
- PDF 作成時のヨーロッパ言語文字サポートを改善した。TPdf.AddText はテキストオブジェクトを作成する前に、対応するシステム TrueType フォントをロードしキャッシュするようになり、PDFium 組み込みの標準フォントが表現できないチェコ語、フランス語、ドイツ語、スペイン語、ポルトガル語、ポーランド語、トルコ語のアクセント付き文字を保持する。
- これまで非 ASCII ラテンテキストに対してクエスチョンマークまたは置換グリフを生成していたアプリケーションは、コード変更なしで正しくレンダリングされるようになる。この機能を例示する EuropeanText デモを追加した。
Version 1.2.0
- TPdf に AcroForm 外観の更新機能を追加した: FormField[] の値を変更した後 GenerateFormAppearances を呼び出すとウィジェットの外観が更新され、インタラクティブな編集セッションを必要とせずに入力値が標準 PDF リーダーで表示されるようになる。
- TPdf (FlattenPage / FlattenAllPages) および TPdfView (現在のビューページ用 FlattenPage) にフォームフラット化ヘルパーを追加した。フラット化により入力されたフィールド値が通常のページコンテンツとして恒久的に埋め込まれ、インタラクティブなフォームレイヤーが削除されて、すべてのビューアで一貫してレンダリングされる静的ドキュメントが生成される。
- Demo\Delphi\FormFill を追加し、サンプル AcroForm PDF を使用した入力後保存および入力後フラット化のワークフローを示した。
Version 1.1.2
- 保存時の PDF ストリーム圧縮を追加した。新しい TPdf.Compressed プロパティ (デフォルトで有効) は、保存時に未圧縮のコンテンツストリームを FlateDecode 圧縮ストリームとして書き換え、プログラムで生成された PDF のファイルサイズを大幅に削減する。プレーンな未圧縮出力を必要とするアプリケーションは SaveAs を呼び出す前に Compressed を False に設定できる。
Version 1.1.1
- Win64 パッケージのビルドが設計時登録ユニットを含まなくなり、Win64 パッケージがランタイム専用のコンテキストでデプロイされる際のビルド時の失敗を防ぐ。
- PDFium DLL ローダーは、標準の pdfium.dll および pdfium.v8.dll の名前を使って Win32 または Win64 アプリケーションサブディレクトリを最初に検索し、その後アプリケーションのフラットディレクトリと Windows システムディレクトリにフォールバックするようになった。これによりコンポーネントパッケージに同梱される DLL レイアウトと整合し、インストールが容易になる。
Version 1.1.0
- TPdfView 2 ページモードの視覚的なクリッピング欠陥を修正した: 左右のページタイルが単一のクリッピング矩形を共有していたため、ページコンテンツがガター越しに滲み出ていた。各タイルは独立してクリップされるようになり、コンテンツはページ境界内に収まる。
- PDFium DLL が見つからない場合の Delphi デモエラーメッセージを改善し、期待される DLL 名と場所を明示するわかりやすいプロンプトを提供するようにした。