Delphi 7~13 と C++ Builder DLL不要

sgcPDF、Delphi と C++ Builder 向けの純粋 Pascal 製 PDF ライブラリ

すべて Object Pascal で書かれたコンポーネントで、PDF ファイルの作成、編集、表示、レンダリング、抽出、暗号化、署名、黒塗り、検証を行えます。配布する DLL や外部 PDF エンジンは必要ありません。パーサー、ライター、フォント、画像デコーダ、レンダラー、暗号化処理はすべてアプリケーションにコンパイルされます。コア部分は Windows、Linux、macOS、iOS、Android で動作し、VCL ビューアコントロール、FireMonkey ビューア、サーバー向けのラスタレンダラーも用意しています。ソースコード一式が付属します。

ソースコード一式
Windows, Linux, macOS, iOS & Android
Delphi 7 → 13, C++ Builder
NuGet 上の .NET 版
外部依存ゼロ
20 コンポーネント sgcPDF_*.pas PDF 1.0~2.0、読み書き対応、純粋 Object Pascal 。
作成 TsgcPDFDocument
編集 TsgcPDFEditor
表示 TsgcPDFViewerControl
抽出 TsgcPDFTextExtractor
署名 PAdES B-B to B-LTA
PDF/A & PDF/UA TsgcPDFAValidator
黒塗り TsgcPDFRedactor
20 パレットコンポーネント ドキュメント、エディタ、ビューア、抽出、署名
0 配布が必要な DLL パーサー、レンダラー、フォント、暗号化も Pascal で
5 オペレーティングシステム Windows, Linux, macOS, iOS, Android
8 PDF/A 適合レベル PDF/A-1、2、3(レベル a と b)、PDF/A-4 と 4f、さらに PDF/UA-1 と PDF/UA-2

最初に知っておきたい、3つのこと

対象マシンにインストールするものは何もありません

sgcPDF は PDFiumや Ghostscript、COM サーバー、その他のネイティブライブラリをラップしません。解析、書き込み、フォントの埋め込みとサブセット化、画像デコード、レンダリング、暗号化、署名はすべて sgcPDF_*.pas ユニット内で実装されているため、実行ファイルそのものが展開一式となります。

コアユニットは VCL や FMX に依存しないため、同じコードがコンソールツール、Windows サービス、Linux デーモン、Web サーバーのいずれでも動作します。

対応プラットフォーム

どの部分がどこで動くか

作成、編集、テキストと画像の抽出、フォーム、暗号化、署名、黒塗り、PDF/A、ラスタレンダラーは Windows と Linux64、および macOS、iOS、Android 向けにコンパイルされます。GDI レンダラー、エクスポーター、VCL ビューアコントロールは Windows 専用であり、TsgcPDFViewerFMX は Windows、macOS、iOS、Android を対象とします。.NET では、ビューアコントロールを WinForms、WPF、Avalonia 向けに提供します。

高度な署名

sgcSign 経由の PAdES、基本的な署名は標準搭載

sgcPDF は単体で PFX 証明書を使って PDF ファイルの署名と検証を行えます。PAdES ベースラインレベル(B-B、B-T、B-LT、B-LTA)や、スマートカード、Windows 証明書ストア、クラウド HSM に保持された鍵には、オプションの TsgcPDFPAdESSigner ブリッジが別途ライセンスの sgcSign の鍵プロバイダーを利用します。

PDF ライフサイクル全体をカバーする単一ライブラリ

最初のページ作成から、署名されアーカイブされ黒塗りされた最終ファイルの引き渡しまで、すべてのステップが同じ Object Pascal コードベースで実行されます。

作成:コード、HTML、キャンバスからのドキュメント作成

ページ、14種の標準フォントまたは埋め込み・サブセット化された TrueType/OpenType フォントによるテキスト、画像(JPEG、PNG、BMP、TIFF)、線、曲線、グラデーション、ページをまたいで流し込む表、バーコードと QR コード、注釈とスレッド形式の返信付きコメント、ブックマーク、オプションのコンテンツレイヤー。エンドユーザーはビューア上でマウスを使い、注釈の追加、編集、返信もできます。TsgcPDFHTMLRenderer は CSS 付き HTML をページ分割された PDF に変換し、TsgcPDFCanvas と EMF 再生は既存の描画コードを変換します。

機能を見る →

編集:自分で作成していないファイルを変更

