IRONSOFTWAREHOME
ビデオ

How to Sign PDF Files in C# Using IronPDF

Curtis Chau
Curtis Chau
Updated: 2026年7月19日

Gnostice PDFOneからIronPDFへの移行は、あなた for .NET PDFワークフローを、座標ベースの、プラットフォームが分断されたアプローチから、最新のWeb標準を完全にサポートした、統一されたHTML/CSS駆動のソリューションに変えます。 このガイドでは、.NET開発者のために、CSS、JavaScript、メモリの安定性に関する文書化された制限を排除する、包括的で段階的な移行パスを提供します。

なぜGnostice PDFOneからIronPDFへ移行するのか

グノスティスのPDFOneチャレンジ

Gnostice PDFOneとDocument Studio .NETには、プロダクションアプリケーションに影響を与えるよく知られた制限があります。 従来のPDFOne.NET NuGetパッケージは現在廃止されています(最終リリース24.1.60、2024年7月1日)、ベンダーは新しい作業をGnostice.DocumentStudio.*パッケージに指示しています。

1.**外部 CSS のサポートなし:**グノスティスPDFOneのドキュメントには、最新の Web から PDF への変換の基本要件である外部 CSS スタイルシートをサポートしていないことが明記されています。

  1. JavaScript の実行なし: JavaScriptを必要とする動的コンテンツをレンダリングできないため、最新の Web アプリケーションを正確に変換することができません。

  2. **HTML から PDF への直接変換機能はありません:**グノスティスPDFOneには、HTML から PDF への直接変換機能はありません。 HTMLの変換にはDocument Studioを使用するか、手作業でHTML要素を解析してレンダリングする必要があります。

4.プラットフォームの断片化: WinForms、WPF、 ASP.NET、Xamarin 向けにそれぞれ異なる機能セットと API を持つ個別の製品が存在するため、複数のライセンスとコードベースが必要になる場合があります。

5.**メモリ リークと安定性:**ユーザー フォーラムと Stack Overflow では、画像の処理時に永続的なメモリ リーク、JPEG エラー #53、および StackOverflow 例外が発生することが報告されています。

6.**右から左に書く Unicode がない:**アラビア語、ヘブライ語、その他の RTL 言語は明示的にサポートされていません。これは、国際的なアプリケーションにとっては致命的です。

7.**限定的なデジタル署名のサポート:**これまで、Gnostice PDFOne ではデジタル署名が欠落しているか、信頼できませんでした。

8.**座標ベースの API:**多くの操作では、最新のレイアウト手法ではなく手動の X/Y 配置が必要であり、すべての要素の配置に対して正確な計算が必要です。

グノスティスPDFOneとIronPDFの比較

アスペクトグノスティスPDFOneIronPDF
外部CSSサポートされていませんサポート対象
JavaScriptの実行サポートされていませんフルChromiumエンジン
RTL言語サポートされていませんユニコード完全対応
デジタル署名限定/欠落X509完全サポート
プラットフォーム断片化された製品単一の統一ライブラリ
メモリの安定性報告された問題安定した管理体制
HTMLからPDFへ基本的なこと、回避策が必要なことChrome品質のレンダリング
学習曲線複雑なAPIシンプルで直感的なAPI
モダンCSS(フレックスボックス、グリッド)サポートされていませんCSS3をフルサポート
画像処理既知の問題信頼性

.NET 10およびC# 14の採用を計画しているチーム向けに、IronPDFはすべて for .NETプラットフォームで一貫して動作する統一ライブラリを提供します。


マイグレーションの複雑さの評価

機能別の見積もり作業

フィーチャー移行の複雑さ
PDFの読み込み/保存低レベル
PDFのマージ低レベル
PDFの分割低レベル
テキスト抽出低レベル
透かし低レベル
ヘッダー/フッター低レベル
HTMLからPDFへ低レベル
暗号化中規模
フォームフィールド中規模
デジタル署名低レベル

得られる機能

