IRONSOFTWAREHOME
ビデオ

VB.NET ライブラリで PDF ファイルを生成する方法 | IronPDF

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

SQL Server Reporting Services (SSRS)からIronPDFに移行することで、PDF生成のワークフローが、重量のあるサーバーベースのインフラストラクチャから、.NETアプリケーションに直接埋め込むことができる軽量のインプロセスライブラリに変わります。 このガイドでは、SQL Serverへの依存、レポートサーバーのオーバーヘッド、Microsoftエコシステムのロックインを排除する、完全で段階的な移行パスを提供します。

なぜSSRSからIronPDFに移行するのか

SSRSについて

SQL Server Reporting Services(SSRS)は、Microsoftのエンタープライズレポーティングプラットフォームであり、レポートの作成、デプロイメント、管理を行うための完全なスイートで、SQL Serverエコシステムと緊密に統合されています。 MicrosoftはSSRS 2022が最後のスタンドアロンバージョンであると確認しています:SQL Server 2025以降、オンプレミスのレポートはPower BI Report Server(PBIRS)に統合され、SSRSの新しいリリースは出荷されません。SSRS 2022は、SQL Server 2022のライフサイクルに沿った2033年1月11日までセキュリティ更新を受け取ります(レポーティングサービス統合FAQ参照)。

多くのPDF生成シナリオにおいて、SSRSインフラストラクチャは過剰です。移行する主な理由には以下が含まれます:

  1. SSRSラインの終了: SQL Server 2025にはSSRSは搭載されません; PBIRSがそれに取って代わります。 SSRSを対象とした新しい作業は行き詰ります。
  2. 重いインフラストラクチャ: SQL Server、レポートサーバー、および(古いWebフォームビューアーの)ためのIIS設定が必要です
  3. Microsoftエコシステムへのロックイン: SQL ServerライセンスとWindows Serverに結びついています
  4. 複雑なデプロイメント: レポートのデプロイメント、セキュリティ設定、サブスクリプション管理
  5. 高価なライセンス: エンタープライズ機能のための特に高額なSQL Serverライセンス
  6. 一級 for .NET Coreサポートなし: MicrosoftのMicrosoft.ReportingServices.ReportViewerControl.WebForms / .Winformsパッケージは.NET Framework 4.0–4.8.1のみを対象としています。 .NET Core / .NET 5+ユーザーはコミュニティポートReportViewerCore.NETCoreに依存しています。
  7. メンテナンスのオーバーヘッド: サーバーのパッチ、データベースのメンテナンス、レポート管理
  8. クラウドネイティブオプションがない: オンプレミス向けに設計されており、クラウドサポートは不自然です

SSRSが過剰な場合

ニーズSSRSオーバーヘッド
請求書の作成フルレポートサーバー
データテーブルのエクスポートSQL Serverライセンス
データからPDFを作成Windowsサーバー
シンプルなドキュメント生成レポート購読

IronPDFはサーバーのインフラなしでインプロセスでPDFを生成します。

SSRSとIronPDFの比較

