IRONSOFTWAREHOME
ビデオ

How to Redact Text and Regions in PDF using C#

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

PDF Duo .NETからIronPDFへの移行により、.NET PDFワークフローを、最近のリリースのない、専門的な文書化されていないライブラリから、安定した、よく文書化された、積極的にメンテナンスされているソリューションに移行することができます。 このガイドは、非アクティブなコンポーネントに依存するリスクに対処しながら、PDF Duoの文書化されたAPIがカバーしていない機能にアクセスするための段階的な移行パスを提供します。

なぜPDF DuoからIronPDFへ移行するのか

PDFデュオのリスク問題

PDF Duo .NET (DuoDimension Software)は、.NET用のニッチなHTMLからPDFコンポーネントです。 それは自己完結型のDLLを求めるチームにアピールする可能性がありましたが、いくつかの特性が現在のプロダクションアプリケーションには適していないことを示しております:

  1. ベンダーと出所: パブリッシャーはDuoDimension Software (duodimension.com)であり、小規模なISVであり、公開されていないロードマップとGitHubリポジトリもありません。

  2. 文書化の乏しさ: 1つのベンダープロダクトページ、少数のサンプルスニペット、および2010年のプレスリリース。 APIリファレンスサイトもなく、意味のあるStack Overflowの存在もありません。

  3. 効果的に放棄された: 最後の公開リリースはv2.4、2010年12月10日付け — 約15年間新しいバージョンはありません。

  4. ドキュメント化された狭い表面領域: パブリックAPIは本質的にSavePDF(...)です。 透かし、暗号化、署名、フォーム入力、テキスト抽出、PDF結合のネイティブAPIにはドキュメントがありません。

  5. レンダリングエンジンの非公開: ベンダーの資料は、OfficeまたはAcrobatに依存しない自己完結型のコンポーネントを記述していますが、使用されているHTML/CSSエンジンについては公表していません。 CSS3、モダンJavaScript、ウェブフォント、フレックス/グリッドレイアウトは主張されていません。

  6. プレモダンな.NET対象: ドキュメント化されたサポートは.NET Framework 1.1から3.5まで、Windows XP / Vista / 7 / 2000 / 2003用です。.NET Framework 4.x、.NET Core、.NET 5+、Linux、またはDockerのサポートはドキュメント化されていません。

PDF DuoとIronPDFの比較

アスペクトPDF Duo .NETIronPDF
最後のリリースv2.4(2010年12月)アクティブで、定期的なリリース
配布duodimension.comからDLLをダウンロード(NuGetなし)NuGet IronPdf
ランタイムサポート.NET Framework 1.1 – 3.5、Windowsのみ.NET FX 4.6.2+、.NET 6/7/8/9/10、Linux、macOS、Docker
ドキュメンテーション単一のベンダー製品ページ包括的なドキュメント + APIリファレンス
サポート可視的にはなしプロのサポートチーム
コミュニティ無視できるほど少ない41M+ NuGetダウンロード(Iron Softwareスタック)
レンダリングエンジンの未公表モダンChromium
特徴HTML-to-PDFのみHTML-to-PDF、マージ、セキュリティ、署名、OCR、フォーム、透かし
ライセンスベンダーの価格ページごとに商業的、永久または購読

モダンな.NETを使用しているチームのために、IronPDFは2010年12月に公開されたv2.4というコンポーネントの代わりに、活発な開発と包括的なドキュメントを備えた安定した基盤を提供します。


始める前に

前提条件

  1. .NET環境: .NET Framework 4.6.2+ または.NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGetアクセス: NuGetパッケージをインストールする機能
  3. IronPDFライセンス: IronPDFからライセンスキーを取得します。

パッケージ / リファレンスの変更

PDF Duo .NETはNuGetを介して配布されていません。 削除は手動のステップです:

# In Visual Studio: References -> remove PDFDuo.dll (and any associated
# PDF Duo files) and delete the vendored binary from your /lib folder.

# Install IronPDF
dotnet add package IronPdf
SHELL

ライセンス構成

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

PDF Duo の使用法を特定する

# Find all PDF Duo references
grep -r "DuoDimension\|HtmlToPdf\b\|OpenHTML\|SavePDF" --include="*.cs" .
SHELL

APIリファレンス

ベンダーのドキュメント化されたルート名前空間はDuoDimensionです。 パブリック表面は本質的にSavePDF(...)です。 以下に示すIronPDF用のサブ名前空間はIronPDFの構造を反映しています; PDF Duo .NETはサブ名前空間をドキュメント化していません。