透かし模様、ヘッダーとフッター、ページ番号やスタンプ、マージと分割、抽出、挿入、削除、回転、ページの並べ替え。増分保存は元ファイルに新しいリビジョンを追加するため、以前の署名は有効なまま保たれます。

機能を見る →

表示とレンダリング:VCL/FMX/WinForms/WPF/Avalonia ビューアとサーバー向けレンダラー

サムネイル、アウトライン、コメントパネル、テキスト選択、検索、フォーム入力、印刷に対応した VCL ビューアコントロール、Windows/macOS/iOS/Android 向けで矩形ズーム対応の FireMonkey ビューア、WinForms/WPF/Avalonia 向けの .NET ビューア、そして GDI 不要で Windows と Linux サーバー上でページを PNG に変換する純粋 Pascal 製ラスタレンダラー。

機能を見る →

抽出:テキスト、座標、画像

ページ単位または文書全体のプレーンテキスト、座標・フォント名・サイズ付きのテキスト断片、およびページ内の画像を PNG、JPEG、BMP にデコードします。デコーダーは Flate、LZW、ASCII85、RunLength、JPEG(ベースライン/プログレッシブ)、JPEG 2000、CCITT G3/G4、JBIG2 に対応します。

機能を見る →

保護と署名:暗号化、署名、黒塗り

RC4 40/128、AES-128、AES-256 によるパスワード暗号化、証明書(公開鍵)暗号化、表示フィールドとタイムスタンプ付きの電子署名、sgcSign ブリッジ経由の PAdES B-B/B-T/B-LT/B-LTA、署名検証、そして覆うだけではなくコンテンツを削除する真の黒塗り。

機能を見る →

コンプライアンス:PDF/A、PDF/UA、タグ付き PDF、Factur-X

内蔵バリデータを備えたレベル a/b の PDF/A-1・PDF/A-2・PDF/A-3 出力と PDF/A-4・PDF/A-4f 出力、構造ツリーと代替テキスト付きタグ付き PDF、PDF/UA-1 と PDF/UA-2 の出力とチェック、PDF/A-3 と PDF/A-4f の関係付きの埋め込みファイル、Factur-X・ZUGFeRD・XRechnung 電子請求書の埋め込みに対応。

機能を見る →

印刷:ページボックス、面付け、トンボ

メディア、クロップ、裁ち落とし、トリム、アートの各ボックス、面付け用にフォームとして配置する他ドキュメントのページ、トンボ(クロップ、裁ち落とし、見当合わせ)、Separation と DeviceN の色、オーバープリントプレビュー、PDF/X 出力インテントに対応。Delphi と .NET で利用できます。

機能を見る →

数行の Delphi コード

このページの各サンプルは、sgcPDF のソースに対してコンパイル・実行されたプログラムから抜粋しています。座標は PDF ポイント(1/72 インチ)単位で、原点はページ左下にあります。

procedure CreateHelloPDF(const AFileName: string);
var
  oPDF: TsgcPDFDocument;
  oPage: TsgcPDFPage;
begin
  oPDF := TsgcPDFDocument.Create;
  try
    oPDF.Info.Title := 'Hello sgcPDF';
    // A4 portrait: 595 x 842 points, origin at the bottom left corner
    oPage := oPDF.AddPage(595, 842);
    oPage.DrawTextColor('Hello sgcPDF', 50, 780, sfHelveticaBold, 24, 0, 0.2, 0.6);
    oPage.DrawLine(50, 770, 545, 770, 1.5);
    oPage.DrawText('A PDF written in pure Pascal.', 50, 740, sfHelvetica, 12);
    oPDF.SaveToFile(AFileName);
  finally
    oPDF.Free;
  end;
end;
procedure StampExistingPDF(const AInput, AOutput: string);
var
  oEditor: TsgcPDFEditor;
  oWatermark: TsgcPDFWatermarkOptions;
begin
  oEditor := TsgcPDFEditor.Create;
  try
    oEditor.LoadFromFile(AInput);
    oWatermark.Text := 'CONFIDENTIAL';
    oWatermark.Font := sfHelveticaBold;
    oWatermark.FontSize := 48;
    oWatermark.Rotation := 45;
    oWatermark.Opacity := 0.3;
    oWatermark.R := 0.5;
    oWatermark.G := 0.5;
    oWatermark.B := 0.5;
    oEditor.AddWatermarkAllPages(oWatermark);
    oEditor.AddPageNumbers(sfHelvetica, 10, 'Page %d of %d');
    oEditor.SaveToFile(AOutput);
  finally
    oEditor.Free;
  end;
