IRONSOFTWAREHOME
ビデオ

ASP.NET MVCビューでHTMLをPDFに変換する方法

Curtis Chau
Curtis Chau
Updated: 2026年7月19日

PDFsharp からIronPDFへの移行は、手動の座標ベースの描画から、現代の HTML/CSS テンプレート化に変換します。 このガイドは、GDI+ スタイルのポジショニングを Web 技術に置き換え、開発時間を短縮し、標準的な HTML/CSS スキルを通じて PDF 生成を保守可能にするステップバイステップの移行パスを提供します。

PDFシャープ からIronPDFへの移行理由

PDFシャープ を理解する

PDFsharp は、開発者がプログラミングで PDF ドキュメントを生成できる低レベルの PDF 作成ライブラリです。 MIT ライセンスの下で公開され、PDFsharp-Team (もとは empira Software GmbH) によって維持されている PDFシャープ 6.x は、.NET 8/9/10 と .NET Standard 2.0 をターゲットにし、Core ビルドを介して Windows、Linux、macOS でクロスプラットフォームで動作します。 PDFシャープ は主に GDI+ スタイルの API を使用してゼロから PDF を描画およびコンパイルするツールとして機能しますが、プロジェクトの性質によっては、利点と制約があることがあります。

PDFsharp は時折、HTML から PDF への変換ツールと誤解されますが、実際にはそうではありません。 その目的は、プログラムによるPDF文書作成に特化しています。 HtmlRenderer.PdfSharp (ArthurHub による) が提供する予定である HTML レンダリング機能を提供するコミュニティのアドオンがありますが、それは HTML 4.01 / CSS レベル 2 のみをカバーし、flexbox や grid、JavaScript のような現代的な CSS 機能は含まれていません。

座標計算問題

PDFsharp の GDI+ アプローチでは、以下が必要です:

  • 各要素の正確なX,Y位置を計算する。
  • ページのオーバーフローのためにコンテンツの高さを手動で追跡する
  • 行の折り返しやテキスト測定を自分で処理する
  • ボーダー計算でセルごとに表を描く
  • 手動改ページで複数ページのドキュメントを管理

PDFsharp のアーキテクチャは、座標を使ったポジショニングの深い理解を必要とし、複雑なレイアウトの作成にはしばしば課題をもたらします。

PDFシャープ とIronPDFの比較

フィーチャーPDFシャープIronPDF
ライセンスMIT (無料)商用
HTMLからPDFへのサポートなしはい(HTML5/CSS3サポート)
モダンCSSサポートいいえ (HTML 4.01 / CSS 2 は HtmlRenderer アドオン経由)はい(フルCSS3)
ドキュメント作成座標ベースの図面HTML/CSSテンプレート
レイアウトシステムマニュアルX,YポジショニングCSS フロー/フレックスボックス/グリッド
改ページ手計算自動 + CSS コントロール
テーブルセルを個別に描画HTML <table>
スタイリングコードベースのフォント/カラーCSSスタイルシート
ドキュメント API低レベル(座標が必要です)ハイレベル(簡易API)
更新情報アクティブ (6.x ライン)レギュラー

IronPDFはHTMLドキュメントを完全な忠実度でPDFに変換する必要があるシナリオで輝きを放ちます。 こ for .NETライブラリは、HTML5とCSS3をサポートしており、最新のWeb標準に対応しています。 HTMLからPDFへのネイティブ機能により、開発者は既存のWebコンテンツや最新のWebツールでデザインされたテンプレートを活用することができます。

現代の .NET を使っているチーム向けに、IronPDF は座標計算を排除し、Web 開発スキルを活用するアプローチを提供します。


始める前に

前提条件

  1. .NET環境: .NET Framework 4.6.2+ または.NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGetアクセス: NuGetパッケージをインストールする機能
  3. IronPDFライセンス: IronPDFからライセンスキーを取得します。

NuGetパッケージの変更

