IRONSOFTWAREHOME
ビデオ

ASPNETでビューをPDFに変換する方法

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

SAP Crystal ReportsからIronPDFへの移行は、レポーティングワークフローをCOM時代の依存関係を持つランタイムMSI再配布可能から、現代のNuGetパッケージに変えます。 このガイドでは、ランタイムインストーラー要件を削除し、SAPエコシステムのロックインを解除し、Crystal Reports for Visual Studio(CR4VS)がサポートしていない.NET 6/8/9およびLinux/Dockerターゲットを解放するステップバイステップの移行パスを提供します。

なぜSAP Crystal ReportsからIronPDFへ移行するのか

SAPクリスタルレポートを理解する

SAP Crystal Reportsは、"ピクセルパーフェクト"レポートを生成するために広く使用されている企業レポーティングプラットフォームで、広範なデータソース接続性と長年のデザイーナーエコシステムを備えています。 Crystal Reports Designerは、SAPスタック内で複雑なレポートレイアウトを構築するための生産的なツールのままです。

しかし、ランタイムのCOM時代アーキテクチャとWindows/.NET Framework専用のフットプリントにより、.NET 6/8/9、Linux、またはコンテナー優先デプロイメントをターゲットとするチームに摩擦を生じさせます。

移行する主な理由

  1. ランタイムMSI再配布可能: Crystal ReportsランタイムはMSIインストーラー(通常、32/64ビットおよびロケールによって数十から数百MB)として出荷され、NuGetパッケージではありません。
  2. SAPエコシステムのロックイン: SAPのリリースサイクルおよび製品ロードマップに結びつく;SAPは、CR4VSの主流メンテナンスの終了を2027年末に確約しています。
  3. ライセンス: CR4VS自身はダウンロード無料で、ランタイムは再配布無料ですが、Crystal Reportsデザイナー家族(CR 2020/CR 2025)およびBIプラットフォームは商業SAP SKUです。
  4. レガシーアーキテクチャ: COM依存のランタイムDLLは.NET Framework 4.xをターゲットとしており、.NET Core / .NET 5+ではロードできません。
  5. .NET Core / .NET 5+のサポートなし: 現代 for .NETを対象とするCrystal Reportsランタイムのロードマップはありません; プロジェクトは.NET Framework 4.xに固定されています。
  6. 32ビットランタイムの廃止: SAPは、32ビットCR .NETランタイムがSP 39(2025年12月)以降に廃止されることを確認しました; 今後のサービスパックは64ビットのみです。
  7. レポートデザイナーの依存関係: CR4VS Visual Studio拡張機能またはスタンドアローンのCrystal Reportsデザイナーが必要です .rpt ファイルを作成するため

###SAP Crystal Reportsの隠れたコスト

コスト要因SAP Crystal ReportsIronPDF
ランタイム配布MSI再配布インストーラーNuGetパッケージ
インストールランタイムインストーラ + VS拡張dotnet add package IronPdf
デプロイメントターゲットマシンでMSIを実行するxcopy / 公開
64ビット対応はい (32ビットランタイムはSP 39、2025年12月後に終了)ネイティブ
.NET Core / .NET 5 以上サポートされていない (Framework 4.xのみ)完全サポート (.NET 6/8/9, Framework 4.6.2+)
クラウドデプロイメントWindows VM専用単純
Linux / Dockerサポートされていない (Windowsのみ)サポート対象

SAP Crystal ReportsとIronPDFの比較

