フッターコンテンツにスキップ
移行ガイド

C#でPDFFilePrintからIronPDFに移行する方法

PDFFilePrintからIronPDFに移行することで、あなたの.NET PDFワークフローは、限られた機能を持つ印刷に特化したユーティリティから、単一の統一されたAPIで作成、操作、印刷を処理する包括的なPDFライブラリに移行します。 このガイドは、PDFFilePrintが提供できないPDFの生成と操作の機能を追加しながら、コマンドライン依存を排除する完全な、ステップバイステップの移行パスを提供します。

なぜPDFFilePrintからIronPDFに移行するのか

PDFFilePrintを理解する

PDFFilePrintは、C#アプリケーションからPDFファイルを印刷するために特別に設計された実用的なツールです。 ターゲットとするPDF印刷タスクには有効ですが、その機能は文書処理の一面に限られています。 PDFFilePrintの最大の魅力は、PDFファイルの印刷体験を提供するというシンプルさにあります。 しかし、このように焦点を絞ると、包括的な文書管理システムには大きな制約が生じます。

重要なPDFファイル印刷の制限事項

1.印刷のみに焦点:PDFファイル印刷の機能は印刷に限定されています。 PDFファイルを作成したり変更したりする機能がないため、より包括的な文書管理システムには限界があります。

2.コマンドライン依存性:PDFファイル印刷は、 Process.Start()呼び出しによるコマンドライン操作に依存することが多いため、より堅牢な API を必要とするアプリケーションへのシームレスな統合のニーズを満たさない可能性があります。

  1. Windows のみ: Windows 印刷システムに大きく依存しているため、他のオペレーティング システムを使用する環境には最適な選択肢ではない可能性があります。

  2. .NET 統合なし:ネイティブ API、NuGet パッケージ、および一部の使用パターンでの IntelliSense サポートはありません。

5.外部プロセス管理:プロセスのライフサイクル、終了コード、および stdout/stderr からのエラー解析を処理する必要があります。

6.制限されたエラー処理:エラーを検出するには、ネイティブ例外ではなく、標準出力とエラー ストリームを解析する必要があります。

7.展開の複雑さ:コマンドライン使用シナリオでは、PDFFilePrint.exe をアプリケーションにバンドルする必要があります。

  1. PDF 生成なし: PDF を作成できません。コマンド ライン モードで既存の PDF を印刷することしかできません。

PDFFilePrintとIronPDFの比較

アスペクトPDFファイル印刷IronPDF
主な焦点PDF印刷包括的なPDF API
タイプコマンドラインユーティリティ/基本ライブラリ.NETネイティブライブラリ
統合Process.Start() / 基本API直接APIコール
PDF印刷
PDFの作成制限的(HTML, URL, 画像)
PDF操作マージ、分割、編集
クロスプラットフォームWindowsのみWindows、Linux、macOS
エラー処理stdout/stderr の解析ネイティブ例外
インテリセンス制限的フルサポート
NuGetパッケージ制限的
ドキュメント基本広範囲

2025年と2026年まで.NET 10とC# 14の採用を計画しているチームにとって、IronPDFはクロスプラットフォームのサポートとアクティブな開発で包括的な基盤を提供し、PDFFilePrintのアーキテクチャ上の制限に対処します。


始める前に

前提条件

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

NuGetパッケージの変更

# RemovePDFファイル印刷package (if installed via NuGet)
dotnet remove package PDFFilePrint

# If using command-line PDFFilePrint.exe, remove from deployment
# Delete bundled PDFFilePrint.exe from your project

# Install IronPDF
dotnet add package IronPdf
# RemovePDFファイル印刷package (if installed via NuGet)
dotnet remove package PDFFilePrint

# If using command-line PDFFilePrint.exe, remove from deployment
# Delete bundled PDFFilePrint.exe from your project

# Install IronPDF
dotnet add package IronPdf
SHELL

ライセンス構成

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

PDFFilePrintの使用法を特定する

# FindPDFファイル印刷references
grep -r "PDFFilePrint\|PDFFile\|CreateFromHtml\|CreateFromUrl" --include="*.cs" .

# Find command-line execution patterns
grep -r "ProcessStartInfo.*pdf\|Process.Start.*print" --include="*.cs" .

# Find batch scripts
find . -name "*.bat" -o -name "*.cmd" | xargs grep -l "PDFFilePrint"
# FindPDFファイル印刷references
grep -r "PDFFilePrint\|PDFFile\|CreateFromHtml\|CreateFromUrl" --include="*.cs" .

# Find command-line execution patterns
grep -r "ProcessStartInfo.*pdf\|Process.Start.*print" --include="*.cs" .

# Find batch scripts
find . -name "*.bat" -o -name "*.cmd" | xargs grep -l "PDFFilePrint"
SHELL