# Remove PDFシャープ (official PDFsharp-Team package IDs; case-sensitive on case-sensitive feeds)
dotnet remove package PDFsharp
# dotnet remove package PDFsharp-WPF        # if you used the WPF build
# dotnet remove package PDFsharp-GDI        # if you used the GDI build
# dotnet remove package PDFsharp-MigraDoc   # if you used MigraDoc on top
# dotnet remove package PdfSharpCore        # community .NET Standard port

# Add IronPDF
dotnet add package IronPdf
SHELL

ライセンス構成

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

PDFシャープ の使用を特定する

# Find all PDFシャープ usages in your codebase
grep -r "PdfSharp\|XGraphics\|XFont\|XBrush\|XPen" --include="*.cs" .
SHELL

完全な API リファレンス

名前空間の変更

// Before: PDFsharp
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using PdfSharp.Pdf.IO;

// After: IronPDF
using IronPdf;
using IronPdf.Editing;

コア API マッピング

PDFsharp APIIronPDF API
new PdfDocument()ChromePdfRenderer.RenderHtmlAsPdf()
document.AddPage()自動翻訳
XGraphics.FromPdfPage()不要
XGraphics.DrawString()HTML <p>, <h1>, など
XGraphics.DrawImage()HTML <img> タグ
XFontCSS font-family, font-size
XBrush, XPenCSSカラー/ボーダー
document.Save()pdf.SaveAs()
PdfReader.Open()PdfDocument.FromFile()

コード移行の例

例1: HTMLからPDFへの変換

以前 (PDFsharp の場合):

// NuGet: Install-Package PDFシャープ  (official PDFsharp-Team package, MIT)
// PDFシャープ does NOT support HTML-to-PDF natively. The community add-on
// HtmlRenderer.PdfSharp covers HTML 4.01 / CSS level 2 only (no flexbox, grid, JS).
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        // PDFシャープ does not have built-inHTMLからPDFへconversion
        // You need to manually parse HTML and render content
        PdfDocument document = new PdfDocument();
        PdfPage page = document.AddPage();
        XGraphics gfx = XGraphics.FromPdfPage(page);
        XFont font = new XFont("Arial", 12);
        
        // マニュアル text rendering (no HTML support)
        gfx.DrawString("Hello from PDFsharp", font, XBrushes.Black,
            new XRect(0, 0, page.Width, page.Height),
            XStringFormats.TopLeft);
        
        document.Save("output.pdf");
    }
}
C#

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        //IronPDFhas nativeHTMLからPDFへrendering
        var renderer = new ChromePdfRenderer();
        
        string html = "<h1>Hello from IronPDF</h1><p>EasyHTMLからPDFへconversion</p>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        
        pdf.SaveAs("output.pdf");
    }
}
C#

この例では、2つのライブラリの最も大きな違いを強調しています。 PDFsharpは組み込みのHTMLからPDFへの変換を提供していません。手動でXRect座標を使用する必要があります。

IronPDFはChromePdfRendererを通じてネイティブなHTMLからPDFへのレンダリングを提供します。 RenderHtmlAsPdf()メソッドはHTML文字列を受け取り、内部でChromiumエンジンを使用して変換します。 IronPDFは簡単にHTMLファイルをPDFに変換し、HTML5とCSS3で定義されたすべてのスタイルを保持し、座標計算の必要性を排除します。 包括的な例については、HTML to PDF documentationを参照してください。

例2: 既存のPDFにテキスト/透かしを追加する

以前 (PDFsharp の場合):