end;
procedure PrintAllText(const AFileName: string);
var
  oPDF: TsgcPDFDocument;
  i: Integer;
begin
  oPDF := TsgcPDFDocument.Create;
  try
    oPDF.LoadFromFile(AFileName);
    for i := 0 to oPDF.PageCount - 1 do
      WriteLn(string(oPDF.ExtractTextW(i)));
  finally
    oPDF.Free;
  end;
end;
procedure RenderPageToPNG(const APDFFile, APNGFile: string; ADPI: Integer);
var
  oPDF: TsgcPDFDocument;
  oRenderer: TsgcPDFRendererRaster;
  oPage: TsgcPDFPage;
begin
  oPDF := TsgcPDFDocument.Create;
  try
    oPDF.LoadFromFile(APDFFile);
    oPage := oPDF.Pages[0];
    // pure Pascal rasterizer: no GDI, runs on Windows and Linux servers
    oRenderer := TsgcPDFRendererRaster.Create;
    try
      oRenderer.RenderPageToPNG(oPDF.Parser, oPage.PageDict,
        Round(oPage.Width * ADPI / 72), Round(oPage.Height * ADPI / 72),
        APNGFile);
    finally
      oRenderer.Free;
    end;
  finally
    oPDF.Free;
  end;
end;
procedure CreateTicketPDF(const aFileName: string);
var
  oPDF: TsgcPDFDocument;
  oPage: TsgcPDFPage;
  oSymbol: TsgcPDFBarcodeSymbol;
begin
  oPDF := TsgcPDFDocument.Create(nil);
  oSymbol := TsgcPDFBarcodeSymbol.Create;
  try
    oPDF.Info.Title := 'Ticket';
    oPage := oPDF.AddPage(595, 842);
    oPage.DrawText('Ticket 2026-001', 50, 780, sfHelveticaBold, 24);
    oPage.DrawLine(50, 770, 545, 770, 1.5);
    // Code 128 barcode in a 250 x 60 point box, black on white
    oSymbol.Symbology := bcCode128;
    oSymbol.Text := 'TKT-2026-001';
    oSymbol.DrawToPDF(oPage, 50, 680, 250, 60, $000000, $FFFFFF);
    // QR Code in a 120 x 120 point box
    oSymbol.Symbology := bcQRCode;
    oSymbol.QRErrorLevel := qrecQ;
    oSymbol.Text := 'https://www.esegece.com';
    oSymbol.DrawToPDF(oPage, 50, 540, 120, 120, $000000, $FFFFFF);
    oPDF.SaveToFile(aFileName);
  finally
    oSymbol.Free;
    oPDF.Free;
  end;
end;

バーコードをベクターグラフィックとしてページに直接描画します。ユニット: sgcPDF_Document, sgcPDF_Barcodes, sgcPDF_Barcode_Symbol. TsgcPDFBarcodeSymbol と バーコードガイド をご覧ください。

#include <System.hpp>
#include "sgcPDF_Document.hpp"
#include "sgcPDF_Barcodes.hpp"
#include "sgcPDF_Barcode_Symbol.hpp"

void __fastcall CreateTicketPDF(const String aFileName)
{
  TsgcPDFDocument *oPDF = new TsgcPDFDocument(NULL);
  TsgcPDFBarcodeSymbol *oSymbol = new TsgcPDFBarcodeSymbol();
  try
  {
    oPDF->Info->Title = "Ticket";
    TsgcPDFPage *oPage = oPDF->AddPage(595, 842);
    oPage->DrawText("Ticket 2026-001", 50, 780, sfHelveticaBold, 24);
    oPage->DrawLine(50, 770, 545, 770, 1.5);
    // Code 128 barcode in a 250 x 60 point box, black on white
    oSymbol->Symbology = bcCode128;
    oSymbol->Text = "TKT-2026-001";
    oSymbol->DrawToPDF(oPage, 50, 680, 250, 60, 0x000000, 0xFFFFFF);
    // QR Code in a 120 x 120 point box
    oSymbol->Symbology = bcQRCode;
    oSymbol->QRErrorLevel = qrecQ;
    oSymbol->Text = "https://www.esegece.com";
    oSymbol->DrawToPDF(oPage, 50, 540, 120, 120, 0x000000, 0xFFFFFF);
    oPDF->SaveToFile(aFileName);
  }
  __finally
  {
    delete oSymbol;
    delete oPDF;
  }
}

