フッターコンテンツにスキップ
PDF ツール

無料でPDFにパスワードをかける方法

Full Comparison

Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against QuestPDF on pricing, HTML support, and licensing.

View Full Comparison

.NET で PDF ドキュメントを操作する場合、開発者はさまざまなライブラリを比較して、どのライブラリがプロジェクト要件に最も適しているかを判断することがよくあります。 .NETエコシステムにおいて人気のある選択肢は、PDFSharpQuestPDF、およびIronPDFです。 各ライブラリはさまざまなユースケースに対応し、独自の長所と短所を備えています。 この記事では、これらのライブラリの詳細な比較と、この URLを使用して基本的な PDF 生成を処理する方法を示し、情報に基づいた決定を下せるよう支援します。

PDFSharpとは何ですか?

PDFSharpは、PDFドキュメントを作成、編集、およびレンダリングするために設計されたオープンソースライブラリです。 シンプルさと基本的なPDF機能に焦点を当てて、PDFSharpは直接的なPDF操作能力を持つ開発者にとって信頼できるツールとなっています。

PDFSharpの主な機能

  • PDF の作成と編集:新しい PDF を生成したり、既存の PDF を変更します。 *グラフィック描画:*図形、テキスト、画像の描画をサポートします。 オープンソース:** MIT ライセンスに基づいているため、自由に使用および変更できます。

インストール

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

Install-Package PDFsharp

PDFSharpコード例

次に、PDFSharpが指定されたURLから新しいPDFドキュメントをどのように処理するかを見てみましょう。 PDFSharpは単独ではHTMLやURLをPDFに変換できないため、HtmlRenderer.PdfSharpのようなWebレンダリングエンジンを統合する必要があります。さらに、HttpClientを使用して指定されたURLからHTMLコンテンツを取得します。

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 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 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'.");
        }
    }
}
Imports System
Imports System.Net.Http
Imports System.Text
Imports System.Threading.Tasks
Imports PdfSharp.Pdf
Imports TheArtOfDev.HtmlRenderer.PdfSharp

Public Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		' Ensure proper encoding support
		Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)

		Dim url As String = "https://www.apple.com"

		' Fetch HTML content from the URL
		Using client As New HttpClient()
			Dim htmlContent As String = Await client.GetStringAsync(url)

			' Generate PDF from the fetched HTML content
			Dim pdf = PdfGenerator.GeneratePdf(htmlContent, PdfSharp.PageSize.A4)
			pdf.Save("output.pdf")

			Console.WriteLine("PDF created successfully as 'output.pdf'.")
		End Using
	End Function
End Class
$vbLabelText   $csharpLabel

出力PDFファイル

PDFSharp例の出力

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

QuestPDF とは何ですか?

QuestPDF は、流暢な API を使用して視覚的に魅力的な PDF を生成することに重点を置いた、最新のオープンソース ライブラリです。 ドキュメントのレイアウトとレンダリングに対する革新的なアプローチにより、動的で複雑なデザインを必要とするアプリケーションにとって強力な候補となります。

QuestPDFの主な機能

  • Fluent API:ドキュメントのレイアウトを定義するための宣言的なアプローチを提供します。 *最新のレイアウト システム:* CSS にヒントを得て、グリッド、コンポーネント、柔軟なレイアウト構造をサポートします。 高性能:**大規模で複雑なドキュメントを迅速にレンダリングするように最適化されています。

インストール

このライブラリは NuGet パッケージとしてインストールできるため、インストールは簡単なプロセスで、NuGet コンソール内で 1 行だけ実行する必要があります。

Install-Package QuestPDF

QuestPDF コード例

ここで、QuestPDF がサンプル URL を PDF 形式に変換する方法を見てみましょう。 QuestPDF は URL から PDF への変換をネイティブにサポートしていませんが、HTTP クライアントを使用して HTML コンテンツを取得し、QuestPDF の Fluent 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 Task Main(string[] args)
    {
        // Configure QuestPDF to use the community license
        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 Task Main(string[] args)
    {
        // Configure QuestPDF to use the community license
        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'.");
        }
    }
}
Imports System
Imports System.Net.Http
Imports System.Threading.Tasks
Imports HtmlAgilityPack
Imports QuestPDF.Fluent
Imports QuestPDF.Helpers
Imports QuestPDF.Infrastructure

