IRONSOFTWAREHOME
PDF ツール

MacとWindowsでWebページをPDFファイルとして保存する方法

Curtis Chau
Curtis Chau
Updated: 2026年9月4日

IronPDFは、Chromeベースのレンダリングエンジンを使用したその直感的なAPIとHTMLからPDFへの変換によって、C#での完全なPDF表示機能を提供し、PDFSharpはテキスト抽出や表示タスクのために大幅に複雑なコードを必要とする基本的なオープンソースPDF操作を提供します。

ソフトウェア開発では、さまざまな形式のデータを処理することが非常に重要です。 PDF (Portable Document Format) は、ドキュメント共有に広く使用されている標準です。 C# プログラミングでは、プロフェッショナルなドキュメントの作成やデジタル コンテンツの管理には PDF の表示が不可欠です。 IronPDFライブラリは、 PDF の生成と操作のための完全なツールを提供します。

C# は汎用性が高いため、さまざまなドメインにわたるアプリケーションの開発に人気があります。 PDF は、プラットフォーム間でのドキュメントの整合性と一貫した表示を保証します。 PDF 表示機能をアプリケーションに統合すると、ユーザー エクスペリエンスが向上し、ワークフローが簡素化され、ドキュメント処理の効率的なソリューションが提供できるようになります。 スキャンしたドキュメントからのテキスト認識を必要とするアプリケーションの場合、補完的な OCR ソリューションにより PDF 処理機能が向上します。 IronPDF のドキュメントには完全な実装ガイドが記載されています。 安全なドキュメントを扱う場合、適切な PDF 処理が重要になります。

この記事では、C#を使用したPDFの表示について説明し、PDFSharpとIronPDFという2つのライブラリを紹介し、それらのインストールと使用方法を説明します。 これらのPDF 生成ソリューションの選択に影響するアーキテクチャの違い、コードの複雑さ、メンテナンスの考慮事項について説明します。 ドキュメントのセキュリティが必要な環境では、これらの違いを理解することが重要です。 IronPDFデモでは実際の実装が示され、 API リファレンスでは詳細な仕様が提供されます。

PDFSharpとは何か、そしてPDF表示をどのように処理するのか?

PDFSharpは、C#のためのオープンソースライブラリであり、開発者にPDF操作のためのツールキットを提供します。 IronPDFのChromeベースレンダリングエンジンとは異なり、PDFSharpは低レベルの描画モデルで動作し、PDFプリミティブに直接的なコントロールを提供します。 このライブラリを使用すると、 PDF ドキュメント構造にアクセスして操作することができます。 IronPDFの完全な機能と比較して、PDFSharpでは共通のタスクに対して大幅に多くの手動コーディングが必要です。

PDFSharpのアーキテクチャはドキュメントオブジェクトモデルアプローチに従い、直接PDFオブジェクトと作業します。 これは、ドキュメント生成に Web テクノロジを使用するIronPDF の HTML から PDF への変換アプローチとは異なります。 空のPDFの作成と描画操作に優れているが、ヘッダやフッタの追加や画像の埋め込みのようなタスクにはより多くのコードが必要です。 JavaScriptレンダリング、レスポンシブCSSサポート、ウェブフォント統合のような高度な機能はPDFSharpには利用できません。

Visual StudioにPDFSharpをインストールするには?

IronPDFのインストールプロセスと同様に、PDFSharpはNuGetを使用してインストールできます。 次のコマンドを実行してください:

PM > Install-Package PdfSharp

このコマンドは、プロジェクトで使用するためのPDFSharpライブラリをインストールします。 IronPDFの高度なインストールオプションとは異なり、PDFSharpにはDockerコンテナやLinuxデプロイメントに対する組み込みサポートがありません。 クイックスタート ガイドには、 IronPDFの追加のセットアップ手順が記載されています。

PDFSharpのシステム要件は何ですか?

PDFSharpは古い.NET Frameworkバージョンを対象としており、新しい.NETバージョンやクラウド環境での互換性問題が発生する可能性があります。 IronPDF の自動プラットフォーム検出とは異なり、ライブラリではクロスプラットフォーム展開のために手動構成が必要です。 メモリ使用パターンが異なり、PDFSharpは複雑な操作でより多くのリソースを消費する可能性があります。 高パフォーマンスのシナリオでは、これらの違いが顕著になります。 IronPDFのパフォーマンスガイドには、PDFSharpにはない最適化戦略が提供されています。