sgcPDF のソースから生成した C++ Builder 用ヘッダーでコンパイルしています。トピック TsgcPDFBarcodeSymbol と C++ Builder に関する注意事項 をご覧ください。

using System;
using esegece.sgcPDF;

class Program
{
    static void Main()
    {
        using (TsgcPDFDocument oDoc = new TsgcPDFDocument())
        {
            oDoc.Info.Title = "Ticket";
            TsgcPDFPage oPage = oDoc.AddPage(595, 842);
            oPage.DrawText("Ticket 2026-001", 50, 780, TsgcPDFStandardFont.sfHelveticaBold, 24);
            oPage.DrawLine(50, 770, 545, 770, 1.5);

            // Code 128 barcode in a 250 x 60 point box, black on white
            TsgcPDFBarcodeSymbol oSymbol = new TsgcPDFBarcodeSymbol();
            oSymbol.Symbology = TsgcPDFBarcodeType.bcCode128;
            oSymbol.Text = "TKT-2026-001";
            oSymbol.DrawToPDF(oPage, 50, 680, 250, 60, 0x000000, 0xFFFFFF);

            // QR Code in a 120 x 120 point box
            oSymbol.Symbology = TsgcPDFBarcodeType.bcQRCode;
            oSymbol.QRErrorLevel = TsgcPDFQRErrorLevel.qrecQ;
            oSymbol.Text = "https://www.esegece.com";
            oSymbol.DrawToPDF(oPage, 50, 540, 120, 120, 0x000000, 0xFFFFFF);

            oDoc.SaveToFile("ticket.pdf");
        }
    }
}

.NET のクラスは WinForms にも GDI にも依存しないため、サーバーやコンソールツールでも動作します。.NET API の違い をご覧ください。

using System;
using esegece.sgcPDF;

class Program
{
    static void Main()
    {
        // Create a one page A4 document and save it
        using (TsgcPDFDocument oDoc = new TsgcPDFDocument())
        {
            TsgcPDFPage oPage = oDoc.AddPage(595, 842);
            oPage.DrawText("Hello from sgcPDF", 50, 780, TsgcPDFStandardFont.sfHelveticaBold, 24);
            oPage.DrawLine(50, 770, 545, 770, 1.0);
            oPage.DrawText("Created with sgcPDF .NET.", 50, 740, TsgcPDFStandardFont.sfHelvetica, 12);
            oDoc.SaveToFile("hello.pdf");
        }

        // Load it again and extract the text of every page
        using (TsgcPDFDocument oDoc = new TsgcPDFDocument())
        {
            oDoc.LoadFromFile("hello.pdf");
            for (int i = 0; i < oDoc.PageCount(); i++)
                Console.WriteLine(oDoc.ExtractTextW(i));
        }
    }
}
Code 128、Code 39、EAN-13、EAN-8、UPC-A、ITF、Codabar、QR コード、DataMatrix、PDF417、GS1-128 のシンボルを表示する TsgcPDFBarcodeControl
1 つのバーコードコントロールで、QR コード、DataMatrix、PDF417 を含む 11 種類のシンボル体系に対応

sgcPDF パレットの 20 のコンポーネント

フォームやデータモジュールにドロップするか、コードで作成します。どのコンポーネントもフォームなしでコンソールアプリやサービスから利用できます。

すべてのコンポーネント

トライアルとライセンス

sgcPDF は単体でライセンスされ、開発者 1 名向けの €249 から始められます。すべてのライセンスに、完全なソースコード、1 年間のアップデート、50% から 70% の更新割引が含まれます。まずは評価したい場合は、無料体験版をダウンロードしてください。sgcPDF は sgcUI Enterprise と All-Access バンドルにも含まれます。

sgcPDF

€249

Single、Team、Site の各ライセンスをご用意しています。

  • 20 のコンポーネントすべてと sgcPDF_*.pas ユニット
  • Delphi 7~13 と C++ Builder
  • Windows、Linux、macOS、iOS、Android
  • ソースコード一式
  • 1 年間のアップデート

sgcPDF .NET

€249

Single、Team、Site の各ライセンスをご用意しています。

  • NuGet: esegece.sgcPDF
  • .NET Standard 2.0, .NET Framework 4.7.2, .NET 6, .NET 8, .NET 9、.NET 10
  • ソースコード一式
  • 1 年間のアップデート

.NET 向け sgcPDF