フィーチャーSAP Crystal ReportsIronPDF
主な機能エンタープライズレポートプラットフォームHTMLからPDFへの変換エンジンとPDF操作
統合SAPエコシステム内で最適最新 for .NET統合、軽量NuGetパッケージ
使いやすさ複雑なセットアップとデプロイメント統合を簡素化し、.NET開発者をサポート
レポートデザイナー必須オプション(HTML/CSS)
テンプレート形式.rpt (バイナリ)HTML/CSS
HTMLからPDFへなし完全なChromium
URLからPDFへなしはい
CSSサポートなし完全なCSS3
JavaScript(JavaScriptなしフルES2024
PDF操作なしフル(マージ、分割、編集)
デジタル署名なしはい
PDF/Aコンプライアンスなしはい
現代的妥当性衰退し、最新の代替言語に取って代わられる現代的で、現代の技術にうまく統合されていること。

現代 for .NET(6、8、9)とクロスプラットフォームデプロイメントをターゲットにするチームにとって、IronPDFは.NET Framework 4.xに固定されているCrystal Reportsランタイムが提供できないネイティブサポートを提供します。


始める前に

前提条件

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

NuGetパッケージの変更

# Crystal Reports for Visual Studio is not distributed by SAP on NuGet.
# Projects typically reference the GAC-installed CrystalDecisions.*.dll
# assemblies delivered by the CR4VS / CR runtime MSI. Community-maintained
#NuGetwrappers such as CrystalReports.Engine exist for build automation
# but are not official SAP packages.

# 1. Remove direct assembly references (CrystalDecisions.*.dll) from your .csproj
# 2. If using a communityNuGetwrapper, remove it:
dotnet remove package CrystalReports.Engine

# 3. Uninstall the Crystal Reports runtime MSI from build/deploy targets

# 4. Install IronPDF
dotnet add package IronPdf
SHELL

ライセンス構成

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

完全な API リファレンス

名前空間の変更

// Before: SAP Crystal Reports
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using CrystalDecisions.ReportAppServer;

// After: IronPDF
using IronPdf;

コア API マッピング

SAP Crystal ReportsIronPDFノート
ReportDocumentChromePdfRendererコアレンダリング
ReportDocument.Load()RenderHtmlAsPdf()コンテンツを読み込む
.rpt ファイルHTML/CSSテンプレートテンプレート形式
SetDataSource()データ付きHTMLデータバインディング
SetParameterValue()文字列の補間パラメータ
ExportToDisk()pdf.SaveAs()ファイルを保存
ExportToStream()pdf.BinaryDataバイト
PrintToPrinter()pdf.Print()印刷
Database.TablesC#データアクセスデータソース
FormulaFieldDefinitionsC#ロジック計算
SummaryInfopdf.MetaDataPDFメタデータ
ExportFormatType.PortableDocFormatデフォルト出力PDFネイティブ

コード移行の例

例1: HTMLからPDFへの変換

翻訳前(SAP Crystal Reports):

// NuGet: Install-Package CrystalReports.Engine
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;

class Program
{
    static void Main()
    {
        // Crystal Reports requires a .rpt file template
        ReportDocument reportDocument = new ReportDocument();
        reportDocument.Load("Report.rpt");
        
        // Crystal Reports doesn't directly support HTML
        // You need to bind data to the report template
        // reportDocument.SetDataSource(dataSet);
        
        ExportOptions exportOptions = reportDocument.ExportOptions;
        exportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
        exportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
        
        DiskFileDestinationOptions diskOptions = new DiskFileDestinationOptions();
        diskOptions.DiskFileName = "output.pdf";
        exportOptions.DestinationOptions = diskOptions;
        
        reportDocument.Export();
        reportDocument.Close();
        reportDocument.Dispose();
    }
}

翻訳後(IronPDF):

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

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        var renderer = new ChromePdfRenderer();
        
        string htmlContent = "<h1>Hello World</h1><p>This is a PDF generated from HTML.</p>";
        
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF created successfully!");
    }
}

この例は、基本的なパラダイムの違いを示しています。 SAP Crystal Reportsは、Crystal Reportsデザイナーで作成された予め設計されたDiskFileDestinationOptionsを構成する必要があります。 ライブラリはHTMLコンテンツを直接サポートしていません。

IronPDFはHTML文字列を直接受け入れます: SaveAs()します。 デザイナー不要、バイナリテンプレート不要、複雑なエクスポート設定不要。 包括的な例については、HTML to PDF documentationを参照してください。

例2: URLからPDFへの変換

翻訳前(SAP Crystal Reports):

// NuGet: Install-Package CrystalReports.Engine
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;
using System.Net;