Gnostice PDFOneからIronPDFに移行する際、以前は不可能だったこれらの機能が利用可能になります:

  • 外部CSSスタイルシート
  • JavaScriptの実行
  • RTL言語サポート(アラビア語、ヘブライ語)
  • CSSグリッドとフレックスボックス
  • 信頼性の高いデジタル署名
  • より良いメモリ管理
  • 単一のコードベースによるクロスプラットフォームのサポート

始める前に

前提条件

  1. .NETバージョン: IronPDFは.NET Framework 4.6.2以降および.NET Core 2.0以降 / .NET 5/6/7/8/9以降をサポートしています。 2.ライセンスキー: IronPDFからIronPDFライセンスキーを取得します。 3.**バックアップ:**移行作業用のブランチを作成する

すべてのGnostice PDFOneの使用法を特定する

# Find all Gnostice references
grep -r "Gnostice\|PDFOne\|PDFDocument\|PDFPage\|DocExporter" --include="*.cs" .

# Find package references
grep -r "Gnostice\|PDFOne" --include="*.csproj" .
SHELL

NuGetパッケージの変更

# Remove Gnostice packages (PDFOne.NET is the legacy, deprecated package)
dotnet remove package PDFOne.NET
dotnet remove package Gnostice.DocumentStudio.WinForms
dotnet remove package Gnostice.DocumentStudio.WPF
dotnet remove package Gnostice.DocumentStudio.ASP
dotnet remove package Gnostice.DocumentStudio.ASP.Core
dotnet remove package Gnostice.DocumentStudio.Xamarin

# Install IronPDF
dotnet add package IronPdf
SHELL

クイック スタート マイグレーション

ステップ 1: ライセンス構成の更新

ビフォア(グノスティスPDFOne):

//グノスティスPDFOnelicense is set via the static PDFOne class
Gnostice.PDFOne.PDFOne.LicenseKey = "YOUR-GNOSTICE-LICENSE";
C#

翻訳後(IronPDF):

// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";

// Or in appsettings.json:
// { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }

ステップ 2: 名前空間インポートを更新する

// Before (Gnostice PDFOne)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Document;
using Gnostice.PDFOne.Graphics;

// After (IronPDF)
using IronPdf;
using IronPdf.Editing;

完全な API リファレンス

コア クラス マッピング

グノスティスPDFOneIronPDF翻訳内容
PDFDocumentPdfDocument主なPDF文書クラス
PDFPagePdfDocument.Pages[i]ページ表現
PDFFontCSSスタイリングフォント仕様
PDFTextElementHTMLコンテンツテキスト内容
PDFImageElementHTML <img> タグ画像コンテンツ
DocExporterChromePdfRendererHTML/URLからPDFへの変換

ドキュメント操作

グノスティスPDFOneIronPDF
new PDFDocument()new PdfDocument()
doc.Load(path)PdfDocument.FromFile(path)
doc.Open()該当なし(自動)
doc.Save(path)pdf.SaveAs(path)
doc.Close()pdf.Dispose()
doc.Pages.Countpdf.PageCount
doc.Pages.Add()HTMLのレンダリングまたはマージ

マージ操作

グノスティスPDFOneIronPDF
doc.Append(otherDoc)PdfDocument.Merge(pdf1, pdf2)
複数のAppend()呼び出しPdfDocument.Merge(list)

コード移行の例

例1: HTMLからPDFへの変換

ビフォア(グノスティスPDFOne):

// NuGet: Install-Package PDFOne.NET (deprecated; vendor recommends Gnostice.DocumentStudio.WinForms)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Graphics;
using System;

class Program
{
    static void Main()
    {
        PDFDocument doc = new PDFDocument();
        doc.Open();
        
        PDFPage page = doc.Pages.Add();
        
        // PDFOne doesn't have directHTMLからPDFへconversion
        // You need to use Document Studio for HTML conversion
        // Or manually parse and render HTML elements
        
        PDFTextElement textElement = new PDFTextElement();
        textElement.Text = "Simple text conversion instead of HTML";
        textElement.Draw(page, 10, 10);
        
        doc.Save("output.pdf");
        doc.Close();
    }
}
C#

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        string html = "<h1>Hello World</h1><p>This is HTML content.</p>";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}

