ソフトウェア開発ブログ

日本語記事

PDF、Delphi、ドキュメントソフトウェアに関する losLab の技術ノートを閲覧できます

Software Development Blog

HotPDF Component: Delphi での AcroForm fields and action logic

HotPDF は Delphi/C++Builder アプリケーション向けのネイティブ VCL PDF ライブラリです。外部 PDF ランタイムを配置せずに、PDF 作成、編集、フォーム、注釈、暗号化、デジタル署名、Unicode フォント、標準対応出力、プリフライトレポートを扱えます

Software Development Blog

HotPDF Component: Delphi での AES-256 encryption and permission policy

HotPDF は Delphi/C++Builder アプリケーション向けのネイティブ VCL PDF ライブラリです。外部 PDF ランタイムを配置せずに、PDF 作成、編集、フォーム、注釈、暗号化、デジタル署名、Unicode フォント、標準対応出力、プリフライトレポートを扱えます

Software Development Blog

HotPDF Component: Delphi での Unicode text shaping for complex scripts

HotPDF は Delphi/C++Builder アプリケーション向けのネイティブ VCL PDF ライブラリです。外部 PDF ランタイムを配置せずに、PDF 作成、編集、フォーム、注釈、暗号化、デジタル署名、Unicode フォント、標準対応出力、プリフライトレポートを扱えます

Software Development Blog

HotPDF Delphi コンポーネントを使用して PDF 注釈をマスターする

PDF注釈は、インタラクティブで共同作業可能なドキュメントを作成するための最も強力な機能の1つです。これにより、ユーザーは元のドキュメント構造を変更せずに、コメント、ハイライト、スタンプ、およびマルチメディアコンテンツを直接PDFファイルに追加できます。この包括的なガイドでは、さまざまな種類のPDF注釈の実装方法について説明します。HotPDF…

Software Development Blog

HotPDF Component: Delphi での digital signatures and PAdES-ready signing

HotPDF は Delphi/C++Builder アプリケーション向けのネイティブ VCL PDF ライブラリです。外部 PDF ランタイムを配置せずに、PDF 作成、編集、フォーム、注釈、暗号化、デジタル署名、Unicode フォント、標準対応出力、プリフライトレポートを扱えます

Software Development Blog

HotPDF Component: Delphi での Direct File API processing for large PDFs

HotPDF は Delphi/C++Builder アプリケーション向けのネイティブ VCL PDF ライブラリです。外部 PDF ランタイムを配置せずに、PDF 作成、編集、フォーム、注釈、暗号化、デジタル署名、Unicode フォント、標準対応出力、プリフライトレポートを扱えます

Software Development Blog

フォントのサブセット化を警告なしに無効化していたEndDocのバグ

レポートを生成し、TrueTypeフォントを埋め込むと、出力ファイルはどのビューアでも正しく開きます。グリフは正しく、テキストは選択可能で、ファイルも有効です。唯一の問題はそのサイズです。数十文字のラテン文字しか使用していないドキュメントに、350 KBのフォント全体が格納されてしまいます。中国語の段落を1つ印刷したドキュメントには、本来必要な0.5メガバイト程度のスライスではなく、14…

Software Development Blog

Type 0サンプル関数を使用したPDFでの3DカラーLUT