class Program
{
    static void Main()
    {
        // Crystal Reports cannot directly convert URLs to PDF
        // You need to create a report template first
        
        // Download HTML content
        WebClient client = new WebClient();
        string htmlContent = client.DownloadString("https://example.com");
        
        // Crystal Reports requires .rpt template and data binding
        // This approach is not straightforward for URL conversion
        ReportDocument reportDocument = new ReportDocument();
        reportDocument.Load("WebReport.rpt");
        
        // Manual data extraction and binding required
        // reportDocument.SetDataSource(extractedData);
        
        reportDocument.ExportToDisk(ExportFormatType.PortableDocFormat, "output.pdf");
        reportDocument.Close();
        reportDocument.Dispose();
    }
}

翻訳後(IronPDF):

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

class Program
{
    static void Main()
    {
        // Create a PDF from a URL
        var renderer = new ChromePdfRenderer();
        
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF created from URL successfully!");
    }
}

SAP Crystal Reports では、URLを直接 PDF に変換することはできません。 HTMLコンテンツを.rptテンプレートに抽出しバインドする必要がありますが、このプロセスは簡単ではなく、かなりの手作業が必要です。

IronPDFのRenderUrlAsPdf()メソッドは、すべてのCSS、JavaScript、および画像を含む完全にレンダリングされたウェブページを単一の呼び出しでキャプチャします。 詳しくは、チュートリアルをご覧ください。

例3:ページ番号を含むヘッダーとフッター

翻訳前(SAP Crystal Reports):

// NuGet: Install-Package CrystalReports.Engine
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;

class Program
{
    static void Main()
    {
        // Crystal Reports requires design-time configuration
        ReportDocument reportDocument = new ReportDocument();
        reportDocument.Load("Report.rpt");
        
        // Headers and footers must be designed in the .rpt file
        // using Crystal Reports designer
        // You can set parameter values programmatically
        reportDocument.SetParameterValue("HeaderText", "Company Name");
        reportDocument.SetParameterValue("FooterText", "Page ");
        
        // Crystal Reports handles page numbers through formula fields
        // configured in the designer
        
        reportDocument.ExportToDisk(ExportFormatType.PortableDocFormat, "output.pdf");
        reportDocument.Close();
        reportDocument.Dispose();
    }
}

翻訳後(IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        // Configure headers and footers
        renderer.RenderingOptions.TextHeader.CenterText = "Company Name";
        renderer.RenderingOptions.TextHeader.FontSize = 12;
        
        renderer.RenderingOptions.TextFooter.LeftText = "Confidential";
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}";
        renderer.RenderingOptions.TextFooter.FontSize = 10;
        
        string htmlContent = "<h1>Document Title</h1><p>Document content goes here.</p>";
        
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF with headers and footers created!");
    }
}

SAP Crystal Reports では、ヘッダーとフッターをデザイン時に設定する必要があります。 Crystal Reportsデザイナーを使用して"FooterText"のようなパラメータ値を渡す必要があります。ページ番号はデザイナーの式フィールドを通じて設定する必要があります。

IronPDFはTextFooterプロパティでプログラム的なヘッダー/フッターの構成を提供します。 コード内で CenterText, LeftText, RightText, および FontSize を直接設定します。 ページ番号は{total-pages}のプレースホルダーを使用し、デザイナーは不要です。


よくある移行の問題

課題1:.rptファイルの変換

SAP Crystal Reports: レイアウト、データ、数式が埋め込まれたバイナリ.rptファイル。

**解決策:**直接変換することはできません-HTMLとして再作成する必要があります: 1.Crystal Reports デザイナーで .rpt を開く 2.文書のレイアウト、フォント、色 3.すべての数式フィールドに注意 4.HTML/CSSで再作成 5.数式をC#コードに変換する

課題2: データベース接続

SAP Crystal Reports: 組み込み接続文字列とODBC。

ソリューション: アプリケーションのデータレイヤーを使用してください:

// Instead of Crystal's database integration
var data = await _dbContext.Orders
    .Where(o => o.Date >= startDate && o.Date <= endDate)
    .ToListAsync();

// Bind to HTML template
var html = GenerateReportHtml(data);

課題 3:ランタイム依存性

SAP Crystal Reports: Crystal Reports Runtimeのインストール(500MB以上)が必要です。

ソリューション: IronPDFは自己完結しています:

# Just add theNuGetpackage
dotnet add package IronPdf
# That's it - no additional installs needed
SHELL

課題4: 32ビット/64ビットおよび.NET Frameworkのロックイン

SAP Crystal Reports: Crystal ReportsランタイムはCOM依存であり、別々の32ビットおよび64ビットMSIで出荷されます。 SAPは、32ビットCR .NETランタイムがSP 39(2025年12月)以降に廃止されることを確認しました; 今後のサービスパックは64ビットのみです。 ランタイムは.NET Framework 4.xをターゲットにしており、.NET Core / .NET 5+ではロードできません。

ソリューション: IronPDFは.NET Framework 4.6.2+、.NET 6、.NET 8、および.NET 9で実行できます—LinuxやDockerも含みます。 64ビットまたはAnyCPU専用に特別な設定は不要です。


移行後の新機能

IronPDFに移行することで、SAP Crystal Reportsが提供できない機能を得ることができます:

PDFマージ

var pdf1 = PdfDocument.FromFile("report1.pdf");
var pdf2 = PdfDocument.FromFile("report2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_report.pdf");

PDFのセキュリティ

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(reportHtml);

pdf.MetaData.Title = "Quarterly Sales Report";
pdf.MetaData.Author = "Finance Department";

pdf.SecuritySettings.OwnerPassword = "admin123";
pdf.SecuritySettings.UserPassword = "view123";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

pdf.SaveAs("secure_report.pdf");

デジタル署名

var signature = new PdfSignature("certificate.pfx", "password");
pdf.Sign(signature);

ウォーターマーク

using IronPdf.Editing;

pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>DRAFT</h1>");

機能比較の概要

フィーチャーSAP Crystal ReportsIronPDF
:インストール:
インストール方法MSI + Visual Studio拡張NuGet
デプロイメントターゲットマシンでMSIを実行するxcopy / 公開
:プラットフォームサポート:
.NET Core / .NET 5 以上サポートされていませんはい (.NET 6/8/9)
64ビットネイティブはい (32ビットはSP 39、2025年12月後に終了)はい
Linux / Dockerサポートされていない (Windowsのみ)はい
Azure / AWSWindows VM専用単純
発達
テンプレート形式.rpt (バイナリ)HTML/CSS
学習曲線クリスタルの構文ウェブ標準
インテリセンスなし完全なC#言語
:レンダリング:
URLからPDFへなしはい
CSSサポートなし完全なCSS3
JavaScriptなしフルES2024
: PDF の機能:
PDFの分割なしはい
透かし制限的フルHTML
デジタル署名なしはい
PDF/Aなしはい

移行チェックリスト

移行前

  • すべての.rptファイルをインベントリ化
  • 参考のために各レポートレイアウトのスクリーンショットを撮る
  • 数式フィールドと計算を文書化する
  • すべてのデータソースとパラメータを一覧表示する
  • 印刷要件を特定する
  • IronPDFからIronPDFライセンスキーを取得します

コードの更新

  • Crystal Reportsパッケージを削除する (CrystalDecisions.CrystalReports.Engine, 等)
  • デプロイメントからランタイムインストールを削除する
  • IronPdf NuGetパッケージをインストール
  • .rptレイアウトをHTML/CSSテンプレートに変換
  • Crystal の式を C# コードに変換する
  • データバインディングをSetDataSource()からHTML文字列補間に更新
  • 印刷コードをpdf.Print()に更新
  • アプリケーションの起動時にライセンスの初期化を追加

インフラ

  • サーバーからCrystal Runtimeを削除する
  • デプロイメントスクリプトを更新する
  • 32ビット互換モードを削除
  • Dockerイメージを更新する(該当する場合)

テスティング

  • PDF出力を元のレポートと比較する
  • すべての計算を検証する
  • すべてのパラメータをテストする
  • 印刷機能のテスト
  • パフォーマンステスト
  • 64ビットテスト

ご注意: SAP Crystal Reportsはその所有者の登録商標です。 このサイトはSAPと提携しておらず、承認されていないか、SAPによってスポンサードされていません。すべての製品名、ロゴ、およびブランドはそれぞれの所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。
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日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。