フィーチャーSSRSIronPDF
依存性についてSQL Serverが必要です。データベースへの依存なし
デプロイメントサーバーベースライブラリ(アプリケーションへの組み込み)
統合マイクロソフトとの緊密な統合あらゆるデータソースに対応
データビジュアライゼーション豊富なネイティブオプションPDFを中心としたビジュアライゼーション
複雑さ高(サーバー設定が必要)中~低レベル(ライブラリのセットアップ)
費用SQL Serverのライセンス費用開発者1人あたりのライセンス費用
HTMLからPDFへなし完全なChromium
URLからPDFへなしはい
CSSサポート制限的完全なCSS3
JavaScript(JavaScriptなしフルES2024

IronPDFはSSRSとは異なり、特定のデータベースやサーバーエコシステムに縛られることはありません。 C#で直接PDF文書を動的に作成、編集、操作するための柔軟なライブラリを開発者に提供します。 サーバーベースのインフラストラクチャから切り離されることで、顕著な利点が得られます。

現代 for .NETを採用するチームのために、IronPDFはSSRSのインフラストラクチャの複雑さを排除するChromiumレンダリングエンジンを提供します。


始める前に

前提条件

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

NuGetパッケージの変更

#SSRSitself is server-based, but the in-process LocalReport API
# ships via Microsoft's ReportViewerControl packages (latest 150.1652.0,
# June 2024 — .NET Framework 4.0–4.8.1 only).
dotnet remove package Microsoft.ReportingServices.ReportViewerControl.WebForms
dotnet remove package Microsoft.ReportingServices.ReportViewerControl.Winforms

# If your project used the community .NET Core port, remove it too:
# dotnet remove package ReportViewerCore.NETCore

# Install IronPDF
dotnet add package IronPdf
SHELL

ライセンス構成

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

完全な API リファレンス

名前空間の変更

// Before: SSRS
using Microsoft.Reporting.WebForms;
using Microsoft.Reporting.WinForms;

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

コア API マッピング

SSRSのコンセプトIronPDF 同等物ノート
LocalReportChromePdfRendererコアレンダリング
ServerReportRenderUrlAsPdf()URLベースのレンダリング
.rdlcファイルHTML/CSSテンプレートテンプレート形式
ReportParameter文字列の補間パラメータ
ReportDataSourceC#データ + HTMLデータバインディング
LocalReport.Render("PDF")RenderHtmlAsPdf()PDF出力
SubReportマージされたPDFネストされたレポート
Report Server URL不要サーバー不要
ReportViewerコントロール不要直接PDF生成
エクスポート形式PDFはネイティブフォーカスされたアウトプット

コード移行の例

例1: HTMLからPDFへの変換

ビフォア (SSRS):

//SSRS- SQL Server Reporting Services
using System;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
using System.IO;

class SSRSHtmlToPdf
{
    static void Main()
    {
        // Create a ReportViewer instance
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;
        
        // Load RDLC report definition
        reportViewer.LocalReport.ReportPath = "Report.rdlc";
        
        // Add HTML content as a parameter or dataset
        var htmlContent = "<h1>Hello World</h1><p>This is HTML content.</p>";
        var param = new ReportParameter("HtmlContent", htmlContent);
        reportViewer.LocalReport.SetParameters(param);
        
        // Render the report to PDF
        string mimeType, encoding, fileNameExtension;
        string[] streams;
        Warning[] warnings;
        
        byte[] bytes = reportViewer.LocalReport.Render(
            "PDF",
            null,
            out mimeType,
            out encoding,
            out fileNameExtension,
            out streams,
            out warnings);
        
        File.WriteAllBytes("output.pdf", bytes);
    }
}
C#

翻訳後(IronPDF):

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

class IronPdfHtmlToPdf
{
    static void Main()
    {
        // Create a ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();
        
        // Convert HTML string to PDF
        var htmlContent = "<h1>Hello World</h1><p>This is HTML content.</p>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        
        // Save the PDF file
        pdf.SaveAs("output.pdf");
    }
}

この例は、基本的なアーキテクチャの違いを示しています。 SSRSはLocalReport.Render("PDF")を呼び出す必要があります。

IronPDFはわずか3行のコードでRenderHtmlAsPdf()として使用します。 レポート定義ファイル、パラメータオブジェクト、メタデータの処理は不要です。 包括的な例については、HTML to PDF documentationを参照してください。

例2: ヘッダーとフッター付きのURLからPDFへ

ビフォア (SSRS):

//SSRS- SQL Server Reporting Services
using System;
using System.IO;
using System.Net;
using Microsoft.Reporting.WebForms;

class SSRSUrlToPdf
{
    static void Main()
    {
        // Download HTML content from URL
        string url = "https://example.com";
        string htmlContent;
        
        using (var client = new WebClient())
        {
            htmlContent = client.DownloadString(url);
        }
        
        // Create RDLC report with header/footer configuration
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;
        reportViewer.LocalReport.ReportPath = "WebReport.rdlc";
        
        // Set parameters for header and footer
        var parameters = new ReportParameter[]
        {
            new ReportParameter("HeaderText", "Company Report"),
            new ReportParameter("FooterText", "Page " + DateTime.Now.ToString()),
            new ReportParameter("HtmlContent", htmlContent)
        };
        reportViewer.LocalReport.SetParameters(parameters);
        
        // Render to PDF
        string mimeType, encoding, fileNameExtension;
        string[] streams;
        Warning[] warnings;
        
        byte[] bytes = reportViewer.LocalReport.Render(
            "PDF", null, out mimeType, out encoding,
            out fileNameExtension, out streams, out warnings);
        
        File.WriteAllBytes("webpage.pdf", bytes);
    }
}
C#

翻訳後(IronPDF):

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

class IronPdfUrlToPdf
{
    static void Main()
    {
        // Create a ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();
        
        // Configure rendering options with header and footer
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Company Report</div>"
        };
        
        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages} - " + DateTime.Now.ToString("MM/dd/yyyy") + "</div>"
        };
        
        // Convert URL to PDF
        string url = "https://example.com";
        var pdf = renderer.RenderUrlAsPdf(url);
        
        // Save the PDF file
        pdf.SaveAs("webpage.pdf");
    }
}

