sgcPDF 機能一覧

sgcPDF のすべての機能を作業別にまとめています。各機能は sgcPDF_*.pas ユニット内で Object Pascal により実装され、ソースコード一式が付属します。このページのコードサンプルは sgcPDF のソースに対してコンパイル・実行されています。

作成

機能詳細
ページA4、Letter、カスタムなど任意のページサイズと向き、ページ回転に対応。
テキスト14 の標準 PDF フォントとカラーテキスト。キャンバスと HTML レンダラーによる段落折り返しに対応。
埋め込みフォントTrueType、OpenType(TrueType/CFF アウトライン)、TrueType コレクションを自動で埋め込み・サブセット化。Unicode ToUnicode マップによりテキストのコピーと検索が可能。
複雑な文字体系カーニングと合字、GSUB によるアラビア語の結合形、右から左のテキスト向け Unicode 双方向アルゴリズムに対応。
CJK テキスト埋め込み TrueType フォントと TrueType コレクションによる中国語・日本語・韓国語テキスト。
画像JPEG、アルファ付き PNG、BMP、TIFF(CCITT ファックス画像を含む)、ソフトマスク対応。
ベクターグラフィック線、長方形、円、極圓、ベジェ曲線、多角形、破線パターン、線先端・接合部、透明度、グラデーション。
表ページをまたいで継続するヘッダー、枠線、セル余白、色を持つ表。
バーコードCode 128、Code 39、EAN-13、EAN-8、UPC-A、ITF、Codabar、GS1-128、QR コード、DataMatrix(ECC200)、PDF417 をベクターで描画。TsgcPDFBarcodeControl(VCL)と TsgcPDFBarcodeFMX(FireMonkey)コントロールで、フォーム上への表示、PNG または SVG への保存、Symbol.DrawToPDF による PDF ページへの描画ができます。
注釈とリンク付箋ノート、自由テキスト、ハイライト、下線、取り消し線、線と矢印、四角形と円、手描きインクとスタンプ、さらに URL やページへのリンク。外観ストリームが生成されるため、注釈は Adobe Acrobat、ブラウザー、その他のビューアーで表示されます。
コメント返信任意の注釈に返信を付けるとスレッド形式のディスカッションになり、各返信は独自の作成者、日付、内容を持ちます。
ブックマークとレイヤー入れ子になったブックマーク(アウトライン)と、読者が表示/非表示を切り替えられるオプショナルコンテンツグループ(レイヤー)。
HTML→PDFTsgcPDFHTMLRenderer:見出し、段落、インライン CSS、リスト、表、画像、リンク、改ページ、ヘッダー/フッター、ページ番号。
キャンバスと EMF→PDFTsgcPDFCanvas は描画呼び出しを PDF コンテンツに記録し、EMF メタファイルは PDF ベクターとして再生されるため、既存のレポートやチャートのコードで PDF 出力を作成できます。

HTML→PDF

procedure HTMLToPDF(const APDFFile: string);
var
  oHTML: TsgcPDFHTMLRenderer;
begin
  oHTML := TsgcPDFHTMLRenderer.Create(nil);
  try
    oHTML.PageWidth := 595;
    oHTML.PageHeight := 842;
    oHTML.FooterText := 'Page {page} of {pages}';
    oHTML.HTMLToPDFFile(
      '<html><head><style>h1 { color: #003366 }</style></head><body>' +
      '<h1>Invoice 2026-001</h1>' +
      '<table><tr><th>Item</th><th>Amount</th></tr>' +
      '<tr><td>Consulting</td><td>299.00</td></tr></table>' +
      '</body></html>', APDFFile);
  finally
    oHTML.Free;
  end;
end;

編集