その差は相当なものです:Gnostice PDFOneは、HTMLを直接PDFに変換することはできません。手作業でテキスト要素を作成し、座標で配置する必要があります。 IronPDFのChromePdfRendererは、完全なCSS3とJavaScriptサポートで直接HTMLレンダリングを提供します。 レンダリングオプションについては、HTML to PDF documentationを参照してください。

例2: PDFファイルをマージする

ビフォア(グノスティスPDFOne):

// NuGet: Install-Package PDFOne.NET (deprecated; vendor recommends Gnostice.DocumentStudio.WinForms)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Document;
using System;

class Program
{
    static void Main()
    {
        PDFDocument doc1 = new PDFDocument();
        doc1.Load("document1.pdf");
        
        PDFDocument doc2 = new PDFDocument();
        doc2.Load("document2.pdf");
        
        PDFDocument mergedDoc = new PDFDocument();
        mergedDoc.Open();
        
        mergedDoc.Append(doc1);
        mergedDoc.Append(doc2);
        
        mergedDoc.Save("merged.pdf");
        
        doc1.Close();
        doc2.Close();
        mergedDoc.Close();
    }
}
C#

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");
        
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}

Gnostice PDFOneのアプローチでは、新しい文書を作成し、それを開き、ソース文書を別々に読み込み、それぞれを追加し、3つの文書すべてを手動で閉じる必要があります。 IronPDFの静的Mergeメソッドは、適切なリソース管理で3行でこれを処理します。 PDFのマージと分割については、こちらをご覧ください。

例3: PDFに透かしを追加する

ビフォア(グノスティスPDFOne):

// NuGet: Install-Package PDFOne.NET (deprecated; vendor recommends Gnostice.DocumentStudio.WinForms)
using Gnostice.PDFOne;
using Gnostice.PDFOne.Graphics;
using System;
using System.Drawing;

class Program
{
    static void Main()
    {
        PDFDocument doc = new PDFDocument();
        doc.Load("input.pdf");
        
        PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 48);
        
        foreach (PDFPage page in doc.Pages)
        {
            PDFTextElement watermark = new PDFTextElement();
            watermark.Text = "CONFIDENTIAL";
            watermark.Font = font;
            watermark.Color = Color.FromArgb(128, 255, 0, 0);
            watermark.RotationAngle = 45;
            
            watermark.Draw(page, 200, 400);
        }
        
        doc.Save("watermarked.pdf");
        doc.Close();
    }
}
C#

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("input.pdf");
        
        var watermark = new TextStamper()
        {
            Text = "CONFIDENTIAL",
            FontSize = 48,
            Opacity = 50,
            Rotation = 45,
            VerticalAlignment = VerticalAlignment.Middle,
            HorizontalAlignment = HorizontalAlignment.Center
        };
        
        pdf.ApplyStamp(watermark);
        pdf.SaveAs("watermarked.pdf");
    }
}

Gnostice PDFOneのアプローチでは、PDFFontオブジェクトを作成し、手動でページを反復処理し、座標を計算(200, 400)、PDFTextElementオブジェクトにプロパティを設定する必要があります。 IronPDFのTextStamperは、自動センタリングとページ適用を備えた宣言型設定を提供します―座標計算は不要です。 追加のオプションについては、透かしのドキュメントを参照してください。


重要な移行に関する注意事項

座標ベースから HTML/CSS レイアウトへ

このGnostice PDFOne移行における最も重要なパラダイムシフトは、座標ベースのポジショニングからHTML/CSSレイアウトへの移行です:

// Gnostice PDFOne: Manual coordinate positioning
watermark.Draw(page, 200, 400);  // X=200, Y=400

// IronPDF: Declarative alignment
watermark.VerticalAlignment = VerticalAlignment.Middle;
watermark.HorizontalAlignment = HorizontalAlignment.Center;

フォント オブジェクトから CSS スタイリングへ

// Gnostice PDFOne
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 48);
watermark.Font = font;

//IronPDF- use CSS in HTML content
var html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 48pt;'>Text</span>";

ページ索引