// NuGet: Install-Package PDFシャープ  (official PDFsharp-Team package, MIT)
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        // Open existing PDF
        PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);
        PdfPage page = document.Pages[0];
        
        // Get graphics object
        XGraphics gfx = XGraphics.FromPdfPage(page);
        // Note: in PDFシャープ 6.x, XFontStyle was renamed to XFontStyleEx
        XFont font = new XFont("Arial", 20, XFontStyleEx.Bold);
        
        // Draw text at specific position
        gfx.DrawString("Watermark Text", font, XBrushes.Red,
            new XPoint(200, 400));
        
        document.Save("modified.pdf");
    }
}
C#

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

        // Open existing PDF
        var pdf = PdfDocument.FromFile("existing.pdf");
        
        // Add text stamp/watermark
        var textStamper = new TextStamper()
        {
            Text = "Watermark Text",
            FontSize = 20,
            FontFamily = "Arial",
            IsBold = true,
            FontColor = IronSoftware.Drawing.Color.Red,
            VerticalAlignment = VerticalAlignment.Middle,
            HorizontalAlignment = HorizontalAlignment.Center
        };
        
        pdf.ApplyStamp(textStamper);
        pdf.SaveAs("modified.pdf");
    }
}
C#

PDFsharpでは、XPointで正確なX,Y座標(200, 400)を指定します。

IronPDFではText, FontSize, FontFamily, IsBold, FontColor, VerticalAlignment, ApplyStamp()によってこれを簡素化しています。 座標計算の必要はありません。アライメントを指定するだけで、IronPDFが位置決めを行います。 スタンプ機能のためにIronPdf.Editing名前空間が必要です。

例3: 画像でPDFを作成する

以前 (PDFsharp の場合):

// NuGet: Install-Package PDFシャープ  (official PDFsharp-Team package, MIT)
using PdfSharp.Pdf;
using PdfSharp.Drawing;
using System;

class Program
{
    static void Main()
    {
        // Create new PDF document
        PdfDocument document = new PdfDocument();
        PdfPage page = document.AddPage();
        XGraphics gfx = XGraphics.FromPdfPage(page);
        
        // Load and draw image
        XImage image = XImage.FromFile("image.jpg");
        
        // Calculate size to fit page
        double width = 200;
        double height = 200;
        
        gfx.DrawImage(image, 50, 50, width, height);
        
        // Add text
        XFont font = new XFont("Arial", 16);
        gfx.DrawString("Image in PDF", font, XBrushes.Black,
            new XPoint(50, 270));
        
        document.Save("output.pdf");
    }
}
C#

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

        // Create PDF from HTML with image
        var renderer = new ChromePdfRenderer();
        
        string html = @"
            <h1>Image in PDF</h1>
            <img src='image.jpg' style='width:200px; height:200px;' />
            <p>Easy image embedding with HTML</p>";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
        
        // Alternative: Add image to existing PDF
        var existingPdf = new ChromePdfRenderer().RenderHtmlAsPdf("<h1>Document</h1>");
        var imageStamper = new IronPdf.Editing.ImageStamper(new Uri("image.jpg"))
        {
            VerticalAlignment = IronPdf.Editing.VerticalAlignment.Top
        };
        existingPdf.ApplyStamp(imageStamper);
    }
}
C#

PDFsharpが必要とするのは、新しいDrawImage()を使って正確な座標(50, 50, 200, 200)で行い、それから別にDrawString()でテキストを追加します。

IronPDFは標準HTMLと<img>タグおよびCSSスタイリング(style='width:200px;')を使用します。 高さ:200px;')。 座標計算は不要で、CSSがレイアウトを処理します。 IronPDFはまた、宣言型の整列プロパティを持つ既存のPDFに画像を追加するためのImageStamperを提供します。 詳しくは、チュートリアルをご覧ください。


重要な移行に関する注意事項

パラダイムシフト:座標からHTML/CSSへ

最も大きな変更点は、座標ベースの描画からHTML/CSSへの移行です:

// PDFsharp: manual positioning
gfx.DrawString("Invoice", titleFont, XBrushes.Black, new XPoint(50, 50));
gfx.DrawString("Customer: John", bodyFont, XBrushes.Black, new XPoint(50, 80));

// IronPDF: let CSS handle layout
var html = @"
<div style='padding: 50px;'>
    <h1>Invoice</h1>
    <p>Customer: John</p>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);