Public Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		' Configure QuestPDF to use the community license
		QuestPDF.Settings.License = LicenseType.Community

		Dim url As String = "https://www.apple.com"

		' Fetch HTML content from the URL
		Using client As New HttpClient()
			Dim htmlContent As String = Await client.GetStringAsync(url)

			' Parse the HTML content using HtmlAgilityPack
			Dim htmlDoc = New HtmlDocument()
			htmlDoc.LoadHtml(htmlContent)

			' Extract meaningful content (e.g., text inside <body>)
			Dim bodyContent = If(htmlDoc.DocumentNode.SelectSingleNode("//body")?.InnerText, "No content found")

			' Generate PDF using QuestPDF
			Document.Create(Sub(container)
				container.Page(Sub(page)
					page.Size(PageSizes.A4)
					page.Margin(20)
					page.Content().Text(bodyContent)
				End Sub)
			End Sub).GeneratePdf("output.pdf")

			Console.WriteLine("PDF created successfully as 'output.pdf'.")
		End Using
	End Function
End Class
$vbLabelText   $csharpLabel

出力PDFファイル

QuestPDFの例の出力

PDFSharp と同様に、QuestPDF は HtmlAgilityPack などの外部ライブラリを利用して HTML コンテンツを PDF に変換できますが、CSS のスタイル設定や書式を維持することはできません。 QuestPDF は、PDF ドキュメントを最初から作成したい人にとっては最適な選択肢ですが、HTML から PDF への変換はこのライブラリの強みではありません。

IronPDF: 強力なPDFライブラリ

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

IronPDFの主な機能

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

インストール

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

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

  1. Visual Studioでプロジェクトを開きます。
  2. ソリューションエクスプローラでプロジェクトを右クリックし、"NuGetパッケージの管理"を選択します。
  3. "IronPDF"を検索し、"インストール"をクリックします。

IronPDFのインストールビジュアル

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

Install-Package IronPdf

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

IronPDF は、URL を PDF に変換するためのシンプルで直接的な API を提供します。 以下は例です:

using IronPdf;

public class PdfConverter
{
    public static void Main(string[] args)
    {
        // Create a renderer with IronPdf
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render the URL as a PDF
        PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");

        // Save the PDF
        pdf.SaveAs("url.pdf");
    }
}
using IronPdf;

public class PdfConverter
{
    public static void Main(string[] args)
    {
        // Create a renderer with IronPdf
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render the URL as a PDF
        PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");

        // Save the PDF
        pdf.SaveAs("url.pdf");
    }
}
Imports IronPdf

