ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
30日間のフル機能製品をお試しください。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
動的PDF生成は、現代のソフトウェア開発において不可欠です。 オンデマンドの請求書、詳細なレポート、インタラクティブなフォーム、またはパーソナライズされたドキュメントを作成しているかどうかに関わらず、PDFは情報を共有および保存するための最も信頼性の高いフォーマットの1つです。 PDF生成の美しさはその多様性にありますが、多くのツールと方法が存在する中で、プロジェクトに適したものをどのように選びますか?
このガイドでは、2025年にC#でPDFファイルを生成する12の異なる方法を探ります。コードファーストのアプローチから強力なHTML-to-PDF変換、レポートツール、さらにはクライアントサイドのJavaScriptソリューションまで、利用可能なオプションについての洞察を得ることができます。 "最高の"ライブラリを選ぶだけでなく、それぞれの方法の強みと弱点を理解できるようにし、あなたのニーズに最適なソリューションを選べるように手助けします。
PDF生成方法を選択する際には、いくつかの要因が決定に影響を与えます:
統合のニーズ: 既存のデータソース(SQLレポートなど)からPDFを生成する必要がありますか、または既存のPDFドキュメントを操作する必要がありますか?
要件を明確に理解すれば、利用可能ないろいろな方法をよりよく評価することができます。
メソッド アプローチ 強度 制限 最適な用途
iTextSharp コードファースト 軽量、オープンソース HTMLからPDFへのサポートはありません コードからシンプルなPDFを生成する
Puppeteer Sharp HTMLからPDFへ ピクセルパーフェクトのウェブレンダリング Node.jsおよびChromiumが必要 JavaScript による Web から PDF への変換
WkHtmlToPdf HTMLからPDFへ 無料、オープンソース、WebKitベース コマンドラインベース、IronPDFよりも遅い オープンソースのHTMLからPDFへの変換
IronPDF HTMLからPDFへ 最速のHTMLからPDF HTMLベースのPDFに最適 高速でマルチスレッドのHTMLからPDFへの変換
QuestPDF コードファースト 構造化されたPDFのための流暢なAPI HTMLからPDFへのサポートはありません 請求書と構造化文書
Syncfusion PDF レポーティングベース エンタープライズグレードのレポート サブスクリプションベース エンタープライズレポートとダッシュボード
FastReport レポーティングベース 手頃な価格のレポートツール 限定されたインタラクティビティ ビジネスレポート&フォーム
Spire.PDF コードファースト ドキュメントのセキュリティと署名 HTMLからPDFへの変換なし 署名でPDFを保護
Aspose.PDF 一般的なPDF処理 フルドキュメントオートメーション 高価で複雑なAPI エンタープライズ文書処理
PdfTron 編集と処理 高度なPDF編集と注釈 非常に高価なライセンス 編集、注釈、墨消し
凡例:
コードファーストメソッド(iTextSharp、Pdfium.NET、QuestPDF、Spire.PDFなど。)申し訳ありませんが、具体的なテキストを提供してください。翻訳するコンテンツをお送りいただければ、喜んで日本語に翻訳いたします。
HTMLからPDFへの変換(IronPDF、Puppeteer Sharp、など。)申し訳ありませんが、具体的なテキストを提供してください。翻訳するコンテンツをお送りいただければ、喜んで日本語に翻訳いたします。
報告に基づくアプローチ(FastReport、Syncfusion)申し訳ありませんが、具体的なテキストを提供してください。翻訳するコンテンツをお送りいただければ、喜んで日本語に翻訳いたします。
PDFの編集と処理(PdfTron, Spire.PDF, Aspose.PDF)申し訳ありませんが、具体的なテキストを提供してください。翻訳するコンテンツをお送りいただければ、喜んで日本語に翻訳いたします。
クライアントサイド JavaScript アプローチ(Puppeteer Sharp (パペティア シャープ))申し訳ありませんが、具体的なテキストを提供してください。翻訳するコンテンツをお送りいただければ、喜んで日本語に翻訳いたします。
✅ おすすめ: クライアント側で迅速にPDFを生成する必要があるブラウザベースのアプリケーション。
このガイドを読み終える頃には、どのPDF生成方法があなたのニーズに最適であるかを明確に理解できるようになります。 ウェブアプリケーション、エンタープライズレポートツール、またはクライアントサイドソリューションを構築している場合でも、自分の選択肢を知ることは、PDFワークフローにおいて最適な決定を下すのに役立ちます。
IronPDFを試してみましょう - オールインワンソリューション
プロジェクトに最適なPDF生成方法がわからない場合、IronPDFは優れた「万能」ソリューションを提供します。 HTMLからPDFを生成する場合でも、ASP.NETページや異なるソースの組み合わせでも、IronPDFは対応できます。
なぜIronPDFか?
✔️ ワークフローを効率化する: からPDFを生成するASP.NETページや動的コンテンツを簡単に。
IronPDFは、ほぼすべてのPDF関連タスクに対応する包括的なツールセットを提供しており、柔軟性とパフォーマンスを求める開発者にとっては優れた選択肢となります。
今日、IronPDFを試してくださいPDF生成プロセスを強化し、プロジェクトを次のレベルに引き上げましょう。 始める
コードファーストアプローチとは、C#コードを記述してPDFドキュメントをプログラム的に定義、作成、構築することを指します。 HTMLや事前に設計されたテンプレートなどの外部ソースに依存するテンプレートベースの方法やツールとは異なり、コードファーストアプローチはコンテンツと構造に対する完全な制御を提供します。 この柔軟性は、特定のニーズや複雑なレイアウトに基づいてゼロからPDFを作成したい開発者に最適であり、定義済みの形式に依存する必要がありません。
✅ 最適な対象: 外部ツールやテンプレートを使用せず、PDFレイアウトやコンテンツを完全に制御したい開発者。
❌ 制限事項: 他のアプローチと比較して複雑または動的なレイアウトには時間がかかるため、すべての要素を手動で処理する必要があります。
**テキストシャープは、開発者がテキスト、テーブル、画像を低レベルで制御できる、オープンソースで軽量なPDFライブラリです。 シンプルでありながら非常にカスタマイズ可能なPDFに最適で、外部依存関係なしにプログラムでドキュメントを作成する必要がある開発者にとっての標準的なツールです。
✅ 次のような場合に最適です...
PDFのレイアウト、カスタムテーブル、テキストの書式設定、画像などを詳細に制御する必要があります。
❌ 次のような場合は避けてください...
デジタル署名や暗号化などの高度なセキュリティ機能が必要です。
実際の例:複数ページのPDF請求書を生成する
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
Document doc = new Document();
PdfWriter.GetInstance(doc, new FileStream("invoice.pdf", FileMode.Create));
doc.Open();
doc.Add(new Paragraph("Invoice #12345"));
doc.Add(new Paragraph("Customer Name: John Doe"));
doc.Add(new Paragraph("Total: $250.00"));
doc.Close();
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
Document doc = new Document();
PdfWriter.GetInstance(doc, new FileStream("invoice.pdf", FileMode.Create));
doc.Open();
doc.Add(new Paragraph("Invoice #12345"));
doc.Add(new Paragraph("Customer Name: John Doe"));
doc.Add(new Paragraph("Total: $250.00"));
doc.Close();
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports System.IO
Private doc As New Document()
PdfWriter.GetInstance(doc, New FileStream("invoice.pdf", FileMode.Create))
doc.Open()
doc.Add(New Paragraph("Invoice #12345"))
doc.Add(New Paragraph("Customer Name: John Doe"))
doc.Add(New Paragraph("Total: $250.00"))
doc.Close()
出力
クエストPDF流暢なAPIを使用して、より宣言的なアプローチでPDFを生成します。 このライブラリは、レイアウトとコンテンツが重要な請求書、レポート、またはフォームのような構造化されたドキュメントを作成するのに最適です。
✅ 次のような場合に最適です...
エレメントを手動で配置するよりも、流暢で読みやすいAPIを好む。
❌ 次のような場合は避けてください...
PDF要素の低レベル操作が必要です(例:位置決めのピクセルレベルの制御).
実例: PDF請求書を生成する
using QuestPDF.Fluent;
using QuestPDF.Infrastructure;
Document.Create(container =>
{
container.Page(page =>
{
page.Header().Text("Invoice #12345");
page.Content().Column(col =>
{
col.Item().Text("Customer Name: John Doe");
col.Item().Text("Total: $200.00");
});
page.Footer().Text("Generated with QuestPDF");
});
}).GeneratePdf("invoice.pdf");
using QuestPDF.Fluent;
using QuestPDF.Infrastructure;
Document.Create(container =>
{
container.Page(page =>
{
page.Header().Text("Invoice #12345");
page.Content().Column(col =>
{
col.Item().Text("Customer Name: John Doe");
col.Item().Text("Total: $200.00");
});
page.Footer().Text("Generated with QuestPDF");
});
}).GeneratePdf("invoice.pdf");
Imports QuestPDF.Fluent
Imports QuestPDF.Infrastructure
Document.Create(Sub(container)
container.Page(Sub(page)
page.Header().Text("Invoice #12345")
page.Content().Column(Sub(col)
col.Item().Text("Customer Name: John Doe")
col.Item().Text("Total: $200.00")
End Sub)
page.Footer().Text("Generated with QuestPDF")
End Sub)
End Sub).GeneratePdf("invoice.pdf")
出力
Spire.PDFは、PDFドキュメントに強力なセキュリティ機能を追加する商業用PDFライブラリです。 これは暗号化、パスワード保護、デジタル署名にも対応しており、文書のセキュリティを強化する必要があるアプリケーションに最適な選択肢です。
✅ 次のような場合に最適です...
デジタル署名を適用したり、文書のアクセスを制限したりする必要があります。
❌ 次のような場合は避けてください...
無料のオープンソースソリューションをお探しですか(iTextSharp はより適しているかもしれません).
実例: PDFの生成と暗号化
using Spire.Pdf;
Spire.Pdf.PdfDocument pdf = new Spire.Pdf.PdfDocument();
pdf.Pages.Add();
PdfPasswordSecurityPolicy policy = new PdfPasswordSecurityPolicy("user", "owner");
PdfDocumentPrivilege privilege = new PdfDocumentPrivilege();
privilege.AllowPrint = false;
privilege.AllowModifyContents = false;
policy.DocumentPrivilege = privilege;
pdf.Encrypt(policy);
pdf.SaveToFile("secured.pdf");
using Spire.Pdf;
Spire.Pdf.PdfDocument pdf = new Spire.Pdf.PdfDocument();
pdf.Pages.Add();
PdfPasswordSecurityPolicy policy = new PdfPasswordSecurityPolicy("user", "owner");
PdfDocumentPrivilege privilege = new PdfDocumentPrivilege();
privilege.AllowPrint = false;
privilege.AllowModifyContents = false;
policy.DocumentPrivilege = privilege;
pdf.Encrypt(policy);
pdf.SaveToFile("secured.pdf");
Imports Spire.Pdf
Private pdf As New Spire.Pdf.PdfDocument()
pdf.Pages.Add()
Dim policy As New PdfPasswordSecurityPolicy("user", "owner")
Dim privilege As New PdfDocumentPrivilege()
privilege.AllowPrint = False
privilege.AllowModifyContents = False
policy.DocumentPrivilege = privilege
pdf.Encrypt(policy)
pdf.SaveToFile("secured.pdf")
出力
プログラムによるPDFの生成に関しては、さまざまなライブラリが軽量ソリューションから非常に構造化された安全なドキュメント生成まで、ユニークな機能を提供しています。 こちらは、コードファーストPDF生成の分野における主要なライブラリの内訳です。これにより、十分な情報をもとにした判断ができるようになります:
HTMLからPDFへの変換は、開発者がウェブページ、テンプレート、または動的に生成されたHTMLコンテンツをフォーマットされたPDFドキュメントに変換することを可能にする強力な方法です。 この技術は、請求書、領収書、詳細なレポート、および印刷可能なPDF形式でキャプチャする必要があるあらゆるウェブベースのコンテンツをエクスポートするシナリオに最適です。
✅ 最適用途: CSSスタイリング、JavaScript実行、および埋め込み画像を含む高精度のPDFエクスポートを必要とするアプリケーション。
❌ 制限: 一部のライブラリは、異なるブラウザやエンジンで一貫したレンダリングに苦労する場合があり、最終出力に変動が生じることがあります。
プロジェクトに最適なツールがわからない場合は、ニーズに基づいた簡単な決定ガイドをご覧ください。
IronPDFは、HTMLをPDFに変換する際の速度と忠実性で優れている堅牢な.NET PDFライブラリです。 JavaScript、CSS、画像、さらに動的なウェブコンテンツのサポートを備えたIronPDFは、大規模なPDF生成を必要とするアプリケーションに際立っており、わずか数行でPDFファイルを作成し、さまざまなPDF生成タスクを処理することができます。
✅ 次のような場合に最適です...
使用を計画していますマルチスレッド処理大量のPDFを効率的に処理するために。
❌ 以下の場合は避けてください...
動的要素を含まない単純なHTMLエクスポートにのみ興味があります。
実際のコード例: IronPDF を使用して HTML を PDF に変換 もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf
```(<h1 style='Color:Blue; text-align: center; font-weight: bold'>こんにちは、世界!</h1><p>IronPDF を使用して生成されました。</p>");
pdf.SaveAs(HelloWorld.pdf);
もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。
**出力**

お試しください[**IronPDF**](https://ironpdf.com/docs/#trial-license)あなたのHTMLをどれほど迅速にプロフェッショナルなPDFに変換できるかを確認してください。 NuGetパッケージマネージャーコンソールを通じて、C#プロジェクトに簡単にダウンロードできます。
### 5. Puppeteer Sharp – 無料のヘッドレスChromeベースのPDF生成
[Puppeteer Sharp (パペティア シャープ)](https://github.com/hardkoded/puppeteer-sharp)は、ヘッドレスChromiumブラウザを制御するPuppeteer API用のオープンソースC#ラッパーです。 これは、特にJavaScriptを多用するWebページの正確なレンダリングを必要とする開発者に最適なソリューションであり、無料かつオープンソースのアプローチを好む人々にも適しています。
✅ **最適な場合...**
* 無料のオープンソースのHTMLからPDFへの変換を望んでいます。
* 完全なJavaScriptの実行とブラウザ操作の自動化が必要です。
❌ **次のような場合は避けてください...**
* マルチスレッド処理が必要です(IronPDFはより高速なパフォーマンスを提供します).
* Node.jsの依存関係なしで、C#のみで実装されるソリューションが必要です。
実際のコード例: Puppeteer Sharpを使用して新しいPDFドキュメントを生成
```cs
using PuppeteerSharp;
await new BrowserFetcher().DownloadAsync();
await using var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
await page.GoToAsync("https://github.com/hardkoded/puppeteer-sharp");
await page.PdfAsync("output.pdf");
出力
Aspose.PDFは、広範なドキュメント処理ツール群の一部です。 最速のオプションではありませんが、WordやExcelを含む他の形式との深い統合により、オートメーションと文書管理が優先されるエンタープライズレベルのソリューションにとって理想的な選択肢です。
✅ 最適な場合...
PDF、Word、Excelなど、さまざまなドキュメント形式を扱うことになります。
❌ 次の場合は避けてください:
より費用対効果の高いソリューションをお探しです(Asposeは、小規模プロジェクトには高価になることがあります).
実際のコード例: Aspose.PDFを使用したHTMLからPDFへの変換
using Aspose.Pdf;
HtmlLoadOptions options = new HtmlLoadOptions();
Document pdfDocument = new Document("InvoiceTemplate.html", options);
pdfDocument.Save("output.pdf");
using Aspose.Pdf;
HtmlLoadOptions options = new HtmlLoadOptions();
Document pdfDocument = new Document("InvoiceTemplate.html", options);
pdfDocument.Save("output.pdf");
Imports Aspose.Pdf
Private options As New HtmlLoadOptions()
Private pdfDocument As New Document("InvoiceTemplate.html", options)
pdfDocument.Save("output.pdf")
出力
HTMLからPDFへの変換に関しては、さまざまなライブラリが異なるレベルのパフォーマンス、機能、柔軟性を提供しています。 こちらは、HTMLからPDFへの変換分野での主要なプレーヤーの概要です。ニーズに最適な選択をするための参考にしてください。
レポートベースのアプローチは、開発者が視覚的に魅力的でデータ駆動のレポートを作成するために設計されたツールを活用して、構造化されたPDFを生成する強力な方法です。 これらのツールは、表形式のレイアウト、グラフ、チャート、その他のデータ視覚化要素などの機能を提供し、ビジネスインテリジェンスに最適です。(BI)財務報告書、企業向けアプリケーション。 それらはデータベースとシームレスに統合され、ライブデータを取り込んで、詳細で正確なレポートを作成します。このレポートは、PDFなど多様な形式で共有することができます。
これらのアプローチは、プレゼンテーションや構造化データが最も重要であるシナリオで際立っていますが、HTML-to-PDF やコードファーストアプローチなどの他の方法に比べて制限がある場合があります。これらの方法は、より柔軟性を提供する傾向があります。
こちらは、ニーズに合ったレポートベースのアプローチを選択するための簡単なガイドです。
FastReportは軽量でシンプルに設計されており、オーバーヘッドを最小限に抑えてレポートを作成したい開発者にとって素晴らしい選択です。 ユーザーがテンプレートを設計し、それをPDFにエクスポートできるようにします。シンプルなドラッグ&ドロップインターフェースを利用しています。 このツールは、プロフェッショナルな外観のレポートを手頃な価格で迅速に生成する必要がある中小企業や開発者に特に人気があります。
✅ 最適な条件…
あなたは「見るままにできる」を好む(WYSIWYG)デザインの経験を提供し、複雑なレイアウトを手動でコード化する必要を排除します。
❌ 避けるべき場合…
ビジネスインテリジェンスとの深い統合が必要です(BI)ツールや複雑な分析
実際のコード例:FastReportを使用してPDFレポートを生成する
using FastReport;
using FastReport.Export.PdfSimple;
Report report = new Report();
report.Load("ReportTemplate.frx");
report.Prepare();
PDFSimpleExport pdfExport = new PDFSimpleExport();
report.Export(pdfExport, "output.pdf");
report.Dispose();
using FastReport;
using FastReport.Export.PdfSimple;
Report report = new Report();
report.Load("ReportTemplate.frx");
report.Prepare();
PDFSimpleExport pdfExport = new PDFSimpleExport();
report.Export(pdfExport, "output.pdf");
report.Dispose();
Imports FastReport
Imports FastReport.Export.PdfSimple
Private report As New Report()
report.Load("ReportTemplate.frx")
report.Prepare()
Dim pdfExport As New PDFSimpleExport()
report.Export(pdfExport, "output.pdf")
report.Dispose()
出力
Syncfusion PDFエンタープライズグレードの機能で際立っています。 それは大規模なデータセットを扱う際に優れており、金融、医療、そして高性能なレポートを必要とするあらゆるビジネスにとって好ましい選択肢となっています。 このツールは他のSyncfusion製品とよく統合し、グラフやテーブルなどの高度な機能、さらには大規模なレポート生成用の特殊なコンポーネントを提供します。
✅ 最適な条件…
✔️ 大規模なレポートのために、エンタープライズグレードのパフォーマンス最適化が必要です。
❌ 避けるべき場合…
インタラクティブなBIダッシュボードのような機能が必要です(ActiveReports.NETそれではより良いでしょう).
実際のコード例: SyncfusionでデータレポートをPDFにエクスポート
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Drawing;
PdfDocument document = new PdfDocument();
PdfPage page = document.Pages.Add();
PdfGraphics graphics = page.Graphics;
PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 12);
graphics.DrawString("Enterprise Report", font, PdfBrushes.Black, new PointF(10, 10));
FileStream fileStream = new FileStream("SyncfusionOutput.pdf", FileMode.CreateNew, FileAccess.ReadWrite);
document.Save(fileStream);
document.Close(true);
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Drawing;
PdfDocument document = new PdfDocument();
PdfPage page = document.Pages.Add();
PdfGraphics graphics = page.Graphics;
PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 12);
graphics.DrawString("Enterprise Report", font, PdfBrushes.Black, new PointF(10, 10));
FileStream fileStream = new FileStream("SyncfusionOutput.pdf", FileMode.CreateNew, FileAccess.ReadWrite);
document.Save(fileStream);
document.Close(true);
Imports Syncfusion.Pdf
Imports Syncfusion.Pdf.Graphics
Imports Syncfusion.Drawing
Private document As New PdfDocument()
Private page As PdfPage = document.Pages.Add()
Private graphics As PdfGraphics = page.Graphics
Private font As PdfFont = New PdfStandardFont(PdfFontFamily.Helvetica, 12)
graphics.DrawString("Enterprise Report", font, PdfBrushes.Black, New PointF(10, 10))
Dim fileStream As New FileStream("SyncfusionOutput.pdf", FileMode.CreateNew, FileAccess.ReadWrite)
document.Save(fileStream)
document.Close(True)
出力
レポートから構造化されたPDFを生成する際、規模、インタラクティブ性、そして作成するレポートの複雑さに応じて、さまざまなライブラリが異なる強みを提供します。 以下のレポートベースのソリューションの重要な部分を分析し、ニーズに最適なものを選ぶ手助けをします。
Syncfusion PDF: 大規模なエンタープライズグレードのレポート作成には、Syncfusion PDFは強力なツールです。 それは、大規模データセットを処理し、金融や医療のような業界向けに高性能レポートを作成するのに優れています。 堅牢なレポートツールを必要とする企業には最適ですが、サブスクリプションベースなので、小規模なプロジェクトには最も費用対効果の高いオプションではないかもしれません。
最終的には、選択は生成するレポートの複雑さと予算に依存するべきです。
PDFの編集と処理に関しては、一から新しい文書を作成するのではなく、既存の文書を変更することに重点が置かれています。 これらのアプローチは、PDFをマージ、分割、注釈付け、墨消し、フォーム入力、デジタル署名の適用、または暗号化で保護する必要がある開発者に最適です。 このカテゴリーのツールは、特に安全なドキュメント処理や共同作業を必要とする業界において、ワークフローの効率を向上させるために不可欠です。
✅ 最適な用途: 後処理、セキュリティ、コラボレーションに重点を置くアプリケーション。
❌ 制限事項: 新しいPDFをゼロから作成するのには適していません。強化や修正に向いています。
PdfTronは、開発者がPDFに対して高度な注釈、フォーム操作、セキュアな秘匿を含む広範な編集を行うことを可能にするトップクラスのPDF SDKです。 それは、文書の共同作業や詳細で安全な修正が最重要となる環境で際立ちます。
✅ 最適です…
あなたのアプリケーションには、広範なコラボレーティブなPDF編集機能が必要です。
❌ 該当する場合は避けてください…
基本的なPDF結合やフォーム入力が主なニーズです(DynamicPDFはその用途にもっと適しています).
実際のコード例: PDFに注釈を追加する
using pdftron;
using pdftron.PDF;
using pdftron.SDF;
PDFNet.Initialize("demo:1739928242530:617b000f030000000026ba4354ecdfa0b43003e431a2fb68e00e0b0787");
PDFDoc doc = new PDFDoc("input.pdf");
doc.InitSecurityHandler();
// Create a highlight annotation
Annot highlight = Annot.Create(doc, Annot.Type.e_Circle, new Rect(100, 500, 400, 600));
highlight.SetContents("This is an annotation made using PdfTron!");
Page page = doc.GetPage(1);
page.AnnotPushBack(highlight);
// Save the updated PDF
doc.Save("annotated.pdf", SDFDoc.SaveOptions.e_linearized);
using pdftron;
using pdftron.PDF;
using pdftron.SDF;
PDFNet.Initialize("demo:1739928242530:617b000f030000000026ba4354ecdfa0b43003e431a2fb68e00e0b0787");
PDFDoc doc = new PDFDoc("input.pdf");
doc.InitSecurityHandler();
// Create a highlight annotation
Annot highlight = Annot.Create(doc, Annot.Type.e_Circle, new Rect(100, 500, 400, 600));
highlight.SetContents("This is an annotation made using PdfTron!");
Page page = doc.GetPage(1);
page.AnnotPushBack(highlight);
// Save the updated PDF
doc.Save("annotated.pdf", SDFDoc.SaveOptions.e_linearized);
Imports pdftron
Imports pdftron.PDF
Imports pdftron.SDF
PDFNet.Initialize("demo:1739928242530:617b000f030000000026ba4354ecdfa0b43003e431a2fb68e00e0b0787")
Dim doc As New PDFDoc("input.pdf")
doc.InitSecurityHandler()
' Create a highlight annotation
Dim highlight As Annot = Annot.Create(doc, Annot.Type.e_Circle, New Rect(100, 500, 400, 600))
highlight.SetContents("This is an annotation made using PdfTron!")
Dim page As Page = doc.GetPage(1)
page.AnnotPushBack(highlight)
' Save the updated PDF
doc.Save("annotated.pdf", SDFDoc.SaveOptions.e_linearized)
出力
Aspose.PDFエンタープライズレベルのドキュメント処理に優れ、テキスト抽出、フォーム入力、およびドキュメントマージのための強力な機能を提供します。 それは特に、自動化されたワークフロー、構造化されたドキュメント処理、OCR統合、大規模なPDF操作に適しています。
✅ 最適な場合… ✔️ シームレスで自動化されたPDF処理が必要な場合(統合、分割、テキスト抽出).\
✔️ あなたはOCRまたは構造化されたドキュメントのワークフローを処理します。(フォーム、注釈など。).
❌ 避けるべき状況 🚫 リアルタイムの注釈や詳細なPDF編集が必要な場合(PdfTronはより適している).\
高速のバルク処理が必要です(DynamicPDFの方が適切でしょう).
実際のコード例: PDFからテキストを抽出する
using Aspose.Pdf;
using Aspose.Pdf.Text;
Document pdfDocument = new Document("Sample.pdf");
TextAbsorber textAbsorber = new TextAbsorber();
pdfDocument.Pages.Accept(textAbsorber);
string extractedText = textAbsorber.Text;
File.WriteAllText("extracted.txt", extractedText);
using Aspose.Pdf;
using Aspose.Pdf.Text;
Document pdfDocument = new Document("Sample.pdf");
TextAbsorber textAbsorber = new TextAbsorber();
pdfDocument.Pages.Accept(textAbsorber);
string extractedText = textAbsorber.Text;
File.WriteAllText("extracted.txt", extractedText);
Imports Aspose.Pdf
Imports Aspose.Pdf.Text
Private pdfDocument As New Document("Sample.pdf")
Private textAbsorber As New TextAbsorber()
pdfDocument.Pages.Accept(textAbsorber)
Dim extractedText As String = textAbsorber.Text
File.WriteAllText("extracted.txt", extractedText)
出力
ダイナミックPDFは、高速PDF統合およびバッチ処理用の強力なツールです。 それは、何千ものドキュメントをマージするなどの大規模な操作に対応し、最適なパフォーマンスを維持するように設計されています。 このライブラリは、速度と効率が重要なユースケースに最適です。
✅ 最適です…
あなたのアプリケーションは、パフォーマンスの最適化のために、並行してPDFドキュメントを処理する必要があります。
❌ 該当する場合は避けてください…
インタラクティブなPDF要素を操作する必要があります。
実際のコード例:複数のPDFをマージする
using ceTe.DynamicPDF.Merger;
MergeDocument document = new MergeDocument("file1.pdf");
document.Append("file2.pdf");
document.Append("file3.pdf");
document.Draw("merged.pdf");
using ceTe.DynamicPDF.Merger;
MergeDocument document = new MergeDocument("file1.pdf");
document.Append("file2.pdf");
document.Append("file3.pdf");
document.Draw("merged.pdf");
Imports ceTe.DynamicPDF.Merger
Private document As New MergeDocument("file1.pdf")
document.Append("file2.pdf")
document.Append("file3.pdf")
document.Draw("merged.pdf")
出力
Spire.PDFは、PDFに暗号化、電子署名、およびパスワード保護を適用することを専門とするセキュリティ重視のライブラリです。 プロジェクトが強力なセキュリティ機能を必要とする場合、Spire.PDFはPDFを安全に暗号化および署名します。
✅ 最適です…
証明書およびパスワード保護の適用に対する組み込みサポートが必要です。
❌ 該当する場合は避けてください…
注釈や深いテキスト操作のような高度な編集機能が必要です。
実際のコード例: PDF をパスワードで暗号化する
using Spire.Pdf;
using Spire.Pdf.Security;
Spire.Pdf.PdfDocument pdf = new Spire.Pdf.PdfDocument();
pdf.Pages.Add();
PdfPasswordSecurityPolicy policy = new PdfPasswordSecurityPolicy("user", "owner");
pdf.Encrypt(policy);
pdf.SaveToFile("secured.pdf");
using Spire.Pdf;
using Spire.Pdf.Security;
Spire.Pdf.PdfDocument pdf = new Spire.Pdf.PdfDocument();
pdf.Pages.Add();
PdfPasswordSecurityPolicy policy = new PdfPasswordSecurityPolicy("user", "owner");
pdf.Encrypt(policy);
pdf.SaveToFile("secured.pdf");
Imports Spire.Pdf
Imports Spire.Pdf.Security
Private pdf As New Spire.Pdf.PdfDocument()
pdf.Pages.Add()
Dim policy As New PdfPasswordSecurityPolicy("user", "owner")
pdf.Encrypt(policy)
pdf.SaveToFile("secured.pdf")
出力
既存のPDFを修正する場合、異なるライブラリは柔軟性、安全性、自動化のレベルが異なります。このことは上記のコード例でも見た通りです。 こちらが、PDF編集および処理の分野における主要な企業の内訳です。あなたのニーズに最適な選択をするための参考にしてください。
これまでに、C#でPDFを生成するための12以上の異なる方法について深く探求してきました。これには、コードファースト戦略からHTMLからPDFの変換などが含まれます。 目標は明確です:特定のニーズに最適なアプローチを選ぶ手助けをすることです。 この最終セクションでは、重要な洞察を要約し、理想的な方法を選択するためのロードマップを提供します。
どのアプローチを選ぶべきか迷っている場合は、こちらの簡単なフローチャートをご覧ください。意思決定プロセスをサポートします。
こちらは、一般的なユースケースに対するアプローチをすぐに比較できる便利なリファレンステーブルです:
多くの選択肢がある中で、適切なPDF生成方法を選ぶのはプロジェクトの特定のニーズに完全に依存しています。 各アプローチを分解し、使用するタイミング、その利点、および各カテゴリーで優れているライブラリを強調します。
ゼロからPDFを生成するためにC#コードを書くことを好む場合、コードファーストライブラリはテキスト、画像、表、およびドキュメント構造に対する完全なプログラム制御を提供します。 これらのアプローチは、動的コンテンツ生成、自動ドキュメント作成、および構造化されたレイアウトにおいて、外部レンダリングエンジンに依存せずにうまく機能します。
✅ 最適な対象:
C#モデル、データソース、または計算から直接PDFを作成します。
おすすめ:
📌 iTextSharp – 複雑なPDFを処理するための強力で多機能なライブラリ。
📌 QuestPDF – 流暢なAPIを備えた、現代的で開発者に優しい代替ツール。
📌 Spire.PDF – 文書の作成と修正の両方に対応する柔軟なライブラリ。
🚀 なぜこれを選ぶのか? HTMLを使用せずに完全にカスタムされた、データ駆動型のPDFを必要とするアプリケーションを開発している場合、これが最良の選択です。!
ウェブサイト、メール、またはHTMLテンプレートをPDFに変換する必要がありますか? それなら、HTMLからPDFへの変換ライブラリが最適な選択です。 これらのツールは、フォント、スタイル、画像、さらにはJavaScriptでレンダリングされたコンテンツを保持するPDFを生成することができ、ウェブレポート、請求書、ウェブページからの自動ドキュメント生成に理想的です。
✅ 最適な対象:
ウェブベースのコンテンツのピクセルパーフェクトなレンダリングを保証します。
おすすめ:
📌 IronPDF – 高速で、多機能、JavaScriptの実行をサポート。
📌 Winnovative – 優れた精度とカスタマイズ性で堅実な選択。
📌 Puppeteer Sharp – ヘッドレスブラウザの自動化に精通している開発者に最適です。
🚀 これを選ぶ理由 あなたのデータがウェブアプリにあるか、HTMLから完璧にフォーマットされたPDFを作成したい場合、このアプローチは迅速でスケーラブル、信頼性があります。
構造化データ、財務諸表、請求書、またはビジネスレポートを扱う際、報告ツールを使用することがしばしば最適な選択肢です。 これらのツールは、組み込みのレポートデザイナー、データベース統合、フォーマット制御を提供し、最小限のコーディングでエンタープライズグレードのPDFを生成するのに理想的です。
✅ 最適な対象:
C#統合によるドラッグアンドドロップレポートデザインを好むユーザー。
おすすめ:
📌 SQL Server ReportViewer – .NETアプリケーション向けのネイティブMicrosoftレポート機能。
📌 FastReport – 強力なスタンドアロンのレポートツール。
📌 ActiveReports.NETインタラクティブで詳細なレポートの作成に最適です。
📌 Syncfusion PDF – エンタープライズレポートのための強力な選択肢。
🚀 なぜこれを選ぶのか? 業務報告書、構造化データ、財務諸表を扱う場合、レポートツールは時間を節約し、一貫性を確保し、データベースとシームレスに統合します。
PDFをマージ、分割、暗号化、注釈、または操作する必要がありますか? 編集および処理ライブラリは、既存のPDFと連携するように構築されており、プログラムによってテキストを抽出したり、コンテンツを変更したり、セキュリティ機能を追加したりすることができます。
✅ 最適な対象:
大量のPDF文書の結合、分割、または変更。
おすすめ:
📌 PdfTron – 高性能なライブラリで、幅広いPDF処理機能を備えています。
📌 DynamicPDF – 既存のPDFや自動化タスクに最適です。
📌 Aspose.PDF – PDFの修正やデータ抽出のための包括的なツール。
🚀 これを選ぶ理由 あなたのプロジェクトが既存のPDFの操作を含む場合、これらのライブラリは文書を簡単に編集し、保護し、強化するための強力なツールを提供します。
このガイドを締めくくるにあたり、C#でPDFを生成するための万能な解決策は存在しないことが明らかです。 あなたの選択は、低レベルのPDF生成、ウェブベースの文書変換、構造化ビジネスレポート、または既存のPDFの修正など、プロジェクトの特定のニーズに完全に依存します。
朗報は? C#はさまざまなユースケースに合わせて調整された強力なライブラリの幅広い選択肢を提供します。
今日、適切なツールを選ぶだけでなく、将来的にプロジェクトがどのように進化するかも考慮してください。
🚀 まだ決めていませんか? さまざまなライブラリを試して、どれがあなたのワークフローに最適か確認してみてください。多くのツールは、試用版やオープンソース版を提供していますので、ぜひ探索してみてください。
💡 レポートをエクスポートするウェブアプリを作成していますか? 高速なHTMLからPDFへの変換にはIronPDFをお試しください。
📌 完全なC#コントロールが必要ですか? コードファーストのPDF生成にはQuestPDFまたはiTextSharpをお試しください。
📊 ビジネスレポートを生成していますか? FastReport と Syncfusion を比較して、最適なものを見つけましょう。
結局のところ、最適なPDF生成アプローチはあなたのユニークなプロジェクトのニーズに合ったものです。 このガイドが選択肢を明確にし、意思決定を容易にする一助となったことを願っています。
どのアプローチを検討していますか? あなたのプロジェクトで最も効果的だったことを教えてください。! 🚀**
10 の .NET API 製品 オフィス文書用