名前空間の変更

PDF Duo .NETIronPDF
using DuoDimension;using IronPdf;
(ドキュメント化されたサブ名前空間はありません)using IronPdf.Rendering;

HTMLからPDFへの変換マッピング

PDF Duo .NETIronPDF
new DuoDimension.HtmlToPdf()new ChromePdfRenderer()
conv.OpenHTML(htmlFile); conv.SavePDF(path);renderer.RenderHtmlFileAsPdf(htmlFile).SaveAs(path)
conv.OpenHTML(url); conv.SavePDF(path);renderer.RenderUrlAsPdf(url).SaveAs(path)
(文字列を一時的な.htmlに書き込み、次にOpenHTML)renderer.RenderHtmlAsPdf(html).SaveAs(path)

ページ構成マッピング

DuoDimension.HtmlToPdfは用紙サイズ、方向、または余白の設定オブジェクトをドキュメント化していません。 以下のIronPDFカラムには明示的なRenderingOptionsの同等物が示されています。

PDF Duo .NETIronPDF
(ドキュメント化されたページサイズオプションはありません)RenderingOptions.PaperSize = PdfPaperSize.A4
(ドキュメント化されたページサイズオプションはありません)RenderingOptions.PaperSize = PdfPaperSize.Letter
(ドキュメント化された向きオプションはありません)RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
(ドキュメント化された余白オブジェクトはありません)個々のマージン特性

マージンのマッピング

PDF Duo .NETIronPDF
(ドキュメント化された余白オブジェクトはありません)個々のプロパティ
(同等のものはありません)_RenderingOptions.MarginTop
(同等のものはありません)_RenderingOptions.MarginRight
(同等のものはありません)_RenderingOptions.MarginBottom
(同等のものはありません)_RenderingOptions.MarginLeft

ドキュメント操作マッピング

PDF Duo .NETはHTML-to-PDFコンバーターのみです。 ベンダーの製品ページにはDuoDimension.HtmlToPdfでのロード、バイト、またはマージAPIがドキュメント化されていません。 以下の行はPDF Duoを使用する際に隣接するライブラリで通常使用されていたものと、IronPDF呼び出しがどのようにそれを統合しているかを示しています。

必要PDF Duo .NETIronPDF
既存のPDFを読み込むネイティブではありません —— iTextSharp 4.xまたは類似のものとペアになりますPdfDocument.FromFile(path)
PDFを保存conv.SavePDF(path)pdf.SaveAs(path)
PDFバイトを取得not nativepdf.BinaryData
PDFのマージネイティブではありません —— iTextSharp 4.xまたは類似のものとペアになりますPdfDocument.Merge(pdf1, pdf2)

PDF Duoの文書化されたAPIにない新機能

フィーチャーIronPDF
ヘッダー/フッターRenderingOptions.HtmlHeader, HtmlFooter
ページ数{total-pages}プレースホルダ
透かしpdf.ApplyWatermark(html)
パスワード保護pdf.SecuritySettings
フォーム入力pdf.Form.Fields
デジタル署名pdf.SignWithFile()
テキスト抽出pdf.ExtractAllText()
PDFから画像へpdf.RasterizeToImageFiles()

コード移行の例

例1: HTMLからPDFへの変換

翻訳前(PDF Duo):

//PDF Duo .NETis not on NuGet — reference PDFDuo.dll from the vendor download.
using DuoDimension;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        // OpenHTML accepts a file path, URL, or stream; there is no documented
        // "convert HTML string" call, so write the markup to a temp file first.
        var tempHtml = Path.GetTempFileName() + ".html";
        File.WriteAllText(tempHtml, "<h1>Hello World</h1><p>This is a PDF document.</p>");

        var conv = new HtmlToPdf();
        conv.OpenHTML(tempHtml);
        conv.SavePDF("output.pdf");
        Console.WriteLine("PDF created successfully!");
    }
}
C#

翻訳後(IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF created successfully!");
    }
}

ここでの基本的な違いは、APIパターンです。 PDF DuoのSavePDF(path)を呼び出してディスクに書き込みます。 IronPDFのSaveAs()で保存します。

このオブジェクト指向アプローチにより、PDFを操作できる柔軟性が追加されます(透かしを追加、ドキュメントをマージ、セキュリティを追加、テキストを抽出)——これらはPDF Duo .NETの文書化されたAPIの一部ではありません。 その他のレンダリングオプションについては、HTML to PDF documentationを参照してください。