Public Class PdfConverter
	Public Shared Sub Main(ByVal args() As String)
		' Create a renderer with IronPdf
		Dim renderer As New ChromePdfRenderer()

		' Render the URL as a PDF
		Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://www.apple.com")

		' Save the PDF
		pdf.SaveAs("url.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

出力PDFファイル

IronPDFの例の出力

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

ここからわかるように、IronPDF は HTML から PDF への変換だけでなく、他の種類のドキュメントから PDF への変換にも最適な選択肢です。 簡潔で実装しやすいコード ブロックで高品質の変換ジョブを処理します。

詳細な分析

使いやすさ

PDFSharpはシンプルで使いやすく、初心者や基本的なPDFニーズの開発者にとって優れた選択肢です。 手順型のアプローチにより、PDF にテキスト、図形、画像を追加するなどのタスクをすばやくセットアップして実装できます。 ただし、HTML および URL から PDF への変換タスクを処理するには、外部ライブラリが必要です。

一方、QuestPDF は、流暢な API を備えたより現代的なアプローチを提供します。 Web または UI デザインの経験がある開発者にとっては直感的に理解できるでしょうが、初心者にとってはレイアウト中心の設計哲学に慣れるまでに多少の学習曲線に直面する可能性があります。 繰り返しになりますが、HTML から PDF への変換を処理する組み込みツールがありません。

IronPDF は、HTML から PDF への変換と高度な PDF 機能の最も簡単なエクスペリエンスを提供します。 直感的な API により実装時間が短縮され、強力なドキュメントと例が提供されます。 IronPDF は、この記事で紹介した URL から PDF への例など、さまざまな種類のドキュメントを PDF に変換でき、ドキュメントの品質を損なうことなく変換できます。

パフォーマンス

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

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

IronPDF は、特に HTML レンダリング、CSS、JavaScript サポートを必要とするアプリケーションにおいて、パフォーマンスと機能性のバランスが非常に優れています。 また、エンタープライズ グレードの PDF タスクを簡単に処理できる優れた機能も備えています。

比較の要約

  • PDFSharpは基本的なPDF作成と編集タスクに最適な軽量のオープンソースライブラリです。 小規模なプロジェクトには最適ですが、最新のレイアウトや高度な機能はサポートされていません。
  • QuestPDF は、流暢な API を使用して、動的で複雑、かつ視覚的に魅力的な PDF を生成することに優れています。 ただし、PDF 生成のみに焦点を当てており、既存のドキュメントの編集はサポートされていません。
  • IronPDF は、組み込みの HTML から PDF への変換、OCR、高度なセキュリティ オプションなど、最も包括的な機能セットを提供します。 商用ライセンスが必要ですが、その機能性により、エンタープライズおよびプロフェッショナル アプリケーションに最適です。

結論

.NET プロジェクトに適した PDF ライブラリの選択は、特定の要件によって異なります。 基本的なPDFタスクのための軽量でオープンソースのツールが必要な場合、PDFSharpは堅実な選択です。 ダイナミックで視覚的に魅力的なドキュメントを作成するには、 QuestPDF の現代的なアプローチが際立っています。

ただし、高度な機能、HTML から PDF へのシームレスな変換、エンタープライズ グレードの機能が必要な場合は、 IronPDFが提供する機能を確認してください。

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

ご注意PDFSharpとQuestPDFはそれぞれの所有者の登録商標です。 このサイトはPDFSharpまたはQuestPDFが提携、承認、または支援を行っていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

よくある質問

PDFsharp、QuestPDF、およびIronPDFの違いは何ですか?

PDFsharpはそのシンプルさと基本的なPDF機能で知られており、基本的なタスクに適しています。QuestPDFは視覚的に魅力的なドキュメント用のモダンなAPIを提供しますが、ネイティブのHTML変換が欠けています。IronPDFはHTMLからPDFへのレンダリングと高度な操作に優れており、企業向けアプリケーションに理想的です。

HTMLを.NETでPDFにレンダリングするにはどうすればよいですか?

IronPDFを使用して、HTMLを.NETでPDFにレンダリングできます。完全なCSSとJavaScriptをサポートしており、高品質のドキュメント変換が可能です。

なぜ私のプロジェクトに対してQuestPDFを選ぶかもしれませんか?

QuestPDFは、動的で視覚的に複雑なPDFドキュメントが必要なプロジェクトに最適です。流暢なAPIによりフレキシブルなレイアウトを可能にしますが、ネイティブのHTMLからPDFへの変換のサポートがありません。

PDFsharpの使用にはどのような制限がありますか?

PDFsharpは、HTMLからPDFへの変換をネイティブにサポートしていないという制限があります。基本的なPDFの作成と編集タスクに最適です。

IronPDFはどのように高度なPDF操作をサポートしていますか?

IronPDFは、PDFの編集、暗号化、PDF/Aの準拠のサポートなどの高度な機能を提供します。堅牢なPDFハンドリングを必要とする企業向けグレードのアプリケーション向けに設計されています。

PDFsharpで視覚的に魅力的なPDFを作成できますか?

PDFsharpは基本的なPDF作成および編集機能を提供しますが、視覚的に複雑なドキュメントに適したQuestPDFやIronPDFに見られる高度なレイアウトやデザイン機能はありません。

これらのPDFライブラリのインストール手順は何ですか?

3つすべてのライブラリはVisual StudioのNuGetパッケージマネージャー経由でインストールできます。NuGetパッケージマネージャーコンソールでコマンドInstall-Package [LibraryName]を使用し、[LibraryName]をPDFsharp、QuestPDF、またはIronPDFに置き換えてください。

IronPDFの使用には費用がかかりますか?

はい、IronPDFには商用ライセンスが必要で、企業レベルのアプリケーションに適した包括的なサポートと高度な機能を提供します。

Curtis Chau
テクニカルライター

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

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

QuestPDF Logo

高額な更新や古い製品アップデートに疲れましたか?

QuestPDFからの簡単な切り替えを、当社のエンジニアリング移行サポートとより良い取引で実現してください。

IronPDF Logo

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね