フッターコンテンツにスキップ
移行ガイド

C#でSAP Crystal ReportsからIronPDFに移行する方法

SAP Crystal ReportsからIronPDFへの移行:完全なC#移行ガイド

SAP Crystal ReportsからIronPdfに移行することで、複雑なデプロイ要件を持つヘビー級のレガシープラットフォームから、最新の軽量なNuGetパッケージへとレポートワークフローが変わります。 このガイドでは、500MBを超える巨大なランタイムのインストールを排除し、SAPエコシステムのロックインを排除し、.NET Core/5/6/7/8+の完全サポートを可能にする、完全で段階的な移行パスを提供します。

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

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

SAP Crystal Reports は、ダイナミックで"ピクセルパーフェクト"なレポートを作成するツールとして、エンタープライズ分野で際立っています。SAP Crystal Reportsは、さまざまなデータソースに接続できることが評価され、包括的なレポート機能を求める多くの企業で採用されてきました。 Crystal Reports Designer は、複雑なレポートレイアウトの作成を簡素化するツールです。

しかし、テクノロジーの進化に伴い、SAP Crystal Reports の SAP フレームワークへの依存度が高く、インストールやデプロイの要件が厳しいことも見逃せなくなっています。 重量級であるため、企業がシステムを完全に実装し、維持するには、多くのリソースと時間が必要になります。

移行する主な理由

1.大量インストール:Crystal Reports Runtimeは500MB以上あり、複雑なインストールが必要です。 2.SAPエコシステムのロックイン:SAPの価格設定、サポートサイクル、製品ロードマップに関連しています。 3.複雑なライセンス:SAPのエンタープライズセールスプロセスを使用したプロセッサ/ユーザごとのライセンシング 4.レガシー・アーキテクチャ: 最新の64ビット展開を複雑にする32ビットのCOM依存関係 5..NETコアの非推奨サポート:最新の.NETプラットフォームに対する限定的なサポート 6.レポートデザイナーの依存性:Visual Studioの拡張機能またはスタンドアロン・デザイナーが必要です。 7.遅いパフォーマンス: 重いランタイムの初期化とメモリフットプリント

SAP Crystal Reportsの隠れたコスト

コスト要因SAP Crystal ReportsIronPDF
ランタイムサイズ500MB以上約20MB
インストール複雑なMSI/セットアップNuGetパッケージ
デプロイメント特別なインストーラコピー
64ビット対応問題点ネイティブ
.NET Core/5/6/7/8制限的フルサポート
クラウドデプロイメント難易度単純
Linux/ドッカーなしはい

SAP Crystal ReportsとIronPDFの比較

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

2025年、2026年まで.NET 10とC# 14の導入を計画しているチームにとって、IronPDFはSAP Crystal Reportsでは提供できないネイティブのクロスプラットフォームサポートを提供します。


始める前に

前提条件

1..NET環境:.NET フレームワーク4.6.2+ または .NET Core 3.1+ / .NET 5/6/7/8/9+. 2.NuGetアクセス:NuGetパッケージをインストールする能力。 3.IronPDFライセンスironPdf.comからライセンスキーを取得してください。

NuGetパッケージの変更

# Remove Crystal Reports packages
dotnet remove package CrystalDecisions.CrystalReports.Engine
dotnet remove package CrystalDecisions.Shared
dotnet remove package CrystalDecisions.ReportAppServer
dotnet remove package CrystalDecisions.Web

# Remove legacy assemblies from project references
# Check for: CrystalDecisions.*.dll in project references

# Install IronPDF
dotnet add package IronPdf
# Remove Crystal Reports packages
dotnet remove package CrystalDecisions.CrystalReports.Engine
dotnet remove package CrystalDecisions.Shared
dotnet remove package CrystalDecisions.ReportAppServer
dotnet remove package CrystalDecisions.Web

# Remove legacy assemblies from project references
# Check for: CrystalDecisions.*.dll in project references

# Install IronPDF
dotnet add package IronPdf
SHELL

ライセンス構成

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

完全な API リファレンス

名前空間の変更

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

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

// After: IronPDF
using IronPdf;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

コア API マッピング

SAP Crystal ReportsIronPDFノート
<コード>ReportDocument</コード<コード>ChromePdfRenderer</コードコアレンダリング
ReportDocument.Load()<コード>RenderHtmlAsPdf()</コードコンテンツを読み込む
.rptファイルHTML/CSSテンプレートテンプレート形式
<コード>SetDataSource()</コードデータ付きHTMLデータバインディング
SetParameterValue()(セットパラメータ値)。文字列の補間パラメータ
<コード>ExportToDisk()</コード></コード<コード>pdf.SaveAs()</コードファイルを保存
<コード>ExportToStream()</コード<コード>pdf.BinaryData</コードバイト
PrintToPrinter()を使用してください。<コード>pdf.Print()</コード印刷
<コード>データベース.テーブル</コードC#データアクセスデータソース
<コード>FormulaFieldDefinitions</コードC#ロジック計算
<コード>概要情報</コード<コード>pdf.MetaData</コードPDFメタデータ
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();
    }
}
// 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();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

翻訳後(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!");
    }
}
// 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!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

この例は、基本的なパラダイムの違いを示しています。 SAP Crystal Reportsでは、Crystal Reports Designerで作成された.rptファイルテンプレートが必要です。その後、ExportOptionsExportDestinationTypeExportFormatTypeDiskFileDestinationOptionsを設定する必要があります。 ライブラリはHTMLコンテンツを直接サポートしていません。

