losLab ソフトウェア開発ブログ

PDFium Component

Software Development Blog

PDFium Component

DelphiのPDFium ComponentでPDFフォントプロパティを読み取る

PDFium Componentを使用してDelphiからPDF内のフォントを検査します。グリフのファミリ名、ベース名、太さ、斜体の角度、およびフォントフェイスが埋め込まれているかどうかを読み取ります。 PDF内のすべての可視文字には、それを描画したフォントへの参照が含まれており、PDFium

PDFium Component

DelphiにおけるPDFiumを使用したPDFセキュリティリスクの監査

PDFを信頼する前に、そのリスク要因を列挙しましょう。Delphiにおいて、PDFiumでJavaScript、起動アクション、署名許可を監査する方法を解説します PDFは単なる紙ではありません。ファイルが開いたときに実行されるスクリプト、外部プログラムを起動するリンク、Webサーバーにアクセスするリンク、ファイル

PDFium Component

PDFium Componentを使用してDelphiでPDFビューアを構築する

PDFium Componentを使用してDelphiで機能するPDFビューアを組み立てます。TPdfをTPdfViewに接続し、ドキュメントをロードしてレンダリングしてから、ページング、ズーム、およびフィットモードのナビゲーションを追加します。 DelphiにおけるPDFビューアは、2つのコンポーネントとそれらの間の

PDFium Component

DelphiのPDFium Componentを使用してスキャンした画像を1つのPDFに結合する

PDFium Componentを使用してスキャンされたページのフォルダーを1つのPDFにマージするための、機能するDelphiレシピ。ドキュメントを作成し、画像ごとにページを追加し、サイズに合わせてスケーリングして保存します。 ある保険金請求処理チームは、30年分の紙のファイルをシートフィードスキャナーで処理していま

PDFium Component

PDFium Componentを使用してDelphiでPDFページをJPEG画像にレンダリングする

PDFium Componentを使用してDelphiでPDFページをJPEGにラスタライズします。DPIをピクセルサイズに変換し、各ページをビットマップにレンダリングしてから、選択した品質でTJPEGImageを使用してエンコードします。 PDFページをJPEGにレンダリングすることは、人々が一緒に実行し、その後別々

PDFium Component

DelphiでのPDFium QuadPointsによるテキストマークアップ注釈