SSRSはURLを直接PDFに変換することはできません。 手動でRender()メソッドシグネチャでレンダリングします。

IronPDFのRenderUrlAsPdf()は、単一の呼び出しで全プロセスを処理します。 ヘッダとフッタは、{total-pages}のようなプレースホルダーと完全なHTML/CSSをサポートします。 詳しくは、チュートリアルをご覧ください。

例3: データベース駆動型レポート

ビフォア (SSRS):

//SSRS- SQL Server Reporting Services
using System;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
using System.IO;

class SSRSDatabaseReport
{
    static void Main()
    {
        // Create a ReportViewer instance
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;
        reportViewer.LocalReport.ReportPath = "SalesReport.rdlc";
        
        // Create database connection and fetch data
        string connString = "Server=localhost;Database=SalesDB;Integrated Security=true;";
        using (var connection = new SqlConnection(connString))
        {
            var adapter = new SqlDataAdapter("SELECT * FROM Sales", connection);
            var dataSet = new DataSet();
            adapter.Fill(dataSet, "Sales");
            
            // Bind data to report
            var dataSource = new ReportDataSource("SalesDataSet", dataSet.Tables[0]);
            reportViewer.LocalReport.DataSources.Clear();
            reportViewer.LocalReport.DataSources.Add(dataSource);
        }
        
        // Render to PDF
        string mimeType, encoding, fileNameExtension;
        string[] streams;
        Warning[] warnings;
        
        byte[] bytes = reportViewer.LocalReport.Render(
            "PDF", null, out mimeType, out encoding,
            out fileNameExtension, out streams, out warnings);
        
        File.WriteAllBytes("sales-report.pdf", bytes);
    }
}
C#

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Data;
using System.Data.SqlClient;
using System.Text;