IronPDFはHTML文字列を直接受け取ります: ChromePdfRendererを作成し、任意のHTMLコンテンツでRenderHtmlAsPdf()を呼び出し、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();
    }
}
// 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();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

翻訳後(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!");
    }
}
// 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!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

SAP Crystal Reports では、URLを直接 PDF に変換することはできません。 WebClient<//code> を使って HTML コンテンツを手動でダウンロードし、そのデータを何らかの方法で抽出して、あらかじめデザインされた .rpt<//code> テンプレートにバインドする必要があります。

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();
    }
}
// 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();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

翻訳後(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!");
    }
}
// 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!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

SAP Crystal Reports では、ヘッダーとフッターをデザイン時に設定する必要があります。 Crystal Reports Designer を使用して .rpt ファイルを設計し、実行時に "HeaderText""FooterText" などのパラメータ値を渡す必要があります。ページ番号は、デザイナーの数式フィールドで設定する必要があります。

IronPDFはTextHeaderTextFooterプロパティでプログラムによるヘッダー/フッターの設定を提供します。 CenterTextLeftTextRightText、および FontSizeをコード内で直接設定します。 ページ番号は{page}{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);
// 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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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

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

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

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

第4号:32ビット/64ビットの問題

SAP Crystal Reports: COM の依存関係には 32 ビットモードが必要なことがよくあります。

ソリューション: IronPDFはネイティブの64ビットで、特別な設定は必要ありません。


移行後の新機能

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");
var pdf1 = PdfDocument.FromFile("report1.pdf");
var pdf2 = PdfDocument.FromFile("report2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_report.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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 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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

デジタル署名

var signature = new PdfSignature("certificate.pfx", "password");
pdf.Sign(signature);
var signature = new PdfSignature("certificate.pfx", "password");
pdf.Sign(signature);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ウォーターマーク

pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>DRAFT</h1>");
pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>DRAFT</h1>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

機能比較の概要

フィーチャーSAP Crystal ReportsIronPDF
インストール
ランタイムサイズ500MB以上約20MB
インストール方法MSI/Setup.exeNuGet
デプロイメント複雑コピー
プラットフォームサポート
.NET フレームワークはいはい
.NET Core/5/6/7/8制限的フル
64ビットネイティブ問題点はい
Linux/ドッカーなしはい
Azure/AWS難易度単純
開発分野
レポートデザイナー必須オプション(HTML)
テンプレート形式.rpt (バイナリ)HTML/CSS
学習曲線クリスタルの構文ウェブ標準
インテリセンスなし完全なC#言語
レンダリング
HTMLからPDFへなし完全なChromium
URLからPDFへなしはい
CSSサポートなし完全なCSS3
JavaScriptなしフルES2024
PDFの特長
PDFのマージなしはい
PDFの分割なしはい
透かし制限的フルHTML
デジタル署名なしはい
PDF/Aなしはい

移行チェックリスト

移行前

  • [ ] すべての.rptファイルをインベントリーする
  • [参考のため、各レポートのレイアウトをスクリーンショットしてください。
  • [ドキュメント式フィールドと計算
  • [すべてのデータソースとパラメータのリスト
  • [印刷要件の確認
  • [ironpdf.comからIronPDFライセンスキーを入手してください。

コードの更新

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

インフラ

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

テスティング

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

結論

SAP Crystal Reports は、レガシーなエンタープライズレポーティングのための堅牢なプラットフォームである一方、現代的な柔軟性に欠けるため、ダイナミックで先進的な組織にとっては魅力に欠けることも少なくありません。 このプラットフォームの500MBを超えるランタイム、複雑なデプロイメント、限られた.NET Coreサポートにより、メンテナンスに大きな負担がかかります。

この移行における主な変更点は以下のとおりです: 1.アーキテクチャ: ヘビー級エンタープライズプラットフォーム → 軽量NuGetパッケージ 2.サイズ: 500MB+ランタイム → ~20MB 3.テンプレート:バイナリ.rptファイル → HTML/CSS 4.デザイナー:必須 Crystal Reports Designer → オプション(任意の HTML エディタを使用) 5.データバインディングSetDataSource() → C# 文字列補間 6.パラメータSetParameterValue() → C#の標準変数 7.エクスポート:複雑なExportOptions → 単純なpdf.SaveAs()。 8.ヘッダー/フッター:設計時の設定 → ランタイムの TextHeader/TextFooter 9.ページ番号:数式フィールド → {page}{total-pages}プレースホルダ 10.プラットフォーム:制限付き .NET Core → 完全なクロスプラットフォームサポート 11.新機能:PDFマージ、分割、セキュリティ、電子署名、PDF/A

SAP Crystal ReportsとIronPDFのどちらを選択するかは、組織のセットアップと将来の目標に大きく依存します。SAP Crystal Reportsは、SAP のエコシステムに深く組み込まれ、包括的なレポート作成機能を求める企業にとって、比類のない製品です。 一方、.NETを使ったウェブ主導の取り組みに着手し、合理化されたPDF変換エンジンを探している組織は、IronPDFが非常に有利であることがわかるでしょう。

IronPDFドキュメントチュートリアルAPIリファレンスを参照して、SAP Crystal Reportsへの移行を促進してください。

カーティス・チャウ
テクニカルライター

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

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