PDF関数は、仕様書の中で最も目立たない領域の1つです。多くの開発者は、Type 2アキシャルシェーディングで2つのカラー間をフェードさせるために必要なものとして一度見かけるだけで、二度と目を向けないかもしれません。しかし、この関数機能は、シェーディング、転送関数、ハーフトーンスポット関数、特色のグラデーション(Separation…

Software Development Blog

HotPDF Component: Delphi での object streams とインクリメンタル更新

HotPDF は Delphi/C++Builder アプリケーション向けのネイティブ VCL PDF ライブラリです。外部 PDF ランタイムを配置せずに、PDF 作成、編集、フォーム、注釈、暗号化、デジタル署名、Unicode フォント、標準対応出力、プリフライトレポートを扱えます

Software Development Blog

Pure DelphiによるOpenType GSUBの異体字(Stylistic Alternates)

デザイナーは、見出し用に1階建てのa、表用にスラッシュ付きゼロ、あるいはカバー用にスワッシュ(飾り)付き大文字を持つフォントを選択します。これらのグリフはフォントに既に含まれています。単にデフォルトになっていないだけです。デフォルトのaは、cmapテーブルを介してキャラクターから1つのグリフへとマッピングされ、異体字(alternate)はいくつかのグリフID離れた場所に配置されており、置換ルール…

Software Development Blog

HotPDF Component: Delphi での PDF/A, PDF/X, and PDF/UA validation

HotPDF は Delphi/C++Builder アプリケーション向けのネイティブ VCL PDF ライブラリです。外部 PDF ランタイムを配置せずに、PDF 作成、編集、フォーム、注釈、暗号化、デジタル署名、Unicode フォント、標準対応出力、プリフライトレポートを扱えます

Software Development Blog

悪意のあるPKCS#12に対するDelphi PDF署名機能の堅牢化

PDFに署名するとき、署名キーは自分でコントロールするものだと考えがちです。それは自身が生成し、自身で設定したパスワードで保護された.pfxファイルの中にあります。そのファイルを読み取るコードは、境界ではなく単なるパイプラインのように思えます。しかし、証明書があなた自身のものでなくなった瞬間、その直感は誤りとなります。ユーザーに任意の.pfxを選択させるデスクトップツール、アップロードされた資格情…

Software Development Blog

HotPDF Component: Delphi での automated PDF preflight reports

HotPDF は Delphi/C++Builder アプリケーション向けのネイティブ VCL PDF ライブラリです。外部 PDF ランタイムを配置せずに、PDF 作成、編集、フォーム、注釈、暗号化、デジタル署名、Unicode フォント、標準対応出力、プリフライトレポートを扱えます

Software Development Blog

HotPDF Component: Delphi での report output with fonts and images

HotPDF は Delphi/C++Builder アプリケーション向けのネイティブ VCL PDF ライブラリです。外部 PDF ランタイムを配置せずに、PDF 作成、編集、フォーム、注釈、暗号化、デジタル署名、Unicode フォント、標準対応出力、プリフライトレポートを扱えます

Software Development Blog

HotPDF Component: Delphi での XFA, AcroForm, and flattening decisions

HotPDF は Delphi/C++Builder アプリケーション向けのネイティブ VCL PDF ライブラリです。外部 PDF ランタイムを配置せずに、PDF 作成、編集、フォーム、注釈、暗号化、デジタル署名、Unicode フォント、標準対応出力、プリフライトレポートを扱えます

Software Development Blog

HotPDF のキャンバス描画

このHotPDFコンポーネントのサンプルは、VCLアプリケーションでDelphi開発者が既に使用しているのと同じTCanvasワークフローを使用して、ベクトル形式のPDF描画を作成する方法を示しています。 この例では、PDF出力を別の描画モデルとして扱うのではなく、HotPDF.Canvasを使用してテキストと形状を書き込み、その結果をPDF ドキュメントとして保存します

Software Development Blog

HotPDF コンポーネント Delphi TextOut サンプルプロジェクト

これは包括的なHotPDFコンポーネントがTextOut サンプルは、高度なフォント処理、文字セットのサポート、テキストのスケーリング、間隔の調整、レンダリングモードを示しています。このサンプルは、Delphi アプリケーションでの PDF 作成のための実践的な例を含む、詳細なフォントと文字セットのデモンストレーションを作成します

Software Development Blog

HotPDF コンポーネントの RtLTextOut 関数

右から左(RTL)の言語は、世界の書面によるコミュニケーションシステムにおいて重要な位置を占めており、世界中で4億人以上の人々に利用されています。これらの言語には、アラビア語、ヘブライ語、ペルシャ語(ファルシ語)、ウルドゥー語、パシュトゥー語などがあり、それぞれ独自の特性と文化的意義を持っています

Software Development Blog

HotPDF コンポーネントの再利用の問題を修正

HotPDF Delphiコンポーネントを利用する際に、「BeginDocを利用する前にドキュメントをロードしてください」というエラーが発生した場合の解決方法を学びましょう。HotPDF Delphiコンポーネント戦略的な状態管理と自動ウィンドウ列挙技術により、PDFファイルのアクセス競合を解消します

Software Development Blog

HotPDF チャートのサンプル

このサンプルは、Delphi の TeeChart で作成したチャートを HotPDF で PDF 文書へ出力する流れを示します。業務レポート、分析結果、ダッシュボードのスナップショットを配布可能な PDF として残したい場合に役立ちます

Software Development Blog

HotPDF でテーブルを PDF に出力する

このHotPDFコンポーネントのサンプルは、データベースのレコードをページングされたPDFテーブルに変換します。これは、コンパクトなレポート作成パターンであり、データセットから行を読み込み、テーブルヘッダーを描画し、各行を既知の垂直位置に印刷し、現在のページがいっぱいになったら新しいページを追加します

Software Development Blog

HotPDF ハイパーリンクのサンプル

この HotPDF サンプルは、作成した PDF 文書にクリック可能なハイパーリンクを配置する方法を示します。ハイパーリンクは小さな機能ですが、請求書、レポート、製品シート、ドキュメント エクスポート、そして読者を Web サイト、注文ページ、サポート フォーム、オンライン マニュアルへ戻したいあらゆる PDF で重要です

Software Development Blog

HotPDFコンポーネント縦書きサンプルプロジェクト

HotPDFコンポーネント縦書きサンプルプロジェクト. HotPDF Delphiコンポーネント:PDFドキュメントでの垂直テキストレイアウトの作成 この包括的なガイドでは、 HotPDFコンポーネントが 開発者が簡単にPDFドキュメントでUnicodeの垂直テキストを作成する方法を示します

Software Development Blog

PDF バーコード生成の総合ガイド

現代のデジタル世界において、バーコードは在庫管理、小売業務、データ追跡システムの基盤となっています。 さまざまな種類のバーコードを含むプロフェッショナルなPDFドキュメントを作成する能力は、あらゆる業界の企業にとって不可欠です。…

Software Development Blog

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

PDFは単なる紙ではありません。ファイルが開いたときに実行されるスクリプト、外部プログラムを起動するリンク、Webサーバーにアクセスするリンク、ファイル内にネストされたファイル、そして誰かが保証した後にドキュメントが変更されていないことを証明する署名を保持できるコンテナです。制御できないソースからファイルが届いた場合、最も安全な最初のステップはレンダリングすることではありません。ファイル自身に関す…

Software Development Blog

Delphi で PDFium Component を使い PDF ドキュメントを印刷する

正確なレンダリングと適切なスケーリングでPDF ドキュメントを印刷することは、一般的な要件です。Print PDFデモでは、PDFium Componentコンポーネントを使って、プレビュー、ページ選択、品質オプションを備えたプロフェッショナルなPDF印刷を実装する方法を示します

Software Development Blog

Delphi で PDFium Component を使い機能豊富な PDF ビューアを構築する

このチュートリアルでは、PDFium Componentを使って、プロフェッショナルなPDF ビューアアプリケーションを作成する方法について説明します。PDFium Componentは、GoogleのPDFiumレンダリングエンジンをラップする、強力なDelphiコンポーネントです。このデモでは、あらゆるPDFアプリケーションの基盤となる基本的な表示機能を実証します

Software Development Blog

Delphi の PDFium Component を利用した PDF フォント プロパティの分析

PDF ドキュメントで使用されているフォントを理解することは、品質管理、アクセシビリティ確認、ドキュメント解析にとって重要です。フォントプロパティこのデモプログラムでは、PDFium Component を使用して PDF 内の文字に関する詳細なフォント情報へアクセスする方法を示します

Software Development Blog

Delphi の PDFium Component を利用して PDF ドキュメントから画像を抽出する

PDFドキュメントには、多くの場合、貴重な画像(写真、図、グラフ、およびグラフィック)が含まれています。画像の抽出このデモでは、PDFium Componentを利用して、PDFドキュメントから埋め込まれたすべての画像を抽出し、それらの特性に基づいて最適な形式で保存する方法を示します

Software Development Blog

Delphi の PDFium Component で PDF ドキュメントを最初から作成する

PDFium Component は PDF の表示や解析だけでなく、新しい PDF ドキュメントの作成にも利用できます。このデモでは、Delphi アプリケーションからページを作成し、テキスト、図形、表、透かし、画像を配置する基本的な流れを確認します

Software Development Blog

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

CライブラリをラップしたPascalバインディングは、普通のPascalコードのように読めます。メソッドを呼び出し、レコードを受け取り、割り当てたメモリを解放します。しかし問題は、PDFiumが独自の呼び出し規約、独自の整数幅、およびメモリの所有者と解放者に関する独自のルールを持つCおよびC++ライブラリである点です。これらの契約は、言語の境界を自動的に超えることはありません。これらすべての契約を…

Software Development Blog

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

結合(Merge)と分割(Split)は、誰もが最初に手を伸ばす2つのページ操作であり、多くの用途をカバーします。しかし、すべてをカバーできるわけではありません。ファイルを丸ごと移動するのではなく、ページを再配置する別の種類のタスクがあります。配布資料用に4枚のスライドを1枚の用紙に並べたり、ドキュメントの末尾のページを先頭にドラッグしたり、残りの部分に触れることなく3、7、12ページ目を短い抜粋…

Software Development Blog

PDFium Component: Delphi での accessible PDF reader design

Delphi/C++Builder には PDFium Component のワークフローを、Lazarus/FPC には PDFium LCL Component のワークフローを組み込み、表示、レンダリング、フォーム、印刷、プリフライトレポート、標準対応の検証をソースコード付きコンポーネントで実装できます

Software Development Blog

PDFium Component: Delphi での annotation review UI

Delphi/C++Builder には PDFium Component のワークフローを、Lazarus/FPC には PDFium LCL Component のワークフローを組み込み、表示、レンダリング、フォーム、印刷、プリフライトレポート、標準対応の検証をソースコード付きコンポーネントで実装できます

Software Development Blog

PDFium Component: Delphi での form-field navigation and viewer validation

Delphi/C++Builder には PDFium Component のワークフローを、Lazarus/FPC には PDFium LCL Component のワークフローを組み込み、表示、レンダリング、フォーム、印刷、プリフライトレポート、標準対応の検証をソースコード付きコンポーネントで実装できます

Software Development Blog

PDFium Component: Delphi での Lazarus and Free Pascal viewer integration

Delphi/C++Builder には PDFium Component のワークフローを、Lazarus/FPC には PDFium LCL Component のワークフローを組み込み、表示、レンダリング、フォーム、印刷、プリフライトレポート、標準対応の検証をソースコード付きコンポーネントで実装できます

Software Development Blog

PDFium Component: Delphi での low-vision color filters and reading modes

Delphi/C++Builder には PDFium Component のワークフローを、Lazarus/FPC には PDFium LCL Component のワークフローを組み込み、表示、レンダリング、フォーム、印刷、プリフライトレポート、標準対応の検証をソースコード付きコンポーネントで実装できます

Software Development Blog

PDFium Component: Delphi での PDF intake and review workbench

Delphi/C++Builder には PDFium Component のワークフローを、Lazarus/FPC には PDFium LCL Component のワークフローを組み込み、表示、レンダリング、フォーム、印刷、プリフライトレポート、標準対応の検証をソースコード付きコンポーネントで実装できます

Software Development Blog

PDFium Component: Delphi での PreflightReportCli batch validation

Delphi/C++Builder には PDFium Component のワークフローを、Lazarus/FPC には PDFium LCL Component のワークフローを組み込み、表示、レンダリング、フォーム、印刷、プリフライトレポート、標準対応の検証をソースコード付きコンポーネントで実装できます

Software Development Blog

PDFium Component: Delphi での render cache and zoom performance

Delphi/C++Builder には PDFium Component のワークフローを、Lazarus/FPC には PDFium LCL Component のワークフローを組み込み、表示、レンダリング、フォーム、印刷、プリフライトレポート、標準対応の検証をソースコード付きコンポーネントで実装できます

Software Development Blog

PDFium Component: Delphi での secure PDF preview surfaces

Delphi/C++Builder には PDFium Component のワークフローを、Lazarus/FPC には PDFium LCL Component のワークフローを組み込み、表示、レンダリング、フォーム、印刷、プリフライトレポート、標準対応の検証をソースコード付きコンポーネントで実装できます

Software Development Blog

PDFium Component: Delphi での word tracking and speech cursoring

Delphi/C++Builder には PDFium Component のワークフローを、Lazarus/FPC には PDFium LCL Component のワークフローを組み込み、表示、レンダリング、フォーム、印刷、プリフライトレポート、標準対応の検証をソースコード付きコンポーネントで実装できます

Software Development Blog

PDFium コンポーネントを使った Delphi での PDF 添付ファイル操作

PDF ドキュメントには、埋め込みファイル添付機能が含まれており、これはスプレッドシート、画像、または関連ドキュメントなどのファイルをまとめて管理するのに役立つ強力な機能です。添付ファイルこのデモでは、PDFium Componentを使ってPDF添付ファイルを取り扱う方法を示します

Software Development Blog

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

ドキュメントのすべてのページに透かしやロゴをスタンプする作業は、ファイルサイズインスペクタで結果を開くまでは、5分で終わる簡単な仕事に見えます。明快なアプローチは、ページをスキャンして、それぞれのページで同じテキストや画像オブジェクトを再構築することです。これは視覚的には動作しますが、データが蓄積するにつれて無駄になります。100ページのレポートに直接描画された斜めの「DRAFT」透かしは、コンテ…

Software Development Blog

PDFiumを使用した大容量PDFのオンデマンドストリーミング

スキャンされたアーカイブは、単一のPDFで数ギガバイトに達することがあります。そのようなファイルを開くビューアは、通常1つのページ(目次や、ユーザーがブックマークからジャンプしたページなど)を表示したいだけです。2ページをレンダリングするためだけにファイル全体をメモリに読み込むのは、あらゆる面で無駄です。アドレス空間を消費し、長時間の初期読み込みでユーザーを待たせ、32ビットのDelphiプロセス…

Software Development Blog

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

小さな検証ツールを作成したとします。PDFを開き、末尾をシークし、startxrefを見つけ、オフセットを読み取り、固定幅の相互参照テーブルを伴ってキーワードxrefに到達することを想定します。そのテーブルからオブジェクトのオフセットを収集し、逆方向にスキャンしてtrailerキーワードを見つけ、/Rootと/Sizeを特定します。テスト用に生成したすべてのファイルで完璧に動作します。しかしその後…

Software Development Blog

DelphiでPDFium Componentを利用してPDFドキュメントからテキストを抽出する

テキスト抽出は、PDF処理において最も一般的なタスクの一つです。ドキュメント検索エンジン、データマイニングアプリケーション、またはコンテンツ管理システムを構築する場合でも、PDFファイルからテキストを抽出する機能は不可欠です。このチュートリアルでは、テキスト抽出デモについて説明します。このデモでは、PDFium Componentを利用して、PDFドキュメントからテキストコンテンツを抽出する方法を示します

Software Development Blog

DelphiによるPDFへのバーコード描画:QR、PDF417、DataMatrix

配送ラベルや請求書に印刷されたバーコードの役割はただ1つ、最初のスキャンで正しく読み取られることです。その読み取りを無事通過できるかどうかは、パッケージがドックに届くはるか前に決定されています。すなわち、ページ上にシンボルがどのように配置されたかによって決まります。Delphiのレポート作成パイプラインで最もよくある間違いは、バーコードを別の場所でビットマップ画像としてレンダリングし、その画像をP…

Software Development Blog

PDFlibPas: Delphi での compliance and signing workbench

losLab PDF Library は、Delphi/C++Builder チーム向けにソース提供の PDF エンジンを提供します。デスクトップ、サーバー、DLL、ActiveX、Dylib ワークフローで使え、PDF/A・PDF/UA チェック、PAdES 署名、複数レンダラーを外部 PDF サービスなしで利用できます

Software Development Blog

PDFlibPas: Delphi での DLL, ActiveX, and Dylib integration

losLab PDF Library は、Delphi/C++Builder チーム向けにソース提供の PDF エンジンを提供します。デスクトップ、サーバー、DLL、ActiveX、Dylib ワークフローで使え、PDF/A・PDF/UA チェック、PAdES 署名、複数レンダラーを外部 PDF サービスなしで利用できます

Software Development Blog

PDFlibPas による Delphi での PDF 暗号化とアクセス権限の監査

losLab PDF Library は、Delphi/C++Builder チーム向けにソース提供の PDF エンジンを提供します。デスクトップ、サーバー、DLL、ActiveX、Dylib ワークフローで使え、PDF/A・PDF/UA チェック、PAdES 署名、複数レンダラーを外部 PDF サービスなしで利用できます

Software Development Blog

DelphiにおけるGeoPDF:PDFlibPasによる地理空間座標の処理

多くの開発者は、PDFページをテキストや画像が配置された単なる紙のシートと考えています。しかし、地理参照された(georeferenced)PDFはそれ以上のものです。通常のページ単位で測定されたページ上の特定のポイントから、そのポイントが現実世界のどこの緯度・経度に対応しているかを報告するのに十分な情報を含んでいます。この事実こそが、PDFを地形図、地籍測量図、洪水危険地帯図、あるいは印刷されつ…

Software Development Blog

DelphiでのインタラクティブPDFフォーム:アクションとJavaScript

PDFフォームフィールド自体は、値を保持する単なるボックスにすぎません。フォームを小さなアプリケーションのように動作させるのは、それに添付されたアクションです。セクションを非表示にするクリック、ファイルから保存された値をプルバックする処理、最後のページへのジャンプ、あるいは列の合計を算出するスクリプトの実行などがあります。これらはどれもフィールド内には存在しません。アクション辞書内に存在し、ISO…

Software Development Blog

PDFlibPas: Delphi での large-PDF merge and split with direct access

losLab PDF Library は、Delphi/C++Builder チーム向けにソース提供の PDF エンジンを提供します。デスクトップ、サーバー、DLL、ActiveX、Dylib ワークフローで使え、PDF/A・PDF/UA チェック、PAdES 署名、複数レンダラーを外部 PDF サービスなしで利用できます

Software Development Blog

PDFlibPas: Delphi での multi-engine PDF rendering

losLab PDF Library は、Delphi/C++Builder チーム向けにソース提供の PDF エンジンを提供します。デスクトップ、サーバー、DLL、ActiveX、Dylib ワークフローで使え、PDF/A・PDF/UA チェック、PAdES 署名、複数レンダラーを外部 PDF サービスなしで利用できます

Software Development Blog

DelphiでのPDFレイヤー:オプショナルコンテンツグループ(OCG)

測量士が敷地計画図を開き、ユーティリティ(設備配管)を表示したまま等高線を非表示にしたいとします。レビュー担当者は、画面上で赤線の注釈を表示し、印刷物からは消去したいと考えます。製品シートは1つのファイルから3つの言語で提供され、読者が表示する言語を選択します。これら3つはすべて同じPDF機能であり、Acrobatでこれらの操作を行うパネルは「レイヤー」と呼ばれます。そのパネルの背景にある機能が「…

Software Development Blog

PDFlibPas: Delphi での PAdES signing and validation

losLab PDF Library は、Delphi/C++Builder チーム向けにソース提供の PDF エンジンを提供します。デスクトップ、サーバー、DLL、ActiveX、Dylib ワークフローで使え、PDF/A・PDF/UA チェック、PAdES 署名、複数レンダラーを外部 PDF サービスなしで利用できます

Software Development Blog

PDFlibPas: Delphi での PDF/A and PDF/UA preflight

losLab PDF Library は、Delphi/C++Builder チーム向けにソース提供の PDF エンジンを提供します。デスクトップ、サーバー、DLL、ActiveX、Dylib ワークフローで使え、PDF/A・PDF/UA チェック、PAdES 署名、複数レンダラーを外部 PDF サービスなしで利用できます

Software Development Blog

PDFlibPas: Delphi での print preview and device-context output

losLab PDF Library は、Delphi/C++Builder チーム向けにソース提供の PDF エンジンを提供します。デスクトップ、サーバー、DLL、ActiveX、Dylib ワークフローで使え、PDF/A・PDF/UA チェック、PAdES 署名、複数レンダラーを外部 PDF サービスなしで利用できます

Software Development Blog

PDFlibPas: Delphi での tagged PDF accessibility structure

losLab PDF Library は、Delphi/C++Builder チーム向けにソース提供の PDF エンジンを提供します。デスクトップ、サーバー、DLL、ActiveX、Dylib ワークフローで使え、PDF/A・PDF/UA チェック、PAdES 署名、複数レンダラーを外部 PDF サービスなしで利用できます

Software Development Blog

PDFlibPas: Delphi での テキスト、画像、フォントの抽出

losLab PDF Library は、Delphi/C++Builder チーム向けにソース提供の PDF エンジンを提供します。デスクトップ、サーバー、DLL、ActiveX、Dylib ワークフローで使え、PDF/A・PDF/UA チェック、PAdES 署名、複数レンダラーを外部 PDF サービスなしで利用できます

Software Development Blog

悪意のあるファイルに対するPascal PDFパーサーの堅牢化

PDFは、単に「開く」だけのものではありません。実行される「小さなプログラム」です。埋め込まれたすべてのフォントは文字構成命令(charstrings)を待つスタックベースのインタプリタであり、すべての画像はファイルが指定した幅、高さ、ビット深度の各フィールドを供給されるデコーダであり、すべてのストリームはファイルが設定したパラメータを持つフィルタでラップされて届きます。これらの数値はいずれも自身…

Software Development Blog

DelphiでのPDFベクターグラフィックス:パスとグラデーション

PDFを扱うほとんどのDelphiコードは、このフォーマットをテキストのブロックと配置されたいくつかのビットマップを格納するコンテナとして扱っています。その見方はそれ自体正しいものですが、フォーマットの中で最も強力な部分を使用しないままにしてしまっています。PDFページは、PostScriptと同じ描画モデルに基づいて構築された、解像度に依存しない2Dキャンバスです。直線、曲線、塗りつぶされた領域…

Software Development Blog

DelphiにおけるBIFF8 PivotTableの書き出し:SXDBとSXLI

レガシーなExcelバイナリ形式のほぼすべての部分は、すっきりとした2バイトのタイプと2バイトの長さを持つ単一のレコードです。セルはLABELSSTまたはNUMBERです。結合された領域はMERGEDCELLSです。レコードを1つずつ辿り、タイプワードに基づいて振り分けることで、ワークシートの大部分を読み取ることができます。しかし、PivotTableはそのリズムを壊します。単一のピボットテーブル…

Software Development Blog

HotXLS Component: Delphi での charts, images, and drawing objects

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

HotXLS Component: Delphi での comments, hyperlinks, and review workflows

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

HotXLS Component: Delphi での conditional formatting, rich text, and styles

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

HotXLS Component: Delphi での CSV, TSV, HTML, and RTF export

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

HotXLS Component: Delphi での data validation, AutoFilter, and worksheet tables

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

HotXLS Component: Delphi での database export to spreadsheet reports

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

DelphiにおけるExcelの日付シリアル値:1900年 vs 1904年とnumFmt

スプレッドシートを開き、2026-06-19と表示されているセルをクリックすると、数式バーは日付のままで読み取られます。しかし、同じセルをDelphiから読み取ると、46192という数値が取得されます。どちらの見え方も正しいです。なぜなら、Excelはそのセルに日付を格納したことはないからです。Excelはシリアル値、すなわち経過日数を格納し、その日数をカレンダー上の日付として画面にレンダリングす…

Software Development Blog

HotXLS Component: Delphi での defined names and cross-sheet formulas

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

Delphiでのエンジニアリング関数:基数変換、複素数演算

Excelのエンジニアリング関数ファミリーは、関数リファレンスの中で最も簡単な領域のように見えます。DEC2BINは数値をバイナリ文字列に変換します。HEX2DECはそれを元に戻します。IMSUMは2つの複素数を加算します。それぞれ単なるフォーマット処理のように見えますが、そうではありません。これらの名前の背後には、多くの開発者がコンピュータ構成の授業以来触れていない10ビットの2の補数エンコーデ…

Software Development Blog

HotXLS Component: Delphi での formula calculation and custom functions

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

HotXLS Component: Delphi での large workbook performance

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

HotXLS Component: Delphi での merged cells and layout-driven report templates

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

HotXLS Component: Delphi での ODS open, save, and round-trip

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

Excelが暗号化されたワークブックを拒否する理由:ECBとRC4

あなたがワークブックを作成してパスワードで暗号化し、そのファイルを同僚に渡してExcelで開かせるとします。Excelはパスワードを要求し、同僚が入力すると、Excelはそれを承認します。ここまでは暗号化が正しく機能しているように見えます。しかしその後、Excelはファイルが破損しているため開けないというダイアログを表示するか、無意味なセルばかりのシートを開きます。パスワードは正しかったのに、ファ…

Software Development Blog

HotXLS Component: Delphi での Office-free workbook automation

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

HotXLS Component: Delphi での protection, page setup, and printing

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

HotXLS Component: Delphi での sheet listing and lightweight workbook inspection

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

DelphiでのExcel統計関数:NORM、CHISQ、BETA

セルに=NORM.DIST(115,100,15,TRUE)と入力すると、Excelは何の苦もなく0.8413447を返します。この呼び出しは単なるルックアップのように見えますが、そうではありません。その1つの数値の背後には、閉形式(closed…

Software Development Blog

HotXLS Component: Delphi での streaming write and server batch jobs

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

HotXLS Component: Delphi での template-based report generation

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

DelphiでのUnicodeセーフなスプレッドシートエクスポート:RTFとHTML

スプレッドシートが顧客名の列を保持しているとします。一部は中国語、一部はキリル文字、いくつかはドイツ語のウムラウトやフランス語のアクセン記号を含んでいます。これをCSVにエクスポートして結果を開くと、すべての文字が無傷です。同じワークブックをメールマージ(差し込み印刷)テンプレート用のRTFにエクスポートし、ワードプロセッサで開くと、非ASCIIの名前が疑問符(?)の列に崩壊しています。データは何…

Software Development Blog

HotXLS Component: Delphi での VBA payload and external link preservation

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

HotXLS Component: Delphi での workbook audit and conversion workbench

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

HotXLS Component: Delphi での workbook metadata and document properties

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

HotXLS Component: Delphi での XLSX AES-protected output

Delphi または C++Builder コードから直接 Excel ワークブックを作成、編集、検査、計算、エクスポートできます。HotXLS はソース付き Object Pascal スプレッドシートライブラリで、XLS/XLSX ワークフロー、デスクトップツール、バッチジョブ、レポート、Excel 自動化なしのサーバー側生成に適しています

Software Development Blog

PDF を理解する: ユニバーサル ドキュメント フォーマット

PDF は、作成した環境に依存せず、同じ見た目で文書を配布するために設計された形式です。OS、フォント、プリンター、画面サイズが違っても、ページの構成、文字、図形、画像を安定して再現できることが最大の価値です

Software Development Blog

PDF グラフィックスの説明: PDF の視覚要素を理解する

PDF のグラフィックスは、ビットマップ画像を貼り付けるだけではありません。パス、塗り、線、色空間、座標変換、クリッピング、透明度、XObject を組み合わせて、拡大しても劣化しにくいページを構成します

Software Development Blog

PDF ドキュメント構造の詳細な調査

PDF の内部には、カタログ、ページツリー、リソース、メタデータ、トレーラー辞書など、文書全体を制御する複数の構造があります。これらを理解すると、ページ欠落、順序の不一致、メタデータの不整合を調査しやすくなります

Software Development Blog

PDF ファイル構造の理解: 技術概要

PDF は、ページに見える内容だけでなく、オブジェクト、相互参照、トレーラーを持つ構造化ファイルです。内部構造を理解すると、生成、解析、修復、最適化の実装で起こりやすい問題を切り分けやすくなります

Software Development Blog

PDF ページ順序を理解する: ページが見つからない理由

PDF ドキュメントは、エンドユーザーが見ている以上に高度です。閲覧者はページを論理的かつ順序立てて(1、2、3…)表示しますが、PDF ファイルの内部構造は、全く異なる物語を語っています。この複雑さは、PDF処理において最も誤解されやすい側面であり、数えきれないほどのバグ、不正確な実装、そして落胆した開発者を引き起こしています。この記事では、PDF…

Software Development Blog

PDF ページツリーを理解する: ページ順序が重要な理由

PDFドキュメントは、表面上は単純に見えますが、内部構造は驚くほど複雑になることがあります。開発者が陥りやすい分野の一つは、PDFのページ順序が実際にどのように機能するかを理解することです。HotPDF Delphi PDF Componentを修正および改善する際に、このような厄介な問題に遭遇しました

Software Development Blog

PDF ページ順序の問題のデバッグ: 実際のケーススタディ

PDF ページ順序の問題のデバッグ: 実際のケーススタディ. PDFページ順序の問題のデバッグ:HotPDFコンポーネントの事例研究 発行者 losLab | PDF開発 | Delphi PDFコンポーネント PDFの操作は難しい場合があります。特に、ページ順序を扱う場合はそうです

Software Development Blog

PDF 高速 Web ビューの最適化: PDF 線形化の説明とヒント

PDF 高速 Web ビューの最適化: PDF 線形化の説明とヒント. PDF Fast Web View: リニアライズ最適化ガイド このような経験はありませんか? PDF リンクを開いても最初のページが表示されるまで長く待たされ、後方のページへ移動するとさらに時間がかかることがあります

Software Development Blog

コード例とベストプラクティスによる PDF テキストとフォントの処理

PDF のテキストは、画面に文字列を置くだけの仕組みではありません。文字間隔、単語間隔、水平スケール、行送り、ベースライン位置、フォント リソース、エンコーディングが組み合わさり、同じページを異なる環境でも再現できるように設計されています

Software Development Blog

シンプルな PDF ドキュメントを最初から作成する

PDF は専用ライブラリだけで作るものと思われがちですが、最小構成のファイルならテキスト エディターで構造を記述し、補助ツールで相互参照情報を整えることで作成できます。この作業は、PDF の内部構造を理解するうえで非常に有効です

Software Development Blog

マスター PDF 構造: XML メタデータ、ブックマーク、注釈

PDF にはページに描画される内容以外にも、ブックマーク、リンク先、XMP メタデータ、添付ファイル、注釈といった補助構造があります。これらは閲覧性、検索性、ワークフロー連携に大きく影響します

Software Development Blog

非標準の PDF 構造のデコード – ページなしの PDF 辞書

PDFファイルは、私たちのデジタル世界に溢れていますが、すべてのPDFファイルが同じではありません。多くのPDF処理ライブラリは、標準的なドキュメント構造を前提としていますが、実際のPDFファイルは、期待される形式から逸脱することが多く、開発者にとって大きな課題となります。この記事では、標準的でないPDF構造の複雑さについて説明し、特に、適切なページツリー構造を持たないドキュメントに焦点を当てます…

Software Development Blog

C++Builder で HotPDF コンポーネントを動的に作成し解放する

多くの HotPDF サンプルでは、設計時にコンポーネントをフォームへ配置します。デモには便利ですが、実運用コードでは特定のエクスポート操作のためだけに PDF コンポーネントを作成したい場合があります。動的作成は、サービス モジュール、レポート ヘルパー、バッチ ジョブ、コンポーネントをフォームの寿命全体にわたって保持したくないフォームで役立ちます

Software Development Blog

C++Builder向けのDelphiコンポーネントのクロスコンパイル: 未解決の外部シンボルの回避

Delphiで記述され、DelphiとC++Builderの両方のユーザーによって使用されるVCLコンポーネントを保守していると、2つのビルドシステムが依存関係をまったく異なる方法で処理することにすぐに気づきます。Delphiで完全にコンパイルされるユニットが、C++Builderで致命的なリンカーエラーを引き起こす可能性があります。この不一致は、特に既存のライブラリに新しい内部ユニットを追加する…

Software Development Blog

Delphi 11.1 Alexandria をサポートする Alcinoe

Alcinoe は、Delphi 向けのオープンソース コンポーネント ライブラリです。FireMonkey やモバイル開発を中心に、映像再生、WebRTC、ネイティブ入力コントロール、Firebase 通知、JSON/BSON 処理、MongoDB クライアントなど、幅広い機能を提供します

Software Development Blog

Delphi 5 の TDateTimePicker 形式

古い VCL サンプルに Delphi 5 互換性を追加しているとき、新しい Delphi ではごく普通の 1 行でプロジェクトが失敗しました。コードは独自の日付パターンを直接TDateTimePicker.Formatプロパティへ代入しようとしていました

Software Development Blog

Delphi PDF ライブラリの範囲チェックエラーをデバッグする

作業中にDelphiのPDF操作ライブラリを使うとき、範囲チェックエラーは特に厄介になることがあります。なぜなら、これらのエラーは複雑なドキュメント構造の奥深くに発生することが多く、特定のPDF構造によって間欠的に発生するため、再現とデバッグが困難になることがあります。この記事では、PDF…

Software Development Blog

Delphi の非互換型エラー: tagLOGBRUSH と tagLOGBRUSH32

Delphi XE2 以降では、Windows API 宣言の大部分がスコープ付きのWinapi.Windowsユニットへ移され、いくつかのレコード宣言もより厳密になりました。そのため、古い Delphi ではコンパイルできていたコードでも、Enhanced Metafile レコードがtagLOGBRUSH32値を公開し、GDI API…

Software Development Blog

DelphiでのExcelファイルからのドキュメントプロパティ情報の抽出

自動化されたパイプラインで大量のExcelスプレッドシートのバッチを処理する場合、その内容を把握するためだけにドキュメント全体をメモリにロードすることはめったにありません。多くの場合、ファイル内に埋め込まれたメタデータ(作成者、タイトル、作成日、カスタムプロパティなど)だけで、ドキュメントのルーティング、インデックス作成、または拒否を行うのに十分です。Microsoft…

Software Development Blog

Delphi の _ftol と 64 ビット Inline ASM の変更

古い Delphi コードには、浮動小数点値を整数へ変換する小さな_ftolヘルパーが含まれていることがあります。32 ビット プロジェクトでは、特に古いコンパイラ向けに調整されたグラフィックスや PDF コードで、この種のヘルパーをインライン アセンブラで書くのが一般的でした

Software Development Blog

PDF 文書の電子署名ツール

電子署名ツールは、PDF に承認が必要でも、印刷、スキャン、コピーのメール往復を避けたい場合に役立ちます。DigiSigner のような署名サービスは、ブラウザー上でシンプルな文書署名ワークフローを処理できます。文書をアップロードし、署名欄を配置し、署名して、完成ファイルをダウンロードまたは共有します

Software Development Blog

PDFiumを使用した自動化されたPDFプリフライトとリスク監査

エンタープライズの印刷、アーカイブ、およびドキュメントコンプライアンスのワークフローにおいて、PDFファイルは単に「レンダリング」できるだけではいけません。監査する必要があります。PDFには、レガシーなラスターイメージプロセッサ(RIP)をクラッシュさせるフラット化されていない透明グループ、セキュリティリスクをもたらす埋め込みJavaScript、または300…

Software Development Blog

Delphiでのテキスト読み上げ機能を備えたアクセシブルなPDFビューアの構築

アクセシビリティは、現代のソフトウェア開発においてもはやオプションの機能ではありません。ADA(障害者差別禁止法)やEU Webアクセシビリティ指令などの規制の下では、ドキュメントを処理するソフトウェアは支援技術を提供する必要があります。PDFビューアの場合、これは堅牢なテキスト読み上げ(TTS)とスクリーンリーダーの統合を実装することを意味します

Software Development Blog

Delphi で連続スクロール対応の複数ページ PDF ビューアを作成する

このチュートリアルでは、Multi-Page Viewerのデモを紹介します。これは、基本的なPDF ビューアを拡張し、連続スクロール機能を備えています。この表示モードは、Adobe Acrobatのような最新のPDFリーダーがドキュメントを表示する方法に似ており、ユーザーはすべてのページをシームレスにスクロールできます

Software Development Blog

DelphiでのOfficeアプリケーションからのハイブリッド参照PDFの処理

エンタープライズ向けのドキュメントソリューションを開発する際、ハイエンドのAdobeソフトウェアからバグの多いオープンソースライブラリや仮想プリンタドライバまで、多種多様なツールによって生成されたPDFに必然的に遭遇することになります。あなたが直面する最も悪名高い構造上の問題の1つは、「ハイブリッド参照」PDFです

Software Development Blog

巨大なドキュメントのための高速AES-256 PDF暗号化

法務、金融、ヘルスケアの分野では、大量のPDFドキュメントを生成することが標準的な慣行です。しかし、ドキュメントの作成は戦いの半分にすぎず、それらを保護することも同様に重要です。毎日数百ギガバイトのPDFを処理するアーカイブパイプラインがある場合、AES-256暗号化の適用はすぐにパフォーマンスのボトルネックになる可能性があります

Software Development Blog

losLab PDF ライブラリ: 包括的な機能ガイド

losLab PDFライブラリは、堅牢なPDFソフトウェア開発キット(SDK)です。このガイドでは、PDFファイルの処理に関する広範な機能を提供する、当社のPDF開発者ライブラリの多様な機能を解説します。このライブラリは、開発者や企業がPDFドキュメントを作成、操作、管理するために必要な機能を備えています

Software Development Blog

メモリセーフなPDF解析: 悪意のあるドキュメントからの防御

PDFドキュメントは信じられないほど強力ですが、その強力さには固有のセキュリティリスクが伴います。PDFは埋め込みファイル、インタラクティブなJavaScript、複雑なバイナリストリームをサポートしているため、マルウェアの配信ベクターとして頻繁に使用されます。不適切に記述されたPDFパーサーのバッファオーバーフロー、境界外読み取り、および整数オーバーフローは、リモートコード実行(RCE)につなが…

Software Development Blog

ギガバイト規模のPDF処理におけるI/Oパフォーマンスの最適化

Delphiで標準的なPDF(1MBから10MB)を処理する場合、TFileStreamやTMemoryStreamのような標準のストリームクラスを使用すれば簡単です。しかし、巨大なエンジニアリングCAD回路図、高解像度の地理空間マップ、蓄積された法務アーカイブなど、ギガバイト規模のPDFの処理を任された場合、標準のメモリ割り当て技術はすぐに破綻します

Software Development Blog

PDF 処理パフォーマンスの最適化: 数分から数秒まで

PDF処理のパフォーマンスは、ドキュメント処理アプリケーションの成否を左右します。本来は簡単なページ抽出操作でも、完了までに数分かかることがあり、ユーザーを不満させ、システムパフォーマンスを低下させます。この記事では、PDF処理アプリケーションにおける一般的なパフォーマンスのボトルネックを探り、処理速度を最適化し、メモリリークを解消し、より効率的なドキュメント処理ワークフローを作成するための効果的…