例2: URLからPDFへの変換

翻訳前(PDF Duo):

//PDF Duo .NETis not on NuGet — reference PDFDuo.dll from the vendor download.
using DuoDimension;
using System;

class Program
{
    static void Main()
    {
        var conv = new HtmlToPdf();
        conv.OpenHTML("https://www.example.com");
        conv.SavePDF("webpage.pdf");
        Console.WriteLine("Webpage converted to PDF!");
    }
}
C#

翻訳後(IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("webpage.pdf");
        Console.WriteLine("Webpage converted to PDF!");
    }
}

PDF Duoは、URL変換のために同じSavePDF(path)を実行します。 IronPDFは専用のPdfDocumentオブジェクトを返します。

重要な利点は、IronPDFのChromiumベースのレンダリングエンジンがモダンなCSS3とJavaScriptのサポートを提供することで、PDF Duoのベンダー資料はどのHTML/CSSエンジンが使用されているか公表していません。 URLからPDFへの変換の詳細については、こちらをご覧ください。

例 3: PDF のマージ

翻訳前(PDF Duo):

PDF Duo .NETはネイティブのPDFマージAPIを提供しません。 ドキュメント化された表面はHTML-to-PDFのみにとどまり、マージが必要であったチームは通常PDF Duoで各PDFをレンダリングし、それから別のライブラリでそれらを連結しました(2010年代のプロジェクトにはiTextSharp 4.xが一般的)。

//PDF Duo .NETis not on NuGet — reference PDFDuo.dll from the vendor download.
using DuoDimension;
using System;

class Program
{
    static void Main()
    {
        // Render each source HTML to its own PDF
        var conv = new HtmlToPdf();
        conv.OpenHTML("page1.html");
        conv.SavePDF("document1.pdf");

        conv = new HtmlToPdf();
        conv.OpenHTML("page2.html");
        conv.SavePDF("document2.pdf");

        // Merging into a single PDF requires another library (e.g., iTextSharp).
        Console.WriteLine("PDF Duo has no native merge — combine output with another library.");
    }
}
C#

翻訳後(IronPDF):

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

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");
        Console.WriteLine("PDFs merged successfully!");
    }
}

この例は、基本的なアーキテクチャの違いを示しています。 PDF Duo .NETにはマージAPIは全くありません — PDF Duoのワークフローでのマージは典型的には、iTextSharp 4.xのような第2のライブラリとペアを組むことを意味しました。

IronPDFはこれを単一の依存関係に統合します。PdfDocument.Merge()メソッドを使用します。 これは、PdfDocumentオブジェクトを返します。

IronPDFのアプローチでは、マージ前にPDFを任意に操作し、マージ結果に透かしを追加し、セキュリティ設定を適用するなどの操作が可能です。 多数のファイルをマージするには、LINQを使用できます:

var paths = new[] { "document1.pdf", "document2.pdf", "document3.pdf" };
var pdfs = paths.Select(PdfDocument.FromFile).ToList();
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("merged.pdf");

PDFのマージと分割については、こちらをご覧ください。


移行後の新機能

IronPDFに移行した後は、PDF Duoでは提供できない機能を得ることができます:

ページ番号を含むヘッダーとフッター

using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:center; font-size:10px;'>Company Report</div>",
    MaxHeight = 25
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:center; font-size:10px;'>Page {page} of {total-pages}</div>",
    MaxHeight = 25
};

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");

PDF Duoはヘッダーやフッターに対応しておらず、同等の機能はありません。 IronPDFはHTML/CSSをフルサポートし、ページ番号のような動的コンテンツ用のプレースホルダーを内蔵しています。 ヘッダーとフッターガイドを参照してください。

ウォーターマーク

using IronPdf;
using IronPdf.Editing;

var pdf = PdfDocument.FromFile("document.pdf");

pdf.ApplyWatermark(
    "<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>",
    45,
    VerticalAlignment.Middle,
    HorizontalAlignment.Center);

pdf.SaveAs("watermarked.pdf");

PDF Duoは透かしに対応していません。 IronPDFはHTMLベースの透かしを提供し、完全なCSSスタイリングをサポートします。

パスワード保護

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("secured.pdf");

PDF Duoはパスワード保護やセキュリティ設定に対応していません。

テキスト抽出

var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();

PDF Duoはテキスト抽出に対応していません。


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

PDF DuoのHtmlToPdfにページレイアウトオプションなし

