製品比較

PDFsharp vs QuestPDF(C# PDFライブラリ詳細比較)

ジョルディ・バルディア
ジョルディ・バルディア
2025年2月26日
共有:

.NETでPDFドキュメントを扱う際、開発者はプロジェクトの要件に最も適したライブラリを決定するために、さまざまなライブラリを比較することがよくあります。 .NET エコシステムで人気のある3つの選択肢はPDFsharp, クエストPDF、およびIronPDF. 各ライブラリは異なるユースケースに対応しており、それぞれ異なる強みと弱みを持っています。 この記事では、これらのライブラリの詳細な比較と、基本的なPDF生成の処理方法について説明します。このURLあなたが賢明な決定を下すのを助けるために。

PDFsharpとは何ですか?

PDFsharpは、PDFドキュメントの作成、編集、およびレンダリングを行うために設計されたオープンソースのライブラリです。 シンプルさと基本的なPDF機能に重点を置いたPDFsharpは、直感的なPDF操作機能を求める開発者にとって信頼性の高いツールとなっています。

PDFsharpの主な機能

  • PDF作成と編集:新しいPDFを生成したり、既存のPDFを修正したりします。
  • グラフィックス描画: 図形、テキスト、画像の描画サポートを含みます。
  • オープンソース:MITライセンスの下で提供されており、利用および改変が自由に行えます。

インストール

NuGetパッケージマネージャーを使用することで、PDFsharpをプロジェクトに簡単にインストールできます。次の行をNuGetパッケージマネージャーコンソールで実行してください。

Install-Package PDFsharp
Install-Package PDFsharp

PDFsharp コード例

では、PDFsharp が指定された URL から新しい PDF ドキュメントを作成する方法を見てみましょう。 PDFsharp だけでは HTML や URL から PDF への変換を処理できないため、HtmlRenderer.PdfSharp のようなウェブレンダリングエンジンを統合する必要があります。さらに、指定された URL から HTML コンテンツを取得するために HttpClient を使用する必要があります。

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;
public class Program
{
    static async System.Threading.Tasks.Task Main(string[] args)
    {
        // Ensure proper encoding support
        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
        string url = "https://www.apple.com";
        // Fetch HTML content from the URL
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = await client.GetStringAsync(url);
            // Generate PDF from the fetched HTML content
            var pdf = PdfGenerator.GeneratePdf(htmlContent, PdfSharp.PageSize.A4);
            pdf.Save("output.pdf");
            Console.WriteLine("PDF created successfully as 'output.pdf'.");
        }
    }
}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using PdfSharp.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;
public class Program
{
    static async System.Threading.Tasks.Task Main(string[] args)
    {
        // Ensure proper encoding support
        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
        string url = "https://www.apple.com";
        // Fetch HTML content from the URL
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = await client.GetStringAsync(url);
            // Generate PDF from the fetched HTML content
            var pdf = PdfGenerator.GeneratePdf(htmlContent, PdfSharp.PageSize.A4);
            pdf.Save("output.pdf");
            Console.WriteLine("PDF created successfully as 'output.pdf'.");
        }
    }
}

PDFファイル出力