なぜPDFSharpのアーキテクチャはパフォーマンスに影響を与えるのか?

PDFSharpの低レベルアーキテクチャは、PDFオブジェクト操作を通じてパフォーマンスに影響を与え、多くのCPUサイクルを必要とします。 このライブラリには、バッチ処理、並列操作、または非同期ワークフローに対する最適化が欠けています。 複雑なドキュメントでは、オペレーターによる手動解析によりテキスト抽出のパフォーマンスが低下します。 IronPDF の Chrome ベースのエンジンはブラウザ最適化技術を使用しているため、レンダリングが高速化し、メモリ効率が向上します。 非同期操作の場合、IronPDF のアーキテクチャは大きな利点を提供します。

PDF 表示にIronPDF が最適な選択肢となる理由は何ですか?

IronPDFは、PDF 操作を簡単に処理できる機能豊富なライブラリです。 シンプルさと汎用性を考慮して設計されたIronPDFを使用すると、アプリケーション内でPDF ドキュメントを作成、編集、および読み取ることができます。 IronPDF は、基本的な機能の他に、 HTML から PDF への変換、さまざまな画像形式のサポート、 PDF 操作の効率的な処理などの高度な機能を提供します。 このライブラリは、 PDF レポートの生成とさまざまなファイル形式の変換に優れています。

IronPDF のアーキテクチャ基盤ではChrome レンダリング エンジンが使用され、Web コンテンツのピクセル単位の完璧なレンダリングが保証されます。 このアプローチにより、フォントの管理、 JavaScriptの処理、 UTF-8 文字のサポートなどの一般的なタスクが簡素化されます。 このライブラリは、線形化、 PDF 圧縮、デジタル署名、注釈をサポートしています。

IronPDF は、メタデータ抽出と非同期操作をサポートしながら PDF を処理し、データをフォーマットします。 Blazorアプリケーションの場合、 IronPDF はスムーズな統合を提供します。

プロジェクトにIronPDFをインストールするにはどうすればよいですか?

NuGetパッケージ マネージャーまたはパッケージ マネージャー コンソールを使用してIronPDFをインストールします。

PM > Install-Package IronPdf

このコマンドは、 IronPDFとその依存関係をインストールします。 Docker デプロイメントまたはLinux 環境の場合、追加のパッケージが必要になる場合があります。 クイックスタート ガイドにセットアップ手順が記載されています。

IronPDF の API 設計が優れている点は何ですか?

IronPDF の API は、流暢なインターフェースと非同期サポートを備えた最新 for .NETパターンに従います。 ライブラリは直感的なメソッド名と完全なIntelliSenseドキュメントを提供します。 エラー メッセージは実用的な解決策を提供し、開発を加速します。 API リファレンスには完全なメソッドの詳細が記載されています。

IronPDF の Chrome レンダリング エンジンはいつ使用すればよいですか?

レスポンシブ HTML レイアウトの変換、 JavaScriptコンテンツのレンダリング、最新の CSS デザインの処理には、IronPDF の Chrome エンジンを使用します。 エンジンは、Web フォント、SVG グラフィック、Canvas 要素を自動的に処理します。 HTML テンプレートから請求書を生成したり、視覚化されたレポートを作成したりするのに最適です。 WebGL コンテンツをレンダリングするために、エンジンは GPU アクセラレーションを提供します。

PDFSharpを使用してPDFコンテンツを表示するにはどうすればよいですか?

このセクションでは、PDFSharpを使用してPDFファイルを表示する方法を示します。PDFSharpでのテキスト抽出はその低レベルの性質上複雑であり、IronPDFの簡単なメソッドとは異なります。

using System;
using System.Text;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Pdf.Content;
using PdfSharp.Pdf.Content.Objects;