完全な API リファレンス

名前空間の変更

// PDFFilePrint
using PDFFilePrint;
using System.Diagnostics; // For command-line usage

// IronPDF
using IronPdf;
using IronPdf.Printing;
// PDFFilePrint
using PDFFilePrint;
using System.Diagnostics; // For command-line usage

// IronPDF
using IronPdf;
using IronPdf.Printing;
$vbLabelText   $csharpLabel

コア クラス マッピング

PDFファイル印刷IronPDFノート
new PDFFile() とします。new ChromePdfRenderer().PDF作成
new PDFFile() とします。PdfDocument.FromFile()を使用してください。既存のPDFを読み込む場合
<コード>PDFファイル</コード<コード>PdfDocument</コードドキュメントオブジェクト

PDF生成メソッドのマッピング

PDFファイル印刷IronPDFノート
pdf.CreateFromHtml(html).renderer.RenderHtmlAsPdf(html).HTMLからPDFへ
pdf.CreateFromUrl(url).renderer.RenderUrlAsPdf(url)のようにします。URLからPDFへ
pdf.SaveToFile(path)を実行します。pdf.SaveAs(path)のようにします。ファイルに保存

PDFの読み込みと印刷マッピング

PDFファイル印刷IronPDFノート
pdf.LoadFromFile(path)を実行します。PdfDocument.FromFile(パス)既存のPDFを読み込む
pdf.Print(printerName).pdf.Print(printerName).特定のプリンタに印刷
pdf.Print("デフォルトのプリンタ")<コード>pdf.Print()</コードデフォルトに印刷

印刷設定マッピング (コマンドラインから API へ)

PDFFilePrintフラグIronPDF PrintSettingsプロパティノート
プリンター "名"<コード>プリンタ名</コード<コード>文字列</コード
-コピー N<コード>コピー数</コード<コード>int</コード
<コード>-サイレント</コードShowPrintDialog = false です。反転ロジック
-ページ "1-5"FromPageToPage<コード>int</コード
<コード>-オリエンテーション風景</コードペーパーオリエンテーション<コード>PdfPrintOrientation</コード
<コード>デュプレックス</コード<コード>デュプレックス</コードデュプレックス列挙型
<コード>-collate</コード<コード>Collate</コード<コード>ブール</コード

PDFFilePrintにはない新しい機能

IronPDFの特徴翻訳内容
PdfDocument.Merge()を使用してください。複数のPDFを結合
<コード>pdf.CopyPages()</コード特定のページを抜粋
<コード>pdf.ApplyWatermark()</コード></コード透かしの追加
<コード>pdf.SecuritySettings</コードパスワード保護
pdf.ExtractAllText()を使用してください。テキストコンテンツの抽出
pdf.RasterizeToImageFiles()画像に変換
pdf.SignWithDigitalSignature()を使用してください。デジタル署名

コード移行の例

例1: HTMLからPDFへの変換

ビフォア(PDFFilePrint):

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

class Program
{
    static void Main()
    {
        var pdf = new PDFFile();
        string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        pdf.CreateFromHtml(htmlContent);
        pdf.SaveToFile("output.pdf");
    }
}
// NuGet: Install-Package PDFFilePrint
using System;
using PDFFilePrint;

class Program
{
    static void Main()
    {
        var pdf = new PDFFile();
        string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        pdf.CreateFromHtml(htmlContent);
        pdf.SaveToFile("output.pdf");
    }
}
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
    }
}
$vbLabelText   $csharpLabel

ここでの基本的な違いは、APIパターンです。 PDFFilePrintは、CreateFromHtml()SaveToFile()メソッドを持つ単一のPDFFileクラスを使用します。 IronPDFはドキュメントオブジェクトからレンダリングを分離します-ChromePdfRendererがHTMLからPDFへの変換を行い、PdfDocumentオブジェクトを返します。

変換前にレンダラーでレンダリングオプションを設定でき、返された PdfDocument<//code> は保存前に操作(透かしの追加、他の PDF との結合、セキュリティの追加)できるためです。 その他のレンダリングオプションについては、HTML to PDF documentationを参照してください。

例2: URLからPDFへの変換

ビフォア(PDFFilePrint):

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

class Program
{
    static void Main()
    {
        var pdf = new PDFFile();
        pdf.CreateFromUrl("https://www.example.com");
        pdf.SaveToFile("webpage.pdf");
    }
}
// NuGet: Install-Package PDFFilePrint
using System;
using PDFFilePrint;

class Program
{
    static void Main()
    {
        var pdf = new PDFFile();
        pdf.CreateFromUrl("https://www.example.com");
        pdf.SaveToFile("webpage.pdf");
    }
}
$vbLabelText   $csharpLabel

翻訳後(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");
    }
}
// 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");
    }
}
$vbLabelText   $csharpLabel