sgcPDF は、Delphi ライブラリと同じクラス名を持つ完全マネージドな C# ポートとして .NET でも利用できます。.NET Standard 2.0、.NET Framework 4.7.2、.NET 6、.NET 8、.NET 9、.NET 10 向けの NuGet パッケージとして提供され、ネイティブ DLL は不要です。

esegece.sgcPDF

ライブラリ本体:ドキュメントモデル、パーサー、ライター、エディター、レンダリングコア、フォント、画像、フォーム、署名、暗号化、テキストおよび画像抽出、プリプレス、PDF/A(PDF/A-4 を含む)、PDF/UA-2。

esegece.sgcPDF.WinForms

Windows Forms アドオン:GDI レンダラーとキャンバス、EMF 再生、ページの画像エクスポート、および TsgcPDFViewerControl(インタラクティブな注釈とコメント返信に対応)、TsgcPDFThumbnailView、TsgcPDFOutlineView コントロール(ページボックスと計測ツール付き)。

esegece.sgcPDF.Wpf

WPF ビューア:TsgcWpfPDFViewer、TsgcWpfPDFThumbnailView、TsgcWpfPDFOutlineView。ズームモード、矩形ズーム、テキスト選択、検索、リンク、ページボックス、計測ツールに対応。注釈とフォームフィールドは表示されます。

esegece.sgcPDF.Avalonia

Avalonia ビューア:TsgcAvaloniaPDFViewer、TsgcAvaloniaPDFThumbnailView、TsgcAvaloniaPDFOutlineView。WPF ビューアと同じ表示機能に加え、ピンチズームに対応。

esegece.sgcPDF.sgcSign

sgcSign .NET へのオプションのブリッジ:TsgcPDFPAdESSigner は任意の sgcSign キープロバイダーを使って PAdES B-B、B-T、B-LT、B-LTA に署名します。

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

各パッケージは .Community サフィックス付きの無料 Community 版としても提供されます。例えば dotnet add package esegece.sgcPDF.Community です。両エディションの機能は同じです。Community 版は、年間総収入が 100 万ユーロ未満で開発者が 5 名以下の個人および組織向けに無料で提供され、起動時に短い通知を表示します。登録版はこの通知を削除し、商用ライセンスを含みます。

NuGet で見る .NET ダウンロード

sgcPDF は sgcUI Enterprise に含まれます

sgcPDF は Delphi と C++ Builder 向けコンポーネントスイートの sgcUI に属し、他のすべての sgcUI 製品とともに sgcUI Enterprise エディションに含まれています。単体パッケージとしても購入できます。価格は sgcUI の価格ページ と sgcPDF の価格ページ をご覧ください。

sgcReports

sgcPDF を通じて完成したレポートを PDF に出力するレポートデザイナーとエンジン。

詳しく見る →

sgcGrid

Delphi と C++ Builder 向けの高性能データグリッド。

詳しく見る →

sgcCharts

ダッシュボードとレポート向けのチャート。

詳しく見る →

sgcDashboard

ダッシュボード向けのタイル、KPI、レイアウト。

詳しく見る →

オンラインヘルプ:はじめに、クイックスタート、インストール、.NET のインストール。

eSeGeCe のその他の製品

sgcPDF を他の Delphi ・ C++ Builder 向けコンポーネントライブラリと組み合わせてご利用いただけます。

sgcSign

エンタープライズ向け電子署名。XAdES、PAdES、CAdES、ASiC に対応し、10 の鍵プロバイダーと 21 の EU 国別プロファイルを備えます。

詳しく見る →

sgcWebSockets

Delphi、C++ Builder、.NET 向けのエンタープライズ WebSocket、HTTP/2、MQTT、AMQP、WebRTC コンポーネント。

詳しく見る →

sgcHTML

Bootstrap と htmx を基盤とする、Delphi と C++ Builder 向けのサーバーサイド HTML/UI コンポーネント。

詳しく見る →

sgcCrypto

純粋 Object Pascal によるモダンな暗号学:AES-GCM、SHA-3、Ed25519、X.509、耐量子の ML-KEM と ML-DSA。

詳しく見る →
3,000+開発者
20+年
761+コンポーネント
30+API 連携
5プラットフォーム
30日間返金保証ご満足いただけない場合は、ご購入から30日以内に全額返金をリクエストできます。 返金ポリシーを見る

DLL 不要の PDF

既存の Delphi または C++ Builder コードから、PDF ファイルの作成、表示、署名、アーカイブを行えます。