機能詳細
透かし模様とスタンプフォント、サイズ、回転、色、不透明度を指定できるテキスト透かし模様。単一または全ページに適用。
ヘッダー・フッター・ページ番号Page %d of %d のような形式のヘッダー/フッターテキストとページ番号。
ページ操作ドキュメントのマージ、分割、ページ範囲の抽出、挿入、削除、回転、並べ替え。
増分保存変更は元ファイルに新しいリビジョンとして追加されるため、以前の電子署名は有効なまま保たれます。
既存の注釈既存の PDF の注釈は、作成者、日付、返信、ジオメトリを持つ型付きオブジェクトとして読み込まれます。コードまたはビューアーで編集して保存するか、SaveIncremental を呼び出して元のバイトに触れずに変更を追加できるため、既存の署名はそのまま保たれます。
コンパクトな出力ファイルを小さくするオブジェクトストリームとクロスリファレンスストリーム、重複・未使用オブジェクトの削除と画像のダウンサンプリングを行う TsgcPDFOptimizer。
大容量ファイルオフセットは全面的に 64 ビットであり、オブジェクトはストリームから遵次読み込まれるため、2 GB を超えるファイルも開いて保存できます。

レンダリング & ビューア

機能詳細
VCL ビューアTsgcPDFViewerControl:スクロール、ズームモード、ページナビゲーション、テキスト選択・コピー、ハイライト検索、フォーム入力、リンクナビ、印刷。さらに TsgcPDFThumbnailView と TsgcPDFOutlineView。
FireMonkey ビューアTsgcPDFViewerFMX は Windows、macOS、iOS、Android 上で FMX キャンバスを介して描画します。矩形ズーム(SelectionMode の psmZoom、OnMarqueeZoom)は、マウスのドラッグ、または長押ししてからのドラッグで指定した矩形にズームします。
.NET ビューアTsgcPDFViewerControl(WinForms)、TsgcWpfPDFViewer(WPF)、TsgcAvaloniaPDFViewer(Avalonia)。いずれもサムネイルビューとアウトラインビューを備えます。WPF と Avalonia のビューアは、ズームモード、Ctrl+ホイールおよび矩形ズーム(Avalonia ではピンチ)、テキストの選択とコピー、ハイライト付き検索、リンクとアウトラインのナビゲーション、ページボックス、計測ツールに対応します。注釈とフォームフィールドは表示のみで、編集はできません。
インタラクティブな注釈Delphi VCL と FMX、C++Builder、.NET WinForms で、エンドユーザーはマウスで注釈を作成できます。付箋ノート、自由テキスト、テキスト上のハイライト、下線、取り消し線、線と矢印、四角形と楕円、手描きインクとスタンプです。注釈の選択、移動、サイズ変更、編集、削除もできます。ノートをクリックすると、作成者、日付、内容、返信を表示するポップアップが開き、編集と返信ができます。ビューアーは OnAnnotationClick、OnAnnotationAdd、OnAnnotationChange、OnAnnotationDelete と OnAnnotationSelect を発生させます。
コメントパネルTsgcPDFCommentsView(VCL)と TsgcPDFCommentsViewFMX は、すべての注釈をページ別に、作成者、日付、内容、スレッド形式の返信とともに一覧表示し、ビューアーと同期します。
サーバー向けラスタレンダラーTsgcPDFRendererRaster は Windows と Linux 上で GDI を使わずページをピクセルまたは PNG にレンダリングする純粋 Pascal 製ラスタライザーです。
GDI レンダラーとエクスポートWindows 上でビットマップやデバイスコンテキストにレンダリングし、TsgcPDFExporter でページやサムネイルを BMP、PNG、JPEG にエクスポート。
グラフィックモデルDeviceGray、DeviceRGB、DeviceCMYK、インデックス、ICCBased、Lab の各色空間、軸対称・放射状シェーディング、タイリングパターン、ソフトマスク、ブレンド不透明度、フォーム XObject。
フォント埋め込みの TrueType、CFF、OpenType、Type 1 フォントプログラムはそのアウトラインからレンダリングされ、標準エンコーディングと Identity-H CID フォントに対応します。
画像デコーダーFlate、LZW、ASCII85、ASCIIHex、RunLength、JPEG(ベースライン/プログレッシブ、CMYK)、JPEG 2000、CCITT グループ3/4、JBIG2。

抽出

機能詳細
テキストページまたは文書全体のテキスト。埋め込みフォントと CID フォントの Unicode マッピングに対応。
テキスト位置TsgcPDFTextExtractor は各テキスト断片について X、Y、フォント名、サイズを返します。
検索ページまたは文書内のテキストを検索。
画像TsgcPDFImageExtractor はインライン画像やフォーム XObject 内の画像を含め、ページの画像を列挙して PNG、JPEG、BMP にデコードします。
メタデータと添付ファイルドキュメント情報、XMP メタデータ、ブックマーク、レイヤー、埋め込みファイル。