class Program
{
    static void Main()
    {
        // Specify the path to the PDF file
        string pdfFilePath = "output.pdf";

        // Open the PDF document in import mode
        // Note: PDFsharp requires specific open modes for different operations
        PdfDocument document = PdfReader.Open(pdfFilePath, PdfDocumentOpenMode.Import);

        // Create StringBuilder for extracted text
        // This approach is less efficient than IronPDF's built-in methods
        StringBuilder extractedText = new StringBuilder();

        // Iterate through each page of the document
        for (int pageIndex = 0; pageIndex < document.PageCount; pageIndex++)
        {
            // Get the current page
            PdfPage page = document.Pages[pageIndex];
            
            // Extract text using content reader (simplified approach)
            // Real implementation requires extensive operator parsing
            CObject content = ContentReader.ReadContent(page);
            
            // Parse content objects to extract text
            // This is where PDFsharp becomes significantly complex
            ExtractText(content, extractedText);
            
            // Note: Actual text extraction requires parsing operators
            // This is a simplified representation
            Console.WriteLine($"Page {pageIndex + 1} processed");
        }

        Console.WriteLine("Extracted Text: " + extractedText.ToString());
        Console.ReadLine(); // Wait for user input before closing the console
    }
    
    static void ExtractText(CObject content, StringBuilder text)
    {
        // PDFsharp requires manual parsing of content streams
        // This is significantly more complex than shown here
        // Real implementation would need to handle:
        // - Text operators (Tj, TJ, ', ", etc.)
        // - Font encoding and character mapping
        // - Text positioning and transformation matrices
        // - Unicode mapping and glyph substitution
        // - Whitespace detection and word boundaries
        
        if (content is CArray array)
        {
            foreach (var item in array)
            {
                ExtractText(item, text);
            }
        }
        else if (content is CString str)
        {
            // Simplified text extraction - real implementation needs encoding handling
            text.Append(str.Value);
        }
        // Additional operators would need handling for complete extraction
    }
}

このコードは、PDFSharpを使用してPDFファイルからテキストを読み取り、抽出します。プログラムはインポートモードで"output.pdf"を開き、ページを反復してコンテンツを抽出します。 IronPDF の簡単な APIとは異なり、このアプローチでは PDF の内部を理解している必要があります。 IronPDF のテキスト抽出の例では、より簡単なアプローチを示しています。

Consoleウィンドウでの'Hello World'出力を伴うPDFSharpの基本的なテキスト抽出の試みを示し、PDF解析操作のための手動コーディングが必要であることを示しています

なぜPDFSharpのテキスト抽出はより複雑なのか?

PDFSharpの複雑さは低レベルのアプローチに起因します。 IronPDFのハイレベルAPIとは異なり、PDFSharpはオペレータ、エンコーディング、コンテンツストリームなど、PDFの内部を理解する必要があります。

// PDFsharp: Complex font handling and text positioning
PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);

// Must manually specify fonts and handle font embedding
XFont font = new XFont("Arial", 12, XFontStyle.Regular);

// Manual text positioning with exact coordinates
gfx.DrawString("Hello World", font, XBrushes.Black,
    new XRect(0, 0, page.Width, page.Height),
    XStringFormats.Center);

// Must handle coordinate transformations manually
gfx.TranslateTransform(100, 200);
gfx.RotateTransform(45);
gfx.DrawString("Rotated Text", font, XBrushes.Red, 0, 0);