Gnostice PDFOneはしばしば1-indexedページを使用しますが、IronPDFは0-indexed(.NETの標準的な慣習)を使用します:

// Gnostice PDFOne: May use 1-indexed
var page = doc.Pages[1];  // First page

// IronPDF: 0-indexed
var page = pdf.Pages[0];  // First page

今すぐ使える機能

Gnostice PDFOneからIronPDFに移行した後、これらの以前は問題であった、あるいは不可能であった機能が利用可能になります: -外部CSS: Gnostice PDFOneで動作しなかったスタイルシートが正しくレンダリングされるようになりました

  • **JavaScriptコンテンツ:**欠落していた動的コンテンツが表示されるようになりました
  • **RTL言語:**アラビア語、ヘブライ語、その他の右から左に書く言語は正常に動作します
  • **CSS グリッドとフレックスボックス:**最新のレイアウト技術が完全にサポートされています -**デジタル署名:**信頼性の高い X509 証明書署名

トラブルシューティング

問題 1: PDFTextElement が見つかりません

問題: IronPDFにはPDFTextElementが存在しません。

解決策: HTML コンテンツまたは TextStamper を使用します。

// For new documents - render HTML
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<p>Your text here</p>");

// For existing documents - use stampers
var stamper = new TextStamper() { Text = "Added Text" };
pdf.ApplyStamp(stamper);

第2号: PDFFontオブジェクト

問題: Gnostice PDFOneはPDFFontオブジェクトを使用します; IronPDFはCSSを使用しています。

ソリューション:

// Gnostice PDFOne
PDFFont font = new PDFFont(PDFStandardFont.Helvetica, 12);

//IronPDF- use CSS
var html = "<span style='font-family: Helvetica, Arial, sans-serif; font-size: 12pt;'>Text</span>";

問題 3:DocExporter が見つかりません

問題: IronPDFにはDocExporterクラスが存在しません。

解決策: ChromePdfRendererを使用してください。

// Gnostice PDFOne
DocExporter exporter = new DocExporter();
exporter.Export(doc, "output.pdf", DocumentFormat.PDF);

// IronPDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
pdf.SaveAs("output.pdf");

第4号: メモリの改善

**問題:**グノスティスPDFOneはメモリ リークを報告しました。

**解決策:**IronPDFは安定したメモリ管理を提供します。 適切な廃棄パターンを使用してください:

using (var pdf = PdfDocument.FromFile("large.pdf"))
{
    // Process PDF
    pdf.SaveAs("output.pdf");
}  // Automatically disposed

移行チェックリスト

移行前

  • コードベース内のすべてのグノスティスPDFOneの使用状況を一覧表示する
  • 動作していなかった機能 (CSS、JS、RTL) に注意してください。今後は動作します。
  • 比較テストのためにメモリの問題を文書化する
  • IronPDFライセンスキーを取得する
  • バージョン管理に移行ブランチを作成する

コードの移行

-グノスティスPDFOneNuGetパッケージを削除する -IronPDFNuGetパッケージをインストールします: dotnet add package IronPdf

  • 名前空間のインポートを更新する
  • ライセンスキー設定の置き換え
  • PdfDocumentに変換します
  • ChromePdfRendererに変換します
  • 座標ベースの描画をHTMLスタンプに置き換える
  • PDFFontをCSSスタイリングに更新します
  • PdfDocument.Merge()に変換します

テスティング

  • HTMLからPDFへの変換テスト
  • 外部CSSが動作するようになったことを確認する
  • JavaScriptに依存するコンテンツをテストする
  • RTL言語をテストする(必要な場合)
  • デジタル署名をテストします (現在利用可能)
  • PDF結合のテスト
  • 透かしのテスト
  • メモリ使用量を比較する

移行後

-グノスティスPDFOneライセンスを削除します

  • ドキュメントの更新
  • Gnostice PDFOneの制限に対する回避策を削除 -IronPDFAPI についてチームをトレーニングする

ご注意: Gnostice は、それぞれの所有者の登録商標です。 当サイトは、Gnostice Information Technologies とは提携しておらず、承認または提供されたものではありません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。
Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。