フォーム

機能詳細
フォームの作成テキストフィールド、チェックボックス、ラジオボタン、コンボボックス、リストボックス、プッシュボタンを外見ストリーム付きで作成。
入力とフラット化コードまたはビューアでフィールド値を設定し、フォームを静的なページコンテンツにフラット化します。
FDF/XFDFフォームデータを FDF/XFDF としてインポート・エクスポート。

セキュリティ & 署名

機能詳細
パスワード暗号化RC4 40/128 ビット、AES-128/AES-256(リビジョン 5/6)。ユーザーパスワードとオーナーパスワード、権限フラグに対応。暗号化されたファイルは読み込み時に復号されます。
証明書暗号化1 つ以上の受信者証明書(adbe.pkcs7.s4 および adbe.pkcs7.s5)に対する公開鍵暗号化。
電子署名PFX 証明書による署名、表示/非表示の署名フィールド、SHA-256/384/512、RFC 3161 タイムスタンプ、ドキュメントタイムスタンプに対応。
sgcSign 経由の PAdESTsgcPDFPAdESSigner は、sgcSign(PEM、PFX、PKCS#11、Windows 証明書ストア、クラウド HSM)の任意の鍵プロバイダーを使用して、DSS 検証データ付きの B-B、B-T、B-LT、B-LTA レベルの ETSI.CAdES.detached 署名を作成します。sgcSign は別途ライセンスです。
検証TsgcPDFSignatureVerifier は各署名の整合性、バイト範囲のカバレッジ、署名者証明書、証明書チェーンをチェックします。
黒塗りTsgcPDFRedactor はグリフレベルのテキスト、画像ピクセル、ベクターパス、注釈を領域やテキスト一致に基づいて削除し、オーバーレイを追加し、メタデータを削除できます。削除されたテキストは出力から抽出できません。
テキストのアウトライン化TsgcPDFTextOutliner はすべてのグリフを、位置、色、サイズが同じベクターパスに置き換えます。対象はページコンテンツ、フォーム XObject、タイリングパターン、Type3 フォント、注釈の外観です。その後、使われなくなったフォントを削除します。ファイルの印刷結果と見た目は変わりませんが、フォントが不要になるため、印刷会社、RIP、埋め込みを禁止するフォントライセンスに適しています。埋め込まれていないフォントのテキストは、ビューアが使用する代替システムフォントでアウトライン化され、非表示のテキストは削除されます。テキストは選択も検索もできなくなります。

AES-256 パスワード暗号化

procedure CreateEncryptedPDF(const AFileName: string);
var
  oPDF: TsgcPDFDocument;
begin
  oPDF := TsgcPDFDocument.Create;
  try
    oPDF.AddPage(595, 842).DrawText('Secret', 50, 780, sfHelveticaBold, 24);
    // user password opens the file, owner password grants full rights
    oPDF.SetEncryption(emAES_256, 'user123', 'owner456');
    oPDF.SaveToFile(AFileName);
  finally
    oPDF.Free;
  end;
end;

PFX 証明書での署名

procedure SignPDF(const AInput, AOutput: string);
var
  oSigner: TsgcPDFSignatureHandler;
begin
  oSigner := TsgcPDFSignatureHandler.Create;
  try
    oSigner.LoadCertificateFromPFX('signer.pfx', 'test123');
    oSigner.Reason := 'Document approval';
    oSigner.Location := 'Barcelona';
    oSigner.HashAlgorithm := shaSHA256;
    // visible signature field on page 1: Left, Bottom, Right, Top
    oSigner.SetField('Signature1', 0, 50, 50, 250, 100);
    oSigner.SignDocument(AInput, AOutput);
  finally
    oSigner.Free;
  end;
end;

sgcSign ブリッジによる PAdES

procedure SignPAdES(const AInput, AOutput: string);
var
  oKey: TsgcPEMKeyProvider;
  oSigner: TsgcPDFPAdESSigner;
begin
  oKey := TsgcPEMKeyProvider.Create(nil);
  oSigner := TsgcPDFPAdESSigner.Create(nil);
  try
    // any sgcSign key provider: PEM, PFX, PKCS#11, Windows store, cloud HSM
    oKey.LoadFromFile('signer.pem', 'signer.key');
    oSigner.KeyProvider := oKey;
    // paBB, paBT (timestamp), paBLT and paBLTA (long term validation)
    oSigner.Level := paBB;
    // signature field and appearance through the sgcPDF handler
    oSigner.Handler.SetField('Signature1', 0, 350, 50, 550, 110);
    oSigner.Handler.SignerName := 'John Smith';
    oSigner.Handler.Reason := 'Approved';
    oSigner.SignPDFFile(AInput, AOutput);
    oSigner.KeyProvider := nil;
  finally
    oSigner.Free;
    oKey.Free;
  end;
end;

名前と領域の黒塗り

procedure RedactFile(const AInput, AOutput: string);
var
  oRedactor: TsgcPDFRedactor;
  vOptions: TsgcPDFRedactionOptions;
begin
  oRedactor := TsgcPDFRedactor.Create;
  try
    // every occurrence of a text, on all pages
    oRedactor.AddText('John Smith');
    // an area of page 0: left, bottom, right, top in points
    oRedactor.AddArea(0, 50, 500, 250, 650);
    vOptions := oRedactor.Options;
    vOptions.OverlayText := 'REDACTED';
    vOptions.RemoveMetadata := True;
    oRedactor.Options := vOptions;
    oRedactor.Apply(AInput, AOutput);
  finally
    oRedactor.Free;
  end;
end;

すべてのテキストのアウトライン化

procedure OutlineText(const AInput, AOutput: string);
var
  oOutliner: TsgcPDFTextOutliner;
begin
  oOutliner := TsgcPDFTextOutliner.Create;
  try
    // every glyph becomes a vector path, unused fonts are removed
    oOutliner.Apply(AInput, AOutput);
    WriteLn('Glyphs outlined: ', oOutliner.ConvertedGlyphs);
    WriteLn('Fonts removed: ', oOutliner.RemovedFonts);
  finally
    oOutliner.Free;
  end;
end;

アーカイブ & アクセシビリティ

機能詳細
PDF/Aレベル a/b の PDF/A-1・PDF/A-2・PDF/A-3 出力と、PDF 2.0 ファイルとしての PDF/A-4・PDF/A-4f(paA4、paA4f)出力。XMP メタデータ、出力インテント、埋め込みフォントに対応。Delphi と .NET で利用できます。
バリデーターTsgcPDFAValidator は選択した PDF/A レベル(PDF/A-4 と PDF/UA-2 を含む)に対してファイルをチェックし、エラーと警告を報告します。PDF/A-4、PDF/A-4f、PDF/UA-2 の出力は veraPDF で検証しています。
タグ付き PDFDocument、Part、Sect、H1〜H6、P、L、LI、Table、TR、TH、TD、Figure を含む構造ツリー。代替テキスト、マーク付きコンテンツ、ロールマップ、言語、MarkInfo に対応。
PDF/UA-1PDF/A-2a または PDF/A-3a とともにアクセシブルな出力を提供し、バリデーターで PDF/UA-1 チェックも行えます。
PDF/UA-2PDF/UA-2(ISO 14289-2)出力には PDFUAPart を puaPart2 に設定します。単独でも PDF/A-4 との併用でも使え、PDF 2.0 の構造名前空間と構造デスティネーションを用います。Delphi と .NET で利用でき、sgcReports のエクスポートと sgcUIPDF ブリッジも対象です。
添付ファイルMIME タイプ、日付、PDF/A-3 と PDF/A-4f の関連ファイル関係を持つ埋め込みファイル。
Factur-XとZUGFeRDMinimum、Basic WL、Basic、EN 16931、Extended、XRechnung 各プロファイル向けの Factur-X XMP 拡張スキーマを使って請求書 XML を埋め込み、PDF/A-3b として保存します。

PDF/A-3b としての Factur-X 請求書

procedure CreateFacturX(const AInvoiceXML, AFileName: string);
var
  oPDF: TsgcPDFDocument;
  oXML: TMemoryStream;
  vXML: TBytes;
  vFont: Integer;
begin
  oPDF := TsgcPDFDocument.Create;
  oXML := TMemoryStream.Create;
  try
    // the invoice XML (CII) is created by your application
    oXML.LoadFromFile(AInvoiceXML);
    SetLength(vXML, oXML.Size);
    Move(oXML.Memory^, vXML[0], oXML.Size);
    oPDF.Info.Title := 'Invoice 2026-001';
    // PDF/A requires embedded fonts
    vFont := oPDF.AddTrueTypeFont('Arial', False, False);
    oPDF.AddPage(595, 842).DrawTextTT('Invoice 2026-001', 50, 780, vFont, 18);
    // embeds factur-x.xml, adds the Factur-X XMP schema, saves as PDF/A-3b
    oPDF.Attachments.AddFacturX(vXML, fxpEN16931);
    oPDF.SaveToFile(AFileName);
  finally
    oXML.Free;
    oPDF.Free;
  end;
end;

PDF/A の検証

procedure ValidatePDFA(const AFileName: string);
var
  oParser: TsgcPDFParser;
  oValidator: TsgcPDFAValidator;
  i: Integer;
begin
  oParser := TsgcPDFParser.Create;
  oValidator := TsgcPDFAValidator.Create(paA3b);
  try
    oParser.LoadFromFile(AFileName);
    oParser.Parse;
    if oValidator.Validate(oParser) then
      WriteLn('PDF/A-3b: no errors')
    else
      for i := 0 to oValidator.Errors.Count - 1 do
        WriteLn('Error: ', oValidator.Errors[i]);
  finally
    oValidator.Free;
    oParser.Free;
  end;
end;

PDF/A-4 と PDF/UA-2 を 1 つのファイルに

procedure CreateArchive(const AFileName: string);
var
  oPDF: TsgcPDFDocument;
  oPage: TsgcPDFPage;
  vFont: Integer;
begin
  oPDF := TsgcPDFDocument.Create;
  try
    oPDF.Info.Title := 'Annual report';
    oPDF.Tagged := True;
    oPDF.StructureTree.Lang := 'en-US';
    // PDF/A-4 and PDF/UA-2 in the same PDF 2.0 file
    oPDF.SetPDFALevel(paA4);
    oPDF.PDFUA := True;
    oPDF.PDFUAPart := puaPart2;
    vFont := oPDF.AddTrueTypeFont('Arial', False, False);
    oPage := oPDF.AddPage(595, 842);
    oPage.Tagging.BeginElement(stH1);
    oPage.DrawTextTT('Annual report', 50, 770, vFont, 20);
    oPage.Tagging.EndElement;
    oPage.Tagging.BeginElement(stP);
    oPage.DrawTextTT('Archived and accessible.', 50, 740, vFont, 11);
    oPage.Tagging.EndElement;
    oPDF.SaveToFile(AFileName);
  finally
    oPDF.Free;
  end;
end;

ファイルを検証するには、paA4 を指定して TsgcPDFAValidator を作成し、PDFUA と PDFUAPart プロパティを設定します。ヘルプの PDF/A-4 と PDF/UA-2 のトピックを参照してください。

プリプレス

Delphi と .NET で、同じ名前の同じプリプレス API を使えます。

機能詳細
ページボックスTsgcPDFPage の MediaBox、CropBox、BleedBox、TrimBox、ArtBox と、Rotate、UserUnit。ファイルの読み込みと保存でも保持されます。
面付けAddPageAsForm は、別のドキュメントのページをページボックスまたは矩形で切り出してフォーム XObject にし、DrawForm、DrawFormInRect、DrawFormMatrix でシート上に配置します。PDFImposition デモは、これらでシートのレイアウトを組み立てます。
トンボ類DrawCropMarks、DrawBleedMarks、DrawRegistrationMark、DrawColorBar、DrawSlugText。
特色Separation、Registration、DeviceN の色空間と、塗りと線のオーバープリントグラフィックス状態。
オーバープリントプレビューレンダラーの OverprintPreview は、画面とラスタ出力でオーバープリントをシミュレートします。
PDF/X 出力インテントSetOutputIntent は、任意の ICC プロファイルを付けた GTS_PDFX 出力インテントを書き込み、PDFXVersion は PDF/X バージョンのキーを設定します。
ビューアツールVCL と WinForms のビューア、および WPF と Avalonia のビューアでの、ページボックス表示、ページボックスのヒント、計測ツール。

1 枚のシートに 2 ページとトンボ(.NET)

using esegece.sgcPDF;
using static esegece.sgcPDF.sgcPDF_Types;

using (TsgcPDFDocument oSource = new TsgcPDFDocument())
using (TsgcPDFDocument oSheet = new TsgcPDFDocument())
{
    oSource.LoadFromFile("flyer.pdf");
    // two A4 pages side by side, placed by their trim box, with crop marks
    TsgcPDFPage oPage = oSheet.AddPage(1270, 922);
    for (int i = 0; i < 2; i++)
    {
        int vForm = oSheet.AddPageAsForm(oSource, i, TsgcPDFPageBox.ppbTrimBox);
        TsgcPDFRect oTrim = sgcPDFRect(40 + i * 595, 40, 635 + i * 595, 882);
        oPage.DrawFormInRect(vForm, oTrim, true);
        oPage.DrawCropMarks(oTrim);
    }
    oSheet.SaveToFile("sheet.pdf");
}

.NET 向け sgcPDF

ライブラリの完全マネージド C# ポートで、Delphi の 1 ユニットにつき 1 つの C# ファイルで構成され、同じクラス名(TsgcPDFDocument、TsgcPDFPage、TsgcPDFEditor など)を使用します。NuGet パッケージとして提供され、各パッケージは .Community サフィックス付きの無料 Community 版としても利用できます。

パッケージ詳細
esegece.sgcPDFライブラリ本体:ドキュメントモデル、パーサー、ライター、エディター、レンダリングコア、フォント、画像、フォーム、署名、暗号化、テキストおよび画像抽出、プリプレス、PDF/A(PDF/A-4 を含む)、PDF/UA-2。.NET Standard 2.0、.NET Framework 4.7.2、.NET 6、.NET 8、.NET 9、.NET 10 に対応。
esegece.sgcPDF.WinFormsGDI レンダラーとキャンバス、EMF 再生、ページの画像エクスポート、TsgcPDFViewerControl(インタラクティブな注釈とコメント返信に対応)、TsgcPDFThumbnailView、TsgcPDFBarcodeControl、TsgcPDFOutlineView コントロール(ページボックスと計測ツール付き)。Windows 上で .NET Framework 4.7.2 と .NET 8 に対応。
esegece.sgcPDF.WpfWPF ビューア:TsgcWpfPDFViewer、TsgcWpfPDFThumbnailView、TsgcWpfPDFOutlineView。Windows 上で .NET Framework 4.7.2、.NET 8、.NET 9、.NET 10 に対応。
esegece.sgcPDF.AvaloniaAvalonia ビューア:TsgcAvaloniaPDFViewer、TsgcAvaloniaPDFThumbnailView、TsgcAvaloniaPDFOutlineView。.NET 8、.NET 9、.NET 10 に対応。
esegece.sgcPDF.sgcSignsgcSign .NET へのオプションのブリッジ:TsgcPDFPAdESSigner は任意の sgcSign キープロバイダーを使って PAdES B-B、B-T、B-LT、B-LTA に署名します。
Community 版登録版と同じ機能です。年間総収入が 100 万ユーロ未満で開発者が 5 名以下の個人および組織向けに無料で、起動時に短い通知が表示されます。

インストール

dotnet add package esegece.sgcPDF
dotnet add package esegece.sgcPDF.WinForms
dotnet add package esegece.sgcPDF.Wpf
dotnet add package esegece.sgcPDF.Avalonia
dotnet add package esegece.sgcPDF.sgcSign
最もお得な選択: All-AccesseSeGeCe の全製品にプレミアムサポートが付いて、年間 €1,059 からご利用いただけます。
All-Access の価格を見る

sgcPDF で開発

トライアルをダウンロードして、Delphi または C++ Builder アプリに PDF 機能を追加しましょう。