// IronPDF: Simple HTML approach with CSS styling
var renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlAsPdf(@"
    <h1 style='text-align: center;'>Hello World</h1>
    <p style='transform: rotate(45deg); margin-left: 100px; margin-top: 200px; color: red;'>
        Rotated Text
    </p>");
    
// IronPDF automatically handles fonts, positioning, and transformations

このアーキテクチャの違いはメンテナンスに大きな影響を与えます。 PDFSharpは、ウォーターマークの追加やページの向きの管理などの一般的なタスクに対してより多くの定型コードを必要とします。

PDFSharpのPDF表示における制限とは?

PDFSharpの制限は、現代のPDF要件を処理する際に明らかになります。

  1. HTMLからPDFへの変換機能なし:HTMLを直接変換できない 2.複雑なテキスト抽出: PDF演算子の理解が必要 3.画像サポートが限られている:手動での拡大縮小と配置が必要
  2. OCRが内蔵されていない:OCR機能がない 5.高度な機能が不足している:デジタル署名やPDF/A準拠がない

PDFSharpはメモリとパフォーマンスをどのように処理するのか?

PDFSharpは全てのPDFをメモリにロードし、大きいファイルで問題を引き起こす可能性があります。 ストリーム処理は完全にはサポートされていないため、スケーラビリティが制限されます。 IronPDFの改善されたレンダリングパイプラインとは異なり、PDFSharpには組み込みキャッピング機構が欠けています。 パフォーマンス最適化ガイドには、PDFSharpでは利用できない戦略が提供されています。

IronPDFはC#でのPDF表示をどのように簡単にするのか?

IronPDFで PDF を表示するには、数行のコードだけが必要です。 ライブラリはベース URL とアセット エンコーディングを自動的に管理します。

using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Load the PDF document with error handling
        var pdf = PdfDocument.FromFile("output.pdf");

        // Extract all the text content from the PDF
        string text = pdf.ExtractAllText();

        // Print the extracted text to the console
        Console.WriteLine("Full document text:");
        Console.WriteLine(text);
        
        // Additional extraction options demonstrating IronPDF's versatility
        
        // Extract text from specific pages with formatting preserved
        string pageText = pdf.ExtractTextFromPage(0);
        Console.WriteLine($"\nPage 1 text: {pageText}");
        
        // Extract all images and save them
        var images = pdf.ExtractAllImages();
        for (int i = 0; i < images.Count; i++)
        {
            images[i].SaveAs($"extracted_image_{i}.png");
        }
        
        // Access complete metadata
        string author = pdf.MetaData.Author;
        string title = pdf.MetaData.Title;
        string subject = pdf.MetaData.Subject;
        DateTime creationDate = pdf.MetaData.CreationDate;
        
        Console.WriteLine($"\nDocument Info:");
        Console.WriteLine($"Title: {title}");
        Console.WriteLine($"Author: {author}");
        Console.WriteLine($"Created: {creationDate}");
        
        // Search for specific text
        var searchResults = pdf.Search("invoice");
        foreach (var result in searchResults)
        {
            Console.WriteLine($"Found '{result.Text}' on page {result.PageIndex}");
        }
        
        // Extract form field data
        var form = pdf.Form;
        foreach (var field in form.Fields)
        {
            Console.WriteLine($"Field: {field.Name} = {field.Value}");
        }
    }
}

このコードは、IronPDFを使用して"ExtractAllTextメソッドを使用します。 この実装は、PDFの複雑さを自動的に処理し、PDFSharpで必要な手動解析に比べて明確な利点を提供します。アプリケーションは、PDFの内部構造を理解することなく直ぐにこの機能を利用できます。 完全なチュートリアルでは追加の例が提供されます。

IronPDF consoleウィンドウで成功したテキスト抽出と'Hello World'内容およびライセンス情報を表示し、ライブラリの簡単なAPIと企業機能を示しています

IronPDF はどのような高度な PDF 表示機能を提供しますか?

IronPDF はPDF 分析のための完全なツールを提供します。

// Advanced PDF analysis with IronPDF
var pdf = PdfDocument.FromFile("complex-document.pdf");

// Extract structured content with detailed information
foreach (var page in pdf.Pages)
{
    // Get page dimensions for layout analysis
    var width = page.Width;
    var height = page.Height;
    var rotation = page.Rotation;
    
    // Extract form fields with type information
    var formFields = page.GetFormFields();
    foreach (var field in formFields)
    {
        Console.WriteLine($"Field: {field.Name}, Type: {field.Type}, Value: {field.Value}");
    }
    
    // Extract annotations with properties
    var annotations = page.GetAnnotations();
    foreach (var annotation in annotations)
    {
        Console.WriteLine($"Annotation: {annotation.Title} - {annotation.Content}");
    }
    
    // Extract hyperlinks with destinations
    var links = page.GetLinks();
    foreach (var link in links)
    {
        Console.WriteLine($"Link: {link.Text} -> {link.Url}");
    }
}

// Advanced search functionality with context
var searchResults = pdf.Search("invoice", SearchOptions.CaseInsensitive | SearchOptions.WholeWord);
foreach (var result in searchResults)
{
    Console.WriteLine($"Found on page {result.PageIndex} at position {result.Position}: {result.Text}");
    // Get surrounding text for context
    string context = pdf.ExtractTextFromPage(result.PageIndex)
        .Substring(Math.Max(0, result.Position - 50), 100);
    Console.WriteLine($"Context: ...{context}...");
}

// Extract tables as structured data
var tables = pdf.ExtractTables();
foreach (var table in tables)
{
    for (int row = 0; row < table.RowCount; row++)
    {
        for (int col = 0; col < table.ColumnCount; col++)
        {
            Console.Write($"{table[row, col]}\t");
        }
        Console.WriteLine();
    }
}