DelphiでPDFiumを使用してハイライトおよび下線注釈を作成:QuadPointsの順序、FPDFAnnot_SetAttachmentPointsがFalseを返す理由、およびAppendによる解決策について解説します PDFium Componentは、 を介して、テキストマークアップ注釈(ハイライト、下線、

PDFium Component

DelphiでのPDFium DLLの配置:ロード失敗の修正

Delphiにおけるpdfium.dllのロード失敗の診断:32/64ビットのERROR_BAD_EXE_FORMAT 193の修正、古いDLLの特定、およびスレッドをまたぐ安全なPDFiumコンポーネントのロード 顧客の環境でpdfium.dllのロードが拒否された場合、DelphiおよびLazarus用のPDFiu

PDFium Component

DelphiでのPDFiumによるXFAフォームの検出と抽出

DelphiでXFAフォームを検出し、PDFiumコンポーネントを使用してテンプレート、データセット、構成パッケージを生のXMLとして抽出する — 静的なパッケージ読み取りにV8ランタイムは不要です はい、PDFiumはXFAフォームをサポートしていますが、1つ重要な区分があります

PDFium Component

DelphiのPDFium ComponentにおけるXFDFのエクスポートとインポート

DelphiのPDFium ComponentでXFDFフォームデータと注釈をエクスポートおよびインポート:ISO 19444-1ラウンドトリップ、18の注釈サブタイプ、ロケールセーフな数値表示 DelphiおよびLazarus用のPDFium Componentは、ISO 19444-1で定義されたXML交換フォーマ

PDFium Component

DelphiのPDFiumコンポーネントを使用してPDFから画像を抽出する

DelphiのPDFiumコンポーネントを使用してPDFから埋め込み画像を抽出します:BitmapCountの読み取り、各Bitmap[]の取得、サイレントオープン失敗の処理、出力のJPEGまたはBMPとしての保存。 PDFは画像をコンテンツストリーム内のファーストクラスオブジェクトとして保存します

PDFium Component

DelphiのPDFium Componentを用いたPDFファイルからのテキスト抽出

DelphiのPDFium ComponentでPDFのテキストを抽出:Character[]による生のグリフアクセス、ReadablePageContentによる段落構造の取得、Activeプロパティのサイレント失敗対策 PDFのテキスト抽出は単純に見えますが、テキストレイヤーが存在しないドキュメントや、破損している

PDFium Component

PDFium Componentバインディングの堅牢化:ABIとメモリの安全性

CライブラリをPascalでラップすると、鋭い角が隠されます。。cdeclコールバックからFPC Win64のポインタ幅切り捨てまで、PDFiumバインディングにおける実際の欠陥とその修正について解説します CライブラリをラップしたPascalバインディングは、普通のPascalコードのように読めます

PDFium Component

DelphiでのPDF署名とPAdESレベルの検査

DelphiおよびLazarus用のPDFiumコンポーネントを使用してPDF署名を読み取ります:SubFilter、ByteRange、CMSを検査し、PAdES B-BからB-LTAの基準レベルを検出します 署名付きのPDFを受け取り、ビューアに誰が署名したか、いつ署名されたか、署名がファイル全体をカバーしているか

PDFium Component

Delphiでの長期PDF署名:PAdES B-LTおよびB-LTA

DelphiでPDFiumコンポーネントを使用して長期PAdES署名を追加します:B-T、B-LT、およびB-LTAの基準レベルのためのRFC 3161タイムスタンプ、DSS検証ストア、およびDocTimeStamps 署名用証明書が期限切れになりCAが交代した何年も後でも署名付きPDFを検証できるように、PDFium

PDFium Component

PDFiumを使用したN-upインポジションとページの並べ替え

複数のPDFページを1枚の用紙に配置し、ページの順序を並べ替え、またはサブセットを抽出します。。PDFiumのインポジションおよびページ移動APIと、返されるハンドルについて解説します 結合(Merge)と分割(Split)は、誰もが最初に手を伸ばす2つのページ操作であり、多くの用途をカバーします

PDFium Component

DelphiでPDF辞書を安全に解析する:名前トークン

Delphiでのサブ文字列キー検索がPDF辞書解析を破損させる理由:ISO 32000-1に基づく名前トークン全体の完全一致と、悪意のあるPDFに対するリソース制限 のような部分文字列検索は、PDFの辞書を読み取るための正しいツールではありません。なぜなら、PDFの名前キーはプレフィックス(接頭辞)を共有することがある

PDFium Component

PDFium Component: Delphi での accessible PDF reader design

PDFium Component の accessible PDF reader design を、アーキテクチャ判断、診断、検証、境界ケース、Delphi/C++Builder のチェック項目から解説 Delphi/C++Builder には PDFium Component のワークフローを、Lazarus/FPC

PDFium Component

PDFium Component: Delphi での annotation review UI

PDFium Component の annotation review UI を、アーキテクチャ判断、診断、検証、境界ケース、Delphi/C++Builder のチェック項目から解説 Delphi/C++Builder には PDFium Component のワークフローを、Lazarus/FPC には

PDFium Component

Delphiでのキャンセル可能なFutureを用いたバックグラウンドPDFレンダリング

長時間のPDFレンダリングはUIスレッドから切り離す必要があります。Delphiにおいて、PDFiumのバインディングがキャンセル可能なFutureを用いてバックグラウンドスレッドでどのように作業を実行するかをご覧ください。 PDFiumでのページのレンダリングは同期的です。ライブラリを呼び出すと、渡したビットマップに

PDFium Component

Delphi(PDFium)でのキャンセル可能なプログレッシブPDFレンダリング

遅いページレンダリングがUIをフリーズさせたり、最後まで実行されたりしてはなりません。Delphiにおいて、PDFiumのプログレッシブレンダリングがIFSDK_PAUSEを介してどのようにキャンセル可能になるかをご覧ください。 ほとんどのPDFページは数ミリ秒でラスタライズされ、それについて考えることはありません

PDFium Component

Delphi対FPC:PDFiumビルドにおけるPDFコードの4つの隠れた罠

DelphiとFPC/Lazarusの間の4つの隠れた仕様差がPDFiumのコードに影響:レコードの一時オブジェクトの寿命、範囲チェック、E2010 TBytesキャスト、およびAnsiStringのバイト消失について解説します 同じObject Pascalソースコードであっても、DelphiとFPC/Lazarus

PDFium Component

PDFiumの絵文字とCJK文字がDelphiのWideCharを壊す

FPDFText_GetUnicodeは完全な32ビットのコードポイントを返すが、WideCharは16ビットしか保持できない。そのためDelphiのPDFiumコンポーネントは絵文字と稀なCJK表意文字を破損させうる

PDFium Component

Delphi で PDFium VCL を使った PDF/A アーカイブ準拠

Delphi で PDFium Component を使い、SaveAsPdfA、XMP、ICC OutputIntent の挿入、a/b/u 準拠、そして落とし穴まで含めて、veraPDF に通る PDF/A アーカイブを作成します。 PDF/A-1b とマークする変換器を出荷し、顧客の記録システムがそれらを 1

PDFium Component

Delphi で PDFium VCL を使う PDF/A プレフライト検証

Delphi と PDFium Component で、PDF/A のプレフライト検証器をバイトレベルで実装する方法を解説。29 の検証項目、part 別の判定、object stream 展開、完全なコンテンツ解析なしでの確認を扱う アーカイブ取り込みゲートは、机上のどのビューアでも問題なく開く「PDF/A-2b」フ

PDFium Component

Delphi の PDFium で行う PDF/UA 構造ツリー検証

PDFium VCL で実際の PDF タグツリーを走査し、Figure の Alt、Formula の代替テキスト、Note ID の一意性など、バイトレベル走査では見落とす PDF/UA の内容エラーを検出します。 プリフライトではそのファイルは PDF/UA 適合と出ます

PDFium Component

Delphi の PDFium VCL で行う PDF/VT 可変データ印刷

Delphi の PDFium VCL で PDF/VT-1 の可変データ印刷ファイルを生成し、検証する方法を解説します。DPart ツリー、必須の PDF/X-4 組み合わせ、ISO 16612-2 の落とし穴を扱います。 帳票を 8 万ページ連結したデータを取引先の印刷会社へ渡したところ、返ってきた差し戻しはたった

PDFium Component

DelphiでPDFプリフライトレポートをバッチ処理するPDFium Component CLI

PDFium ComponentでDelphi向けPDF/AおよびPDF/UAプリフライトを自動化:バッチループ、終了コード、JSONおよびHTMLレポート、空の結果が合格でない理由を解説 バッチプリフライトツールはウィンドウのないコンソールプログラムです。PDFフォルダを指定すると、指定した適合規格に対して各ファイル

PDFium Component

PDFium Component: Delphi での secure PDF preview surfaces

PDFium Component の secure PDF preview surfaces を、アーキテクチャ判断、診断、検証、境界ケース、Delphi/C++Builder のチェック項目から解説 Delphi/C++Builder には PDFium Component のワークフローを、Lazarus/FPC

PDFium Component

DelphiでレイアウトとワードラップのためにPDFテキストを測定する

PDFテキストのレイアウトには、描画する前に文字列の幅が必要です。Delphiでのワードラップのために、PDFiumバインディングがページに触れることなくテキストを測定する方法をご覧ください。 PDFページにテキストを配置する呼び出しは簡単です。 に文字列、フォント、サイズ、位置を指定すると、グリフが表示されます

PDFium Component

DelphiのPDFium二重回転とフィットズームのバグ

PDFiumでDelphiの二重回転してしまうPDFサムネイルを修正する:レンダーの回転パラメータが加算式である理由、そして90/270度ページで幅と高さがフィットズームでどう入れ替わるか

PDFium Component

Delphi PDFiumビューアーで単語単位のTTSハイライト表示

PDFiumの単語ボックスを使用してDelphiでテキスト読み上げと単語ハイライトを同期:TrackReadingWordAt、レンダリング順序、自動スクロール、Unicodeの落とし穴 読み上げ機能には音声以外に1つの可視的な役割があります。各単語が読まれるとき、ページ上でその単語をハイライトし、見えるようにしておく

PDFium Component

DelphiのPDFium Componentを使用してPDFドキュメントを印刷する

PDFium Componentを使用してDelphiからPDFを印刷します。RenderPageとrePrintingでページをレンダリングし、StretchDIBitsを介してビットマップをTPrinterに送信し、用紙に合わせ、回転を処理します。 PDFの座標はポイント単位であり、プリンターの座標はデバイス単位で

PDFium Component

PDFiumを使用したForm XObjectを介した再利用可能なページスタンプ

透かしやロゴを一度描画し、すべてのページに配置します。PDFiumのForm XObjectがDelphiで再利用可能なページスタンプをどのように作成するか、およびハンドルのライフタイムルールをご覧ください。 ドキュメントのすべてのページに透かしやロゴをスタンプすることは、ファイルサイズインスペクターで結果を開くまでは

PDFium Component

DelphiのPDFium ComponentにおけるAcroForm JavaScriptの実行

DelphiのPDFium ComponentでAcroForm JavaScriptを実行:フィールド計算が機能しない理由、V8 DLLの要件、危険なPDFアクションを拒否するホストイベント Acrobatでは合計が再計算されるのに、自作のDelphiビューアではフリーズしたままであるフォームは、レンダリングのバグで

PDFium Component

DelphiでのPDFiumを使用したPAdES B-BによるPDF署名

DelphiでPDFiumコンポーネントを使用してPDFにPAdES B-Bデジタル署名を追加します:自己完結型SHA-256、CMS、およびバイトレベルの署名のためのWindows CNGバックエンド PDFiumコンポーネントは、 メソッドを介してPDFにPAdES B-Bデジタル署名を行います

PDFium Component

DelphiのPDFiumコンポーネントを使用してPDFドキュメントを分割する

DelphiのPDFiumコンポーネントを使用して、ページ、範囲、またはブックマークによってPDFを分割する方法:TPdf.ImportPages、CreateDocument、SaveAsの結果チェック、およびActiveフラグのリセット。 PDFiumコンポーネントには、PDF分割のための1つのメソッド、

PDFium Component

DelphiにおいてPDFiumで巨大なPDFをオンデマンドでストリーミングする

数ギガバイトのPDFを丸ごとロードする必要はありません。TStreamアダプターがPDFiumのオンデマンドFPDF_FILEACCESSコールバックにどのようにフィードするか、およびDelphiで4 GiBの制限にガードが必要な理由をご覧ください。 スキャンされたアーカイブは、単一のPDFで数ギガバイトに及ぶことがあ

PDFium Component

DelphiのPDFiumコンポーネントによる並べて表示するPDF比較

DelphiのPDFiumコンポーネントを使用して並べて表示するPDFビューアーを構築する:2つまたは3つの独立したパネル、TPdfView.Zoomによるビューごとのズーム、および同期されたページナビゲーション。 2つのドキュメントを同時に開き、同じページ番号で、それぞれが独自のスクロール可能なパネルに表示される

PDFium Component

圧縮されたPDFの検証:オブジェクトおよびXRefストリーム

現代のPDFは、圧縮されたオブジェクトおよびxrefストリーム内に構造を隠します。DelphiバリデーターがどのようにObjStmを展開し、PDFiumでxrefストリームのトレーラーを読み取るかをご覧ください。 あなたは小さなバリデーターを作成します。それはPDFを開き、最後までシークし、

PDFium Component

PDFium Componentを使用したDelphiでのPDF/X検証

Delphiで印刷対応のPDF/Xファイルを検証:PDFium ComponentのValidatePdfXが、TrimBox、Trapped、OPI、LZW、およびフォントの埋め込みに関するISO 15930チェックを実行します Delphi向けのPDFium Componentは、

PDFium Component

検証ツールがPAdES署名を拒否する理由:DelphiのPDFium

PDF検証ツールがPAdES署名を拒否する理由:ゼロのByteRangeフィールド、D:日付プレフィックスの欠落、および増分更新後の/Encryptの消失と、PDFium Componentにおける対策 Delphi用のPDFium Componentでデバッグしたほぼすべてのケースにおいて、検証ツールがPAdES署名