DuoDimension.HtmlToPdfは用紙サイズ、方向、または余白をカバーする設定オブジェクトをドキュメント化していません。 IronPDFはこれらをRenderingOptionsで明示的に公開します。

// PDF Duo: no documented per-instance settings — OpenHTML / SavePDF only.

// IronPDF:
renderer.RenderingOptions.PaperSize    = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop    = 20;
renderer.RenderingOptions.MarginRight  = 15;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft   = 15;

セーブメソッドの命名

ファイルを書き込むための異なるメソッド名:

// PDF Duo:
conv.SavePDF("output.pdf");

// IronPDF:
pdf.SaveAs("output.pdf");

既存のPDFをロードする

PDF Duo .NETはPDFを書くのみです —"既存のPDFをロードする"呼び出しはドキュメント化されていません。 既存のPDFを操作するにはIronPDF(または他のライブラリ)に移行する必要があります:

// PDF Duo: no equivalent.

// IronPDF:
var pdf = PdfDocument.FromFile("document.pdf");

HTML文字列入力

PDF DuoのOpenHTMLは"このHTML文字列をレンダリングする"機能の呼び出しをドキュメント化していません。 チームはまずマークアップを一時ファイルに書きます。IronPDFは文字列を直接レンダリングします:

// PDF Duo:
File.WriteAllText("temp.html", html);
var conv = new DuoDimension.HtmlToPdf();
conv.OpenHTML("temp.html");
conv.SavePDF("output.pdf");

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

機能比較

フィーチャーPDF Duo .NETIronPDF
HTMLからPDFへはい(エンジン非公開)完全なCSS3、JavaScript
URLからPDFへはい認証サポート付き
PDFマージドキュメント化されたAPIにはありませんはい
ヘッダー/フッタードキュメント化されたAPIにはありませんHTMLフルサポート
ページ数ドキュメント化されたAPIにはありません組み込みプレースホルダ
透かしドキュメント化されたAPIにはありませんHTMLベース
パスワード保護ドキュメント化されたAPIにはありません完全なセキュリティオプション
フォーム入力ドキュメント化されたAPIにはありませんはい
デジタル署名ドキュメント化されたAPIにはありませんはい
テキスト抽出ドキュメント化されたAPIにはありませんはい
PDFから画像へドキュメント化されたAPIにはありませんはい
非同期サポートドキュメント化されたAPIにはありません完全なasync/await
.NET Core/5+ドキュメント化されたランタイムリストにはありませんサポート対象

移行チェックリスト

移行前

  • コードベース内のすべての PDF Duo 参照を検索
  • 現在の設定(ページ サイズ、余白など)を文書化します
  • 使用されたすべてのPDF操作を一覧表示します
  • 新しい機能(ヘッダー、透かし、セキュリティ)の機会を特定する
  • IronPDFライセンスキーを取得する

パッケージの変更

  • プロジェクトの参照からPDFDuo.dllを削除します(PDF Duo .NETはNuGetにはありません)。ベンダーのバイナリを削除します。
  • IronPdf NuGetパッケージをインストールします: dotnet add package IronPdf
  • 名前空間のインポートをusing IronPdf;に更新します。

コードの変更

  • 起動時にライセンスキー設定を追加する
  • ChromePdfRendererに置き換えます。
  • RenderHtmlFileAsPdf(path).SaveAs(path)に置き換えます。
  • HTML文字列のための一時ファイル回避をRenderHtmlAsPdf(html).SaveAs(path)に置き換えます。
  • RenderUrlAsPdf(url).SaveAs(path)に置き換えます。
  • 外部マージステップをすべてPdfDocument.Merge()に置き換えます。
  • ページサイズと余白をRenderingOptionsで明示的に設定します(PDF Duoの同等物はありません)。
  • SaveAs()に置き換えます。
  • "既存のPDFを読み込む"ワークフローにはPdfDocument.FromFile()を使用します(PDF Duoの同等物はありません)。

移行後

  • PDF出力を比較する回帰テストを実行する
  • ページサイズと余白が一致していることを確認する
  • 複雑な HTML/CSS でテストする (IronPDF の最新エンジンの方がより適切に処理できるはずです)
  • 新しい機能の追加(ヘッダー、フッター、透かし、セキュリティ)
  • ドキュメントの更新

ご注意: PDF Duo .NETはその所有者の登録商標です。 本サイトはDuoDimensionと関連付けられておらず、承認またはスポンサーも受けていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。
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日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。