C#でSumatra PDFからIronPDFへ移行する方法
スマトラPDFからIronPDFへの移行:完全なC#移行ガイド
Sumatra PDFからIronPDFへの移行は、PDFワークフローをデスクトップビューアアプリケーションによる外部プロセス管理から、完全なPDF作成、操作、抽出機能を備えた.NETネイティブライブラリ統合へと変えます。 このガイドは、外部依存、GPLライセンスの制限、そしてSumatra PDFが開発ライブラリではなくビューアであるという基本的な制限を排除した、完全でステップバイステップの移行パスを提供します。
なぜスマトラPDFからIronPDFへ移行するのか
スマトラを理解する PDF
Sumatra PDFは、主に軽量なオープンソースのPDFリーダーで、そのシンプルさとスピードで有名です。 しかし、Sumatra PDFは、PDFファイルを閲覧するだけでなく、PDFファイルの作成や操作に必要な機能を提供していません。 PDFを読むための無料で多用途なオプションとして、飾り気のない体験を求める多くのユーザーに愛用されています。 しかし、アプリケーション内での作成やライブラリ統合のような、より包括的なPDF機能を必要とする開発者に関しては、Sumatra PDFは、その固有の設計上の制限のために不足しています。
Sumatra PDFはデスクトップPDFビューアアプリケーションであり、開発ライブラリではありません。 .NETアプリケーションでSumatra PDFを使用している場合、おそらく次のようなことが考えられます:
1.PDFを表示する外部プロセスとして起動する 2.コマンドラインでPDFを印刷する 3.ユーザーがインストールしなければならない依存関係として、このツールに依存してください。
スマトラPDF統合の主な問題点
| 課題 | インパクト |
|---|---|
| ライブラリではありません。 | プログラムによるPDFの作成や編集はできません。 |
| 外部プロセスの場合 | 別プロセスの起動が必要 |
| GPLライセンス。 | 商用ソフトウェアに対する制限 |
| ユーザー依存性 | ユーザーはSumatraを別途インストールする必要があります。 |
| APIはありません。 | コマンドライン引数に限定 |
| 閲覧のみ。 | PDFの作成、編集、操作はできません。 |
| ウェブサポートはありません。 | デスクトップ専用アプリケーション |
スマトラPDFとIronPDFの比較
| フィーチャー | スマトラPDF | IronPDF |
|---|---|---|
| タイプ | アプリケーション | ライブラリ |
| PDFリーディング | はい | はい |
| PDFの作成。 | なし | はい |
| PDFの編集。 | なし | はい |
| 統合。 | 制限付き(スタンドアロン) | アプリケーションへの完全統合 |
| ライセンス | GPL | 商用 |
| PDFを作成する。 | なし | はい |
| PDFを編集する。 | なし | はい |
| HTMLからPDFへ | なし | はい |
| マージ/スプリット | なし | はい |
| ウォーターマーク。 | なし | はい |
| デジタル署名。 | なし | はい |
| フォーム入力 | なし | はい |
| テキスト抽出。 | なし | はい |
| .NETインテグレーション | なし | ネイティブ |
| ウェブアプリケーション。 | なし | はい |
IronPDFはSumatra PDFとは異なり、特定のデスクトップアプリケーションや外部プロセスに縛られることはありません。 C#で直接PDF文書を動的に作成、編集、操作するための柔軟なライブラリを開発者に提供します。 このように外部プロセスから切り離すことで、単純明快で適応性が高く、単に見るだけでなく幅広い用途に適しているという顕著な利点があります。
2025年と2026年まで.NET 10とC# 14の採用を計画しているチームに対して、IronPDFは外部プロセスのオーバーヘッドとSumatra PDFのGPLライセンス制限を排除するネイティブライブラリ統合を提供します。
始める前に
前提条件
1..NET環境: .NET Framework 4.6.2+ または .NET Core 3.1+ / .NET 5/6/7/8/9+. 2.NuGetアクセス:NuGetパッケージをインストールする能力。 3.IronPDFライセンス:ironPdf.comからライセンスキーを取得してください。
インストール
# Install IronPDF
dotnet add package IronPdf# Install IronPDF
dotnet add package IronPdfライセンス構成
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";IRON VB CONVERTER ERROR developers@ironsoftware.com完全な API リファレンス
名前空間の変更
// Before:スマトラPDF(external process)
using System.Diagnostics;
using System.IO;
// After: IronPDF
using IronPdf;// Before:スマトラPDF(external process)
using System.Diagnostics;
using System.IO;
// After: IronPDF
using IronPdf;IRON VB CONVERTER ERROR developers@ironsoftware.comコア機能のマッピング
| スマトラPDFアプローチ | IronPDF 同等物 | ノート |
|---|---|---|
Process.Start("SumatraPDF.exe", pdfPath). | PdfDocument.FromFile()を使用してください。 | PDFを読み込む |
| コマンドライン引数 | ネイティブAPIメソッド | CLI不要 |
外部の pdftotext.exe を使用してください。 | pdf.ExtractAllText()を使用してください。 | テキスト抽出 |
外部 wkhtmltopdf.exe | <コード>renderer.RenderHtmlAsPdf()</コード | HTMLからPDFへ |
-print-to-default引数 | <コード>pdf.Print()</コード | 印刷 |
| 不可 | PdfDocument.Merge()を使用してください。 | PDFのマージ |
| 不可 | <コード>pdf.ApplyWatermark()</コード></コード | 透かし |
| 不可 | <コード>pdf.SecuritySettings</コード | パスワード保護 |
コード移行の例
例1: HTMLからPDFへの変換
ビフォア(スマトラPDF):
// NuGet: Install-Package SumatraPDF (Note: Sumatra is primarily a viewer, not a generator)
//スマトラPDFdoesn't have direct C# integration forHTMLからPDFへconversion
// You would need to use external tools or libraries and then open with Sumatra
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
//スマトラPDFcannot directly convert HTML to PDF
// You'd need to use wkhtmltopdf or similar, then view in Sumatra
string htmlFile = "input.html";
string pdfFile = "output.pdf";
// Using wkhtmltopdf as intermediary
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "wkhtmltopdf.exe",
Arguments = $"{htmlFile} {pdfFile}",
UseShellExecute = false
};
Process.Start(psi)?.WaitForExit();
// Then open with Sumatra
Process.Start("SumatraPDF.exe", pdfFile);
}
}// NuGet: Install-Package SumatraPDF (Note: Sumatra is primarily a viewer, not a generator)
//スマトラPDFdoesn't have direct C# integration forHTMLからPDFへconversion
// You would need to use external tools or libraries and then open with Sumatra
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
//スマトラPDFcannot directly convert HTML to PDF
// You'd need to use wkhtmltopdf or similar, then view in Sumatra
string htmlFile = "input.html";
string pdfFile = "output.pdf";
// Using wkhtmltopdf as intermediary
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "wkhtmltopdf.exe",
Arguments = $"{htmlFile} {pdfFile}",
UseShellExecute = false
};
Process.Start(psi)?.WaitForExit();
// Then open with Sumatra
Process.Start("SumatraPDF.exe", pdfFile);
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string htmlContent = "<h1>Hello World</h1><p>This isHTMLからPDFへconversion.</p>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string htmlContent = "<h1>Hello World</h1><p>This isHTMLからPDFへconversion.</p>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comこの例は、基本的なアーキテクチャの違いを示しています。 スマトラPDFは、HTMLを直接PDFに変換することはできませんので、wkhtmltopdfのような外部ツールを仲介として使用し、結果を表示するために別のプロセスとしてスマトラを起動する必要があります。 このため、2つの外部実行ファイルと複数のプロセス起動が必要です。
IronPdfはChromePdfRendererとRenderHtmlAsPdf()をわずか3行のコードで使用します。 外部ツール、プロセス管理、中間ファイルは使用しません。 PDFはメモリ内で直接作成され、SaveAs()で保存されます。 包括的な例については、HTML to PDF documentationを参照してください。
例 2:PDFを開いて表示する
ビフォア(スマトラPDF):
// NuGet: Install-Package SumatraPDF.CommandLine (or direct executable)
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
string pdfPath = "document.pdf";
//スマトラPDFexcels at viewing PDFs
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = "SumatraPDF.exe",
Arguments = $"\"{pdfPath}\"",
UseShellExecute = true
};
Process.Start(startInfo);
// Optional: Open specific page
// Arguments = $"-page 5 \"{pdfPath}\""
}
}// NuGet: Install-Package SumatraPDF.CommandLine (or direct executable)
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
string pdfPath = "document.pdf";
//スマトラPDFexcels at viewing PDFs
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = "SumatraPDF.exe",
Arguments = $"\"{pdfPath}\"",
UseShellExecute = true
};
Process.Start(startInfo);
// Optional: Open specific page
// Arguments = $"-page 5 \"{pdfPath}\""
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
// Extract information
Console.WriteLine($"Page Count: {pdf.PageCount}");
//IronPDFcan manipulate and save, then open with default viewer
pdf.SaveAs("modified.pdf");
// Open with default PDF viewer
Process.Start(new ProcessStartInfo("modified.pdf") { UseShellExecute = true });
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
// Extract information
Console.WriteLine($"Page Count: {pdf.PageCount}");
//IronPDFcan manipulate and save, then open with default viewer
pdf.SaveAs("modified.pdf");
// Open with default PDF viewer
Process.Start(new ProcessStartInfo("modified.pdf") { UseShellExecute = true });
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comSumatra PDFはPDFの表示に優れていますが、コマンドライン引数で外部プロセスを起動することには制限があります。 プログラムでPDFコンテンツにアクセスすることはできません。
IronPDFはPdfDocument.FromFile()でPDFを読み込み、完全なプログラム的アクセスを提供します。 ページ数のようなプロパティを読み、ドキュメントを操作し、変更を保存し、システムのデフォルトのPDFビューアで開くことができます。 重要な違いは、IronPDFは単なるプロセス引数ではなく、実際のAPIを提供することです。 詳しくは、チュートリアルをご覧ください。
例3: PDFからテキストを抽出する
ビフォア(スマトラPDF):
//スマトラPDFdoesn't provide C# API for text extraction
// You would need to use command-line tools or other libraries
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
//スマトラPDFis a viewer, not a text extraction library
// You'd need to use PDFBox, iTextSharp, or similar for extraction
string pdfFile = "document.pdf";
// This would require external tools like pdftotext
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "pdftotext.exe",
Arguments = $"{pdfFile} output.txt",
UseShellExecute = false
};
Process.Start(psi)?.WaitForExit();
string extractedText = File.ReadAllText("output.txt");
Console.WriteLine(extractedText);
}
}//スマトラPDFdoesn't provide C# API for text extraction
// You would need to use command-line tools or other libraries
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
//スマトラPDFis a viewer, not a text extraction library
// You'd need to use PDFBox, iTextSharp, or similar for extraction
string pdfFile = "document.pdf";
// This would require external tools like pdftotext
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "pdftotext.exe",
Arguments = $"{pdfFile} output.txt",
UseShellExecute = false
};
Process.Start(psi)?.WaitForExit();
string extractedText = File.ReadAllText("output.txt");
Console.WriteLine(extractedText);
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
// Extract text from all pages
string allText = pdf.ExtractAllText();
Console.WriteLine("Extracted Text:");
Console.WriteLine(allText);
// Extract text from specific page
string pageText = pdf.ExtractTextFromPage(0);
Console.WriteLine($"\nFirst Page Text:\n{pageText}");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
// Extract text from all pages
string allText = pdf.ExtractAllText();
Console.WriteLine("Extracted Text:");
Console.WriteLine(allText);
// Extract text from specific page
string pageText = pdf.ExtractTextFromPage(0);
Console.WriteLine($"\nFirst Page Text:\n{pageText}");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comSumatra PDF はビューアであり、テキスト抽出ライブラリではありません。 テキストを抽出するには、pdftotext.exeのような外部コマンドラインツールを使用し、プロセスを起動し、完了するまで待ち、出力ファイルを読み、関連するすべてのファイルI/Oとクリーンアップを処理する必要があります。
IronPDFはExtractAllText()でドキュメント全体、またはExtractTextFromPage(0)で特定のページのネイティブテキスト抽出を提供します。 外部プロセス、一時ファイル、クリーンアップは不要です。
機能比較
| フィーチャー | スマトラPDF | IronPDF |
|---|---|---|
| 作成する。 | ||
| HTMLからPDFへ | なし | はい |
| URLからPDFへ | なし | はい |
| テキストからPDFへ | なし | はい |
| 画像からPDFへ | なし | はい |
| 操作。 | ||
| PDFのマージ | なし | はい |
| PDFの分割 | なし | はい |
| ページの回転 | なし | はい |
| ページの削除 | なし | はい |
| ページの並び替え | なし | はい |
| コンテンツ | ||
| 透かしの追加 | なし | はい |
| ヘッダー/フッターの追加 | なし | はい |
| スタンプテキスト | なし | はい |
| スタンプ画像 | なし | はい |
| セキュリティ。 | ||
| パスワード保護 | なし | はい |
| デジタル署名 | なし | はい |
| 暗号化 | なし | はい |
| 許可設定 | なし | はい |
| 抽出。 | ||
| テキストの抽出 | なし | はい |
| 画像の抽出 | なし | はい |
| プラットフォーム | ||
| ウィンドウズ | はい | はい |
| Linux | なし | はい |
| macOS | なし | はい |
| ウェブアプリ | なし | はい |
| Azure/AWS | なし | はい |
移行後の新機能
IronPdfに移行した後は、Sumatra PDFでは提供できない機能を得ることができます:
HTMLからのPDF作成
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(@"
<html>
<head><style>body { font-family: Arial; }</style></head>
<body>
<h1>Invoice #12345</h1>
<p>Thank you for your purchase.</p>
</body>
</html>");
pdf.SaveAs("invoice.pdf");var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(@"
<html>
<head><style>body { font-family: Arial; }</style></head>
<body>
<h1>Invoice #12345</h1>
<p>Thank you for your purchase.</p>
</body>
</html>");
pdf.SaveAs("invoice.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comPDFマージ
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var pdf3 = PdfDocument.FromFile("chapter3.pdf");
var book = PdfDocument.Merge(pdf1, pdf2, pdf3);
book.SaveAs("complete_book.pdf");var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var pdf3 = PdfDocument.FromFile("chapter3.pdf");
var book = PdfDocument.Merge(pdf1, pdf2, pdf3);
book.SaveAs("complete_book.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comウォーターマーク
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
<div style='
font-size: 60pt;
color: rgba(255, 0, 0, 0.3);
transform: rotate(-45deg);
'>
CONFIDENTIAL
</div>");
pdf.SaveAs("watermarked.pdf");var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
<div style='
font-size: 60pt;
color: rgba(255, 0, 0, 0.3);
transform: rotate(-45deg);
'>
CONFIDENTIAL
</div>");
pdf.SaveAs("watermarked.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comパスワード保護
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Sensitive Data</h1>");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SaveAs("protected.pdf");var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Sensitive Data</h1>");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SaveAs("protected.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.com移行チェックリスト
移行前
- [
Process.Start("SumatraPDF.exe", ..)) - [ドキュメント印刷ワークフロー(
-print-to-default引数) - [使用される Sumatra コマンドライン引数に注意してください。
- [ironpdf.comからIronPDFライセンスキーを入手してください。
コードの更新
- [ ]
IronPdfNuGetパッケージをインストールしてください。 - [ ] Sumatraプロセスコードの削除
- [ ]
Process.Start("SumatraPDF.exe", pdfPath).をPdfDocument.FromFile(pdfPath)に置き換えてください。 - [ ] 外部の
wkhtmltopdf.exe呼び出しをChromePdfRenderer.RenderHtmlAsPdf()に置き換えてください。 - [ ] 外部の
pdftotext.exe呼び出しをpdf.ExtractAllText()を使用してください。に置き換えてください。 - [ ]
-print-to-defaultプロセスコールをpdf.Print()に置き換えてください。 - [アプリケーション起動時のライセンス初期化機能の追加
テスティング
- [PDF 生成品質のテスト
- [印刷機能の検証
- [すべてのターゲットプラットフォームでのテスト
- [スマトラ依存が残っていないことを確認してください。
クリーンアップ
- [インストーラから Sumatra を削除する
- [ドキュメントの更新
- [システム要件からSumatraを削除する
結論
まとめると、Sumatra PDFとIronPDFのどちらを選ぶかは、あなたの要件に大きく依存します。 高速でわかりやすいPDFリーダーを必要とするエンドユーザーにとって、Sumatra PDFは素晴らしい体験を提供します。 しかしながら、高度なPDF操作や統合機能を必要とする開発者や企業にとって、IronPdfは優れた選択肢として際立っています。そのライブラリ設計、PDFの全機能、商用ライセンスにより、C#アプリケーションを新たな高みへと昇華させる強力なツールとなります。
この移行における主な変更点は以下のとおりです: 1.アーキテクチャ: 外部デスクトップアプリケーション → ネイティブ.NETライブラリ 2.PDF作成: 不可 → ChromePdfRenderer.RenderHtmlAsPdf()。 3.PDFの読み込み:Process.Start("SumatraPDF.exe", path) → PdfDocument.FromFile(path). 4.テキスト抽出: 外部 pdftotext.exe → pdf.ExtractAllText()とpdf.ExtractTextFromPage()。 5.印刷:-print-to-default CLI 引数 → pdf.Print(). 6.マージ: 不可 → PdfDocument.Merge()。 7.透かし: 不可 → pdf.ApplyWatermark()。 8.セキュリティ: 不可 → pdf.SecuritySettings。 9.ライセンス:GPL (制限的) → 商用 (柔軟) 10.依存関係:ユーザーはSumatraをインストールする必要があります。
IronPDFドキュメント、チュートリアル、APIリファレンスをご覧いただき、Sumatra PDFへの移行を加速させてください。