これらの機能は、フォーム処理やコンプライアンス要件を扱うエンタープライズ アプリケーションに不可欠です。 IronPDF はPDF/A 変換とPDF/UA アクセシビリティ標準をサポートしています。

PDF表示のためにIronPDFを選ぶべき時はいつか?

あなたのプロジェクトの要件に依存して、IronPDFとPDFSharpの選択が決まります。

次の場合は IronPDF を選択してください:

PDFSharpの使用を考慮すべき場合:

  • シンプルなPDF生成ツールの構築
  • 静的レイアウトの操作
  • 予算の制約により商用ライセンスが認められない

IronPDF は大規模な PDF 処理をどのように処理しますか?

IronPDF は、組み込みの最適化によりエンタープライズ規模の処理に優れています。 このライブラリは、並列処理、バッチ操作、メモリ効率の高いストリーミングをサポートしています。 非同期メソッドにより、Web アプリケーションで非ブロッキング操作が可能になります。 IronPDF の Chrome エンジンは同時リクエストを効率的に処理するため、マイクロサービスやサーバーレス機能に適しています。

どのPDFライブラリを私のC#プロジェクトに選ぶべきか?

PDFSharpとIronPDFの両方は、開発者が多用途のソリューションを求める際に機能を提供します。 PDFSharpは基本的なPDFタスクに適した軽量のツールキットを提供します。 対照的に、 IronPDFは完全な PDF 操作用に設計されています。 高度な機能により、洗練された PDF 機能を効果的に実現します。

IronPDF のクリーン アーキテクチャを示す次のコード例を検討してください。

// IronPDF: Clean, maintainable code following SOLID principles
public class InvoiceService
{
    private readonly ITemplateEngine _templateEngine;
    private readonly IConfiguration _config;
    
    public async Task<byte[]> GenerateInvoicePdf(Invoice invoice)
    {
        // Render HTML from template with full CSS support
        var html = await _templateEngine.RenderAsync("invoice.html", invoice);
        
        // Configure rendering with fluent API
        var renderer = new ChromePdfRenderer
        {
            RenderingOptions = new ChromePdfRenderOptions
            {
                MarginTop = 50,
                MarginBottom = 50,
                PaperSize = PdfPaperSize.A4,
                Title = $"Invoice #{invoice.Number}",
                // Enable JavaScript for dynamic content
                EnableJavaScript = true,
                // Wait for AJAX calls to complete
                WaitFor = WaitFor.NetworkIdle0,
                // Custom headers and footers
                HtmlHeader = "<div style='text-align: center;'>{page} of {total-pages}</div>",
                HtmlFooter = "<div style='text-align: center;'>© 2024 Your Company</div>"
            }
        };
        
        // Render with full Chrome engine support
        var pdf = await renderer.RenderHtmlAsPdfAsync(html);
        
        // Add security features
        pdf.SecuritySettings.SetPassword("user-password", "owner-password");
        pdf.SecuritySettings.AllowPrinting = true;
        pdf.SecuritySettings.AllowCopy = false;
        
        // Add digital signature for authenticity
        pdf.SignWithCertificate(certificate, "Authorized Signature");
        
        // Improve for web delivery
        pdf.CompressImages(90);
        
        return pdf.BinaryData;
    }
}

このアプローチは、既存の HTML/CSS スキルを使用し、関心の分離を維持することで明らかな利点をもたらします。 ライブラリは完全な API を通じて複雑さを管理します。

どちらのライブラリにもメリットがありますが、 IronPDF は豊富な機能とシンプルさで際立っています。 パフォーマンス ベンチマークでは、 IronPDF が大きなドキュメントを効率的に処理することが示されています。 長期的な保守性を優先するチーム向けに、 IronPDF は完全なドキュメント、専門的なサポート、広範なコード例を提供します。

IronPDFは開発用途では無料で、高度な機能の探索のための無料トライアルが含まれています。 PDF コンテンツの表示の詳細については、テキストと画像の抽出に関するガイドをご覧ください。 その他の例については、 IronPDF のHTML から PDF へのコード例を参照してください。 アプリケーションは、IronPDF の最新のアーキテクチャと完全な機能のメリットをすぐに享受できます。

ご注意: PDFSharp はそれぞれの所有者の登録商標です。 このサイトはPDFSharpと提携、承認、または後援関係にありません。すべての製品名、ロゴ、ブランドはそれぞれの所有者の財産です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。
Curtis Chau
テクニカルライター

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

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から