PDFsharp 対 QuestPDF (C# PDF ライブラリ詳細比較): 図 1

ご覧の通り、PDFsharpはHTMLコンテンツやウェブページをPDFファイルに変換するために使用できますが、追加のライブラリの助けが必要であり、オリジナルのウェブサイトに見られるCSSやフォーマットを保持することはできません。優れた無料のPDF開発者用ライブラリですが、IronPDFのような有料ライブラリに見られる高度な機能がいくつか欠けています。

QuestPDFとは何ですか?

QuestPDFは、流暢なAPIを使用して視覚的に魅力的なPDFを生成することに特化した、最新のオープンソースライブラリです。 その革新的な文書レイアウトとレンダリングのアプローチは、動的で複雑なデザインを必要とするアプリケーションにとって強力な競争相手となっています。

QuestPDFの主な機能

  • Fluent API: ドキュメントのレイアウトを定義する宣言型のアプローチを提供します。
  • モダンレイアウトシステム: CSSに触発され、グリッド、コンポーネント、柔軟なレイアウト構造をサポートします。 これらのスタイリングオプションを使用してPDFファイルを操作します。
  • 高性能: 大きくて複雑なドキュメントを迅速にレンダリングするよう最適化されています。

インストール

このライブラリがNuGetパッケージとして利用可能であることにより、インストールは非常に簡単なプロセスとなっています。NuGetコンソールで1行を実行するだけでインストールできます。

Install-Package QuestPDF
Install-Package QuestPDF

QuestPDF コード例

次に、QuestPDFが例のURLをPDF形式に変換する方法について見ていきましょう。 QuestPDFはネイティブでURLからPDFへの変換をサポートしていませんが、HTTPクライアントを使用してHTMLコンテンツを取得し、QuestPDFの流暢なAPIを使用してPDFにレンダリングできます。

using System;
using System.Net.Http;
using System.Threading.Tasks;
using HtmlAgilityPack;
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
public class Program
{
    static async System.Threading.Tasks.Task Main(string[] args)
    {
        QuestPDF.Settings.License = LicenseType.Community;
        string url = "https://www.apple.com";
        // Fetch HTML content from the URL
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = await client.GetStringAsync(url);
            // Parse the HTML content using HtmlAgilityPack
            var htmlDoc = new HtmlDocument();
            htmlDoc.LoadHtml(htmlContent);
            // Extract meaningful content (e.g., text inside <body>)
            var bodyContent = htmlDoc.DocumentNode.SelectSingleNode("//body")?.InnerText ?? "No content found";
            // Generate PDF using QuestPDF
            Document.Create(container =>
            {
                container.Page(page =>
                {
                    page.Size(PageSizes.A4);
                    page.Margin(20);
                    page.Content().Text(bodyContent);
                });
            }).GeneratePdf("output.pdf");
            Console.WriteLine("PDF created successfully as 'output.pdf'.");
        }
    }
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
using HtmlAgilityPack;
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
public class Program
{
    static async System.Threading.Tasks.Task Main(string[] args)
    {
        QuestPDF.Settings.License = LicenseType.Community;
        string url = "https://www.apple.com";
        // Fetch HTML content from the URL
        using (HttpClient client = new HttpClient())
        {
            string htmlContent = await client.GetStringAsync(url);
            // Parse the HTML content using HtmlAgilityPack
            var htmlDoc = new HtmlDocument();
            htmlDoc.LoadHtml(htmlContent);
            // Extract meaningful content (e.g., text inside <body>)
            var bodyContent = htmlDoc.DocumentNode.SelectSingleNode("//body")?.InnerText ?? "No content found";
            // Generate PDF using QuestPDF
            Document.Create(container =>
            {
                container.Page(page =>
                {
                    page.Size(PageSizes.A4);
                    page.Margin(20);
                    page.Content().Text(bodyContent);
                });
            }).GeneratePdf("output.pdf");
            Console.WriteLine("PDF created successfully as 'output.pdf'.");
        }
    }
}

PDFファイルを出力

PDFsharp対QuestPDF (C# PDFライブラリ詳細比較): 図2

PDFSharpと同様に、QuestPDFはHtmlAgilityPackのような外部ライブラリの助けを借りてHTMLコンテンツをPDFに変換することができますが、CSSのスタイリングやフォーマットを保持することができません。 QuestPDFは、ゼロからPDFドキュメントを作成したい人にとっては素晴らしい選択肢ですが、このライブラリの強みはHTMLからPDFへの変換ではありません。

IronPDF: 強力なPDFライブラリ

IronPDFは、.NET開発者向けに設計された高度で包括的なPDF機能を提供する堅牢なPDFライブラリです。 HTML-to-PDFレンダリングに重点を置き、PDF文書の操作、暗号化、PDF/A準拠のための高度なオプションなどの追加機能を組み合わせることで、エンタープライズグレードのアプリケーションにとって強力な選択肢となります。

IronPDFの主な機能

  • HTMLからPDF: フルウェブページを簡単にレンダリングするかHTML文字列PDFとして。
  • PDF/A準拠: 長期にわたって遵守するドキュメントを生成するアーカイブ基準.
  • 高度なセキュリティ: 暗号化をサポートパスワード保護、およびデジタル署名.
  • PDFの編集: 既存のPDFファイルを変更、結合、分割します。
  • クロスプラットフォーム: .NET Framework、.NET Core、.NET 5+ に完全対応。

インストール

IronPDFをインストールするには、Visual StudioのNuGetパッケージマネージャーを使用します。

NuGetパッケージマネージャーの使用

  1. Visual Studioでプロジェクトを開きます。

  2. ソリューションエクスプローラーでプロジェクトを右クリックし、「NuGet パッケージの管理」を選択します。

  3. 「IronPDF」を検索して「インストール」をクリックします。

    PDFsharp 対 QuestPDF(C# PDF ライブラリ詳細比較):図3

    NuGet パッケージ マネージャー コンソールの使用:

Install-Package IronPdf
Install-Package IronPdf

例: IronPDF を使用して URL を PDF に変換

IronPDFは、変換のためのシンプルで直接的なAPIを提供します。PDFへのURL. Here's an example: 例があります。

using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
pdf.SaveAs("url.pdf");
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");
pdf.SaveAs("url.pdf");

PDFファイル出力

PDFsharp 対 QuestPDF (C# PDF ライブラリ詳細比較): 図 4

上記のコード例は、IronPDF がどのようにわずか数行のコードで URL コンテンツを PDF に簡単に変換できるかを示しています。 ご覧の通り、HTMLだけでなく、CSSのスタイリングやレイアウトも変換されており、出力されるPDFが元のフォーマットに忠実であることを保証しています。 の使用を通じてChromePdfRenderer レンダリングエンジンIronPDF は、変換プロセスでコンテンツの元の品質を全く失わないピクセルパーフェクトなPDFドキュメントを生成します。

ここで見られるように、IronPDF は HTML から PDF への変換、および他のドキュメントタイプから PDF への変換において強力な選択肢です。 それは、高品質な変換ジョブを簡潔で実装しやすいコードブロックで処理します。

詳細分析

使いやすさ

PDFsharpはシンプルで使いやすく、初心者や基本的なPDFニーズを持つ開発者にとって優れた選択肢です。 その手続き型アプローチにより、PDFにテキスト、図形、画像を追加するようなタスクの迅速なセットアップと実装が可能です。 しかし、HTMLやURLからPDFへの変換作業を処理するためには、外部ライブラリが必要です。

一方、QuestPDFは流暢なAPIを提供するより現代的なアプローチを採用しています。 ウェブやUIデザインの経験を持つ開発者には直感的ですが、新参者はレイアウト中心のデザイン哲学に慣れるまで若干の学習曲線に直面するかもしれません。 しかし、再びHTMLからPDFへの変換を処理するための組み込みツールが欠けています。

IronPDFは、HTMLからPDFへの変換と高度なPDF機能に関して、最も簡単な体験を提供します。 直感的なAPIは、実装の時間を短縮し、堅牢なドキュメントと例を提供します。 IronPDFは、多種多様なドキュメントタイプをPDFに変換することができ、この記事で見たURLからPDFへの変換例のように、ドキュメントの品質を損なうことなく行えます。

パフォーマンス

パフォーマンスは特にPDFを動的に生成する必要があるアプリケーションにとって重要な要素です。 PDFsharpは小規模で単純なドキュメントには適していますが、大規模または複雑なレイアウトには苦労します。

QuestPDFは、動的で視覚的に魅力的なドキュメントのレンダリングで優れています。 それは、高効率で構造化されたレイアウトを扱うように最適化されています。

IronPDFは、特にHTMLレンダリング、CSS、およびJavaScriptのサポートを必要とするアプリケーションにおいて、パフォーマンスと機能性を非常にうまくバランスさせています。 また、エンタープライズ向けのPDFタスクを簡単に処理する高い能力を持っています。

比較概要

  • PDFsharp は、基本的なPDFの作成および編集作業に最適な軽量でオープンソースのライブラリです。 小規模なプロジェクトには理想的ですが、最新のレイアウトや高度な機能のサポートが不足しています。
  • QuestPDF は、その流暢なAPIを使用して、動的で複雑かつ視覚的に魅力的なPDFを生成する際に優れています。 しかし、それはPDFの生成にのみ特化しており、既存のドキュメントの編集はサポートしていません。
  • IronPDFは、HTMLからPDFへの変換機能、OCR、および高度なセキュリティオプションを含む、最も包括的な機能セットを提供します。 商業ライセンスが必要ですが、その機能は企業およびプロフェッショナルなアプリケーションにおいて最も選ばれる理由となっています。

結論

.NETプロジェクトに適したPDFライブラリを選ぶには、あなたの具体的な要件に依存します。 基本的なPDFタスクのための軽量でオープンソースのツールが必要な場合は、PDFsharpは堅実な選択肢です。 動的で視覚的に魅力的なドキュメントを作成するために、クエストPDFは、その現代的なアプローチで際立っています。

しかし、高度な機能、シームレスなHTMLからPDFへの変換、エンタープライズグレードの機能が必要な場合、IronPDF提供しなければならない。

各ライブラリの長所と限界を理解することで、プロジェクトのニーズに合った賢明な決定を下すことができます。

ジョルディ・バルディア
ソフトウェアエンジニア
ジョルディは、Iron Softwareでのスキルを活かしていないときには、ゲームプログラミングをしており、Python、C#、C++に最も堪能です。彼は製品テスト、製品開発、研究の責任を共有しており、継続的な製品改善に大きな価値をもたらしています。この多様な経験は彼を常に挑戦的で魅力的に保ち、彼はIron Softwareで働く一番好きな側面の一つだと言っています。ジョルディはフロリダ州マイアミで育ち、フロリダ大学でコンピューターサイエンスと統計学を学びました。
< 以前
PDFsharpの代替として最高のPDFから画像への変換ツールを探る
次へ >
PDFsharp PDFページにページ番号を追加 VS IronPDF(例)