フォントの移行

// PDFsharp: XFont objects (PDFsharp 6.x renamed XFontStyle to XFontStyleEx)
var titleFont = new XFont("Arial", 24, XFontStyleEx.Bold);
var bodyFont = new XFont("Times New Roman", 12);

// IronPDF: CSS font properties
var html = @"
<style>
    h1 { font-family: Arial, sans-serif; font-size: 24px; font-weight: bold; }
    p { font-family: 'Times New Roman', serif; font-size: 12px; }
</style>";

ドキュメントの読み込みの変更

// PDFsharp: PdfReader.Open()
PdfDocument document = PdfReader.Open("existing.pdf", PdfDocumentOpenMode.Modify);

// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("existing.pdf");

保存メソッドの変更

// PDFsharp: document.Save()
document.Save("output.pdf");

// IronPDF: pdf.SaveAs()
pdf.SaveAs("output.pdf");

ページのアクセス変更

// PDFsharp: document.Pages[0]
PdfPage page = document.Pages[0];

// IronPDF:自動翻訳page handling or pdf.Pages[0]
// Pages are created automatically from HTML content
C#

移行後の新機能

IronPDF に移行した後、PDFsharp が提供できない機能を得ることができます。

ネイティブ HTML から PDF

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Modern Web Content</h1>");

URLをPDFに

var pdf = renderer.RenderUrlAsPdf("https://example.com");

PDFマージ

var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);

HTMLによるウォーターマーク

pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");

機能比較の概要

フィーチャーPDFシャープIronPDF
座標ベースの図面✗ (HTMLを使用)
HTMLからPDFへ
CSS3 サポート
フレックスボックス/グリッドレイアウト
テキストスタンプマニュアル XGraphicsテキストスタンパー
画像スタンプマニュアル XImageイメージスタンパー
PDFのマージマニュアル
URLからPDFへ
最新のウェブレンダリングChromium エンジン
自動改ページ

移行チェックリスト

移行前

  • コードベースにおけるすべての PDFシャープ の使用をインベントリする
  • 生成される文書の種類(レポート、請求書、証明書)を識別する
  • カスタムグラフィックや描画操作をメモします
  • IronPDFライセンス キーの保存を計画する (環境変数を推奨)
  • まずはIronPDFの試用ライセンスでテストしてください

パッケージの変更

  • PDFsharp NuGetパッケージ (公式PDFsharp-Teamパッケージ)を削除
  • 使用されている場合はPDFsharp-WPF, PDFsharp-GDI, またはPDFsharp-MigraDocを削除
  • コミュニティ.NET Standardポートを使用していた場合はPdfSharpCoreを削除
  • IronPdf NuGetパッケージをインストール:dotnet add package IronPdf

コードの変更

  • 名前空間インポートを更新 (using PdfSharp.Pdf;using IronPdf;)
  • スタンプ機能のためにusing IronPdf.Editing;を追加
  • 座標ベースのレイアウトをHTML/CSSに変換する
  • XFontをCSSフォントプロパティに置き換え
  • XPenをCSSの色/境界に置き換え
  • XGraphics.DrawString()をHTMLテキスト要素に置き換え
  • XGraphics.DrawImage()をHTML <img>タグに置き換え
  • PdfDocument.FromFile()に置き換え
  • pdf.SaveAs()に置き換え
  • テーブル描画コードをHTMLテーブルに変換する

移行後

  • 生成されたPDFの視覚的な比較
  • 複数ページのドキュメントをテストする
  • フォントレンダリングを確認する
  • 必要に応じて新しい機能(HTMLからPDF、結合、透かし)を追加します

ご注意: PDFsharp はその所有者の商標です。 このサイトは PDFsharp-Team または empira Software GmbH とは提携しておらず、承認されておらず、スポンサーされていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。
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% ロック解除済み。クレジットカード不要。

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

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

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