PDFFilePrintは、同じPDFFileクラス上でCreateFromUrl()を使用します。 IronPDFはChromePdfRendererの専用メソッドRenderUrlAsPdf()を使用しており、複雑なCSS3、JavaScript、最新のウェブ機能を正確にレンダリングするために最新のChromiumエンジンを活用しています。 レンダリング品質は予測可能で、Chromeブラウザで表示されるものと同じです。 URLからPDFへの変換の詳細については、こちらをご覧ください。

例3: PDFの印刷

ビフォア(PDFFilePrint):

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

class Program
{
    static void Main()
    {
        var pdf = new PDFFile();
        pdf.LoadFromFile("document.pdf");
        pdf.Print("Default Printer");
        Console.WriteLine("PDF sent to printer");
    }
}
// NuGet: Install-Package PDFFilePrint
using System;
using PDFFilePrint;

class Program
{
    static void Main()
    {
        var pdf = new PDFFile();
        pdf.LoadFromFile("document.pdf");
        pdf.Print("Default Printer");
        Console.WriteLine("PDF sent to printer");
    }
}
$vbLabelText   $csharpLabel

翻訳後(IronPDF):

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

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        pdf.Print();
        Console.WriteLine("PDF sent to printer");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        pdf.Print();
        Console.WriteLine("PDF sent to printer");
    }
}
$vbLabelText   $csharpLabel

この例は、PDFの読み込みと印刷における基本的なアーキテクチャの違いを示しています。 PDFFilePrintは、new PDFFile()に続いてLoadFromFile()を使い、次にPrint(printerName)を使います。 IronPDFは静的ファクトリーメソッドPdfDocument.FromFile()で直接読み込み、Print()でデフォルトのプリンターを使用します(プリンター名を渡すこともできます)。

主な移行の変更点 -new PDFFile() とします。+ LoadFromFile(path)PdfDocument.FromFile(パス)。です。

  • Print("デフォルトのプリンタ")Print()(デフォルトのプリンタは自動です)

高度な印刷設定のために、IronPDFはPrintSettingsクラスを提供しています。 高度なオプションについては、印刷ドキュメントを参照してください。


高度な印刷設定の移行

PDFFilePrintのコマンドラインフラグを使用しているアプリケーションのために、IronPDFのPrintSettingsに移行する方法を説明します:

//PDFファイル印刷command-line approach:
// PDFFilePrint.exe -silent -copies 3 -printer "HP LaserJet" -pages "1-5" "document.pdf"

//IronPDFequivalent:
using IronPdf;

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

var settings = new PrintSettings
{
    ShowPrintDialog = false,    // -silent
    NumberOfCopies = 3,         // -copies 3
    PrinterName = "HP LaserJet", // -printer "HP LaserJet"
    FromPage = 1,               // -pages "1-5"
    ToPage = 5
};

pdf.Print(settings);
//PDFファイル印刷command-line approach:
// PDFFilePrint.exe -silent -copies 3 -printer "HP LaserJet" -pages "1-5" "document.pdf"

//IronPDFequivalent:
using IronPdf;

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

var settings = new PrintSettings
{
    ShowPrintDialog = false,    // -silent
    NumberOfCopies = 3,         // -copies 3
    PrinterName = "HP LaserJet", // -printer "HP LaserJet"
    FromPage = 1,               // -pages "1-5"
    ToPage = 5
};

pdf.Print(settings);
$vbLabelText   $csharpLabel

サイレント モード フラグ変換

サイレント印刷の反転ロジックに注意してください:

// PDFFilePrint: -silent flag enables silent mode
// IronPDF: ShowPrintDialog = false (false = silent)
var settings = new PrintSettings { ShowPrintDialog = false };
// PDFFilePrint: -silent flag enables silent mode
// IronPDF: ShowPrintDialog = false (false = silent)
var settings = new PrintSettings { ShowPrintDialog = false };
$vbLabelText   $csharpLabel

移行後の新機能

IronPDFに移行すると、PDFFilePrintでは提供できない機能が得られます:

ワンステップで作成と印刷ができます。

using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice #12345</h1><p>Thank you for your order.</p>");
pdf.Print("Office Printer");
using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice #12345</h1><p>Thank you for your order.</p>");
pdf.Print("Office Printer");
$vbLabelText   $csharpLabel

PDFマージ

var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
$vbLabelText   $csharpLabel

ウォーターマーク

var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>");
pdf.SaveAs("watermarked.pdf");
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>");
pdf.SaveAs("watermarked.pdf");
$vbLabelText   $csharpLabel

パスワード保護

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SaveAs("secured.pdf");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SaveAs("secured.pdf");
$vbLabelText   $csharpLabel

テキスト抽出

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

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

クラス パターンの変更