class IronPdfDatabaseReport
{
    static void Main()
    {
        // Create database connection and fetch data
        string connString = "Server=localhost;Database=SalesDB;Integrated Security=true;";
        var dataTable = new DataTable();
        
        using (var connection = new SqlConnection(connString))
        {
            var adapter = new SqlDataAdapter("SELECT * FROM Sales", connection);
            adapter.Fill(dataTable);
        }
        
        // Build HTML table from data
        var htmlBuilder = new StringBuilder();
        htmlBuilder.Append("<h1>Sales Report</h1><table border='1'><tr>");
        
        foreach (DataColumn column in dataTable.Columns)
            htmlBuilder.Append($"<th>{column.ColumnName}</th>");
        htmlBuilder.Append("</tr>");
        
        foreach (DataRow row in dataTable.Rows)
        {
            htmlBuilder.Append("<tr>");
            foreach (var item in row.ItemArray)
                htmlBuilder.Append($"<td>{item}</td>");
            htmlBuilder.Append("</tr>");
        }
        htmlBuilder.Append("</table>");
        
        // Convert to PDF
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
        pdf.SaveAs("sales-report.pdf");
    }
}

SSRSは事前に設計されたReportDataSourceを作成し、既存のデータソースをクリアし、新しいデータソースを追加して、レンダリングを行います。

IronPDFは既存のデータアクセスコード(同じStringBuilderで動的にHTMLを構築します。 標準的なHTML/CSSを使用してレイアウトを完全に制御できます。


機能比較

フィーチャーSSRSIronPDF
インフラストラクチャー
SQL Serverライセンス必須不要
Windowsサーバー必須プラットフォーム
データベース必須はい(ReportServer DB)なし
発達
テンプレート形式RDLC/RDLHTML/CSS/Razor
データソース組み込みDSNあらゆるC#データ
:レンダリング:
URLからPDFへなしはい
CSSサポート制限的完全なCSS3
JavaScriptなしフルES2024
チャート内蔵JSライブラリ経由
:展開:
構成複雑単純
メンテナンス高い低レベル

よくある移行の問題

課題1: RDLCレポートの定義

**SSRS:**独自の.rdlc XMLフォーマットを使用します。

ソリューション: HTMLテンプレートに変換する: 1.Visual Studioで.rdlcを開く 2.レイアウト構造の文書化 3.HTML/CSSで再作成 4.データバインディングにRazorを使用する

課題2:共有データソース

**SSRS:**レポートサーバーの接続文字列。

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

var data = await _dbContext.Sales.ToListAsync();
// Then bind to HTML template

課題3:レポートパラメータUI

**SSRS:**組み込みパラメータプロンプト。

ソリューション: アプリケーションでパラメータUIを構築する:

// Your own parameter form, then:
var pdf = GenerateReport(startDate, endDate, region);

課題4:定期購読/定期レポート

**SSRS:**組み込みのサブスクリプションエンジン。

**解決策:**バックグラウンド・ジョブ・フレームワークを使用する:

// Using Hangfire or similar
RecurringJob.AddOrUpdate("weekly-report",
    () => GenerateAndEmailReport(), Cron.Weekly);

移行チェックリスト

移行前

  • すべてのSSRSレポートをインベントリ化する(.rdlcファイル)
  • データソースと接続を文書化する
  • 視覚的な参照のためのスクリーンショットレポートレイアウト
  • 各レポートのレポートパラメータを一覧表示する
  • サブスクリプションスケジュールをメモする
  • IronPDFからIronPDFライセンスキーを取得します

コードの更新

  • ReportViewer パッケージを削除する
  • IronPdf NuGetパッケージをインストールする
  • .rdlcファイルをHTMLテンプレートに変換する
  • ChromePdfRendererに置き換える
  • ReportDataSourceをC#データ + HTMLテンプレートに置き換える
  • ReportParameterを文字列補間に置き換える
  • RenderHtmlAsPdf()に置き換える
  • HtmlHeaderFooterを用いてヘッダー/フッターを実装する
  • アプリケーションの起動時にライセンスの初期化を追加

インフラ

  • レポートサーバーの廃止を計画する
  • サブスクリプションをジョブ スケジューラ (Hangfire など) に移行する
  • デプロイメントスクリプトを更新する

テスティング

  • PDF出力を視覚的に比較する
  • データの正確性を確認する
  • テストページネーション
  • すべてのパラメータを確認する
  • パフォーマンステスト

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