PDFFilePrintは、すべてに単一のPDFFileクラスを使用します; IronPDFでは、懸念事項を分離しています:

// PDFFilePrint: Single class
var pdf = new PDFFile();
pdf.CreateFromHtml(html);
pdf.SaveToFile(path);

// IronPDF: Renderer for creation, Document for manipulation
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(path);
// PDFFilePrint: Single class
var pdf = new PDFFile();
pdf.CreateFromHtml(html);
pdf.SaveToFile(path);

// IronPDF: Renderer for creation, Document for manipulation
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(path);
$vbLabelText   $csharpLabel

メソッド名の変更

//PDFファイル印刷→ IronPDF
CreateFromHtml() → RenderHtmlAsPdf()
CreateFromUrl() → RenderUrlAsPdf()
LoadFromFile() → PdfDocument.FromFile()
SaveToFile() → SaveAs()
Print(printerName) → Print(printerName) or Print()
//PDFファイル印刷→ IronPDF
CreateFromHtml() → RenderHtmlAsPdf()
CreateFromUrl() → RenderUrlAsPdf()
LoadFromFile() → PdfDocument.FromFile()
SaveToFile() → SaveAs()
Print(printerName) → Print(printerName) or Print()
$vbLabelText   $csharpLabel

終了コードから例外処理へ

コ マ ン ド ラ イ ン PDFFilePrint:

// PDFFilePrint: Check process exit code
if (process.ExitCode != 0) {
    var error = process.StandardError.ReadToEnd();
    throw new Exception($"Print failed: {error}");
}

// IronPDF: Use try-catch
try {
    pdf.Print();
}
catch (Exception ex) {
    // Handle error with full exception details
}
// PDFFilePrint: Check process exit code
if (process.ExitCode != 0) {
    var error = process.StandardError.ReadToEnd();
    throw new Exception($"Print failed: {error}");
}

// IronPDF: Use try-catch
try {
    pdf.Print();
}
catch (Exception ex) {
    // Handle error with full exception details
}
$vbLabelText   $csharpLabel

外部依存の削除

コ マ ン ド ラ イ ンPDFファイル印刷を使用す る 場合は、 バ ン ド ラ イ ン実行可能ファイルを削除 し て く だ さ い:

// Before: Required external executable
private readonly string _pdfFilePrintPath = @"C:\tools\PDFFilePrint.exe";

// After: No external dependencies
//IronPDFis fully self-contained via NuGet
// Before: Required external executable
private readonly string _pdfFilePrintPath = @"C:\tools\PDFFilePrint.exe";

// After: No external dependencies
//IronPDFis fully self-contained via NuGet
$vbLabelText   $csharpLabel

機能比較の概要

フィーチャーPDFファイル印刷IronPDF
基本的な印刷
サイレント印刷
複数部数
ページ範囲
デュプレックスさまざま
HTMLから作成制限的
URLから作成制限的
PDFのマージ
PDFの分割
透かしの追加
テキスト抽出
パスワード保護
デジタル署名
クロスプラットフォーム
ネイティブ.NET API制限的

移行チェックリスト

移行前

  • コードベース内のすべてのPDFFilePrint参照を見つける
  • 現在使用されているメソッド (CreateFromHtml、CreateFromUrl、Print など) を文書化します。
  • 環境間で使用されているプリンタ名を識別する
  • Process.Start パターンを使用する場合は、コマンドライン引数を一覧表示します。
  • 新しい機能(マージ、透かし、セキュリティ)の機会を特定する
  • IronPDFライセンスキーを取得する

パッケージの変更

  • PDFFilePrint NuGet パッケージを削除する
  • バンドルされている PDFFilePrint.exe を展開から削除します (該当する場合)
  • IronPdf NuGet パッケージをインストールします: dotnet add package IronPdf
  • 名前空間のインポートを更新する

コードの変更

  • 起動時にライセンスキー設定を追加する -new PDFFile() とします。+ CreateFromHtml()ChromePdfRenderer.RenderHtmlAsPdf()に置き換えます -new PDFFile() とします。+ CreateFromUrl()ChromePdfRenderer.RenderUrlAsPdf()に置き換えます
  • LoadFromFile()PdfDocument.FromFile()に置き換えます
  • SaveToFile()SaveAs()に置き換えます
  • 必要に応じてPrint()呼び出しを更新します
  • 終了コードチェックを例外処理に置き換える(該当する場合)

移行後

  • ソース管理からPDFFilePrint.exeを削除します
  • PDFFilePrintのコピーを削除するビルドスクリプトを更新
  • すべての対象プリンタでテスト印刷
  • 該当する場合はクロスプラットフォームテストを実施
  • 必要に応じて新しい機能(透かし、セキュリティ)を追加します
  • ドキュメントの更新

カーティス・チャウ
テクニカルライター

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

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。