製品比較

レポート .NET と IronPDF の比較

公開済み 2024年4月29日
共有:

この記事では、PDFファイルを扱うために使用される2つの人気のあるC#ライブラリについて詳しく見ていきます:IronPDF - C#開発者のための.NET PDFライブラリ以下のコンテンツを日本語に翻訳してください:Report.NET(レポート.NET). これらのツールは、C#アプリケーションを通じてPDFドキュメントを作成、修正、または操作する必要がある開発者にとって不可欠です。 両方のライブラリはPDFの取り扱いをより簡単かつ効率的にするためのさまざまな機能を提供しますが、それぞれ異なる方法で実現します。

IronPDFとReport.NETを使用すると、開発者は動的にドキュメントを生成し、コンテンツを編集し、PDFからテキストや画像を取得することができます。 また、フォーム処理、デジタル署名の追加、アプリケーションがプラットフォーム間でPDFを扱う際に文書の完全性を損なわないようにすることもサポートしています。 これにより、デバイスやオペレーティングシステムに関係なく、PDFは意図した通りに表示され、機能することが保証されます。

この比較を通して、各ライブラリが提供する具体的な機能、それらの動作方法、使用例を示すコードスニペット、およびライセンス条件について詳しく解説します。 この比較は、各ライブラリの機能を開発者に明確に理解してもらい、プロジェクトの要件に最適なものを選択する際の助けとなることを目的としています。 では、開発者向けにIronPDFReport.NETの機能と違いを、簡潔かつ実践的な観点から説明していきましょう。

1.Report.NET C#ライブラリ

Report.NET(レポート.NET)は、.NETアプリケーション内でPDFドキュメントを直接作成・管理・操作するために開発者をサポートする強力なC#ライブラリです。 このツールは、PDFの生成および操作における簡潔なアプローチで知られており、ゼロから複雑なPDF文書を作成したり、既存のPDFを修正したりすることができます。 その機能は単純なテキストの追加から画像や図形の組み込みまで幅広く、プロジェクトにPDF機能を実装しようとする開発者にとって多用途な選択肢となります。

レポート.NETの主要機能 1.1

ドキュメントの作成および編集

Report.NETは、新しいPDFドキュメントの作成および既存のドキュメントの編集において優れています。 開発者は、テキスト、画像、およびグラフィックスを簡単に追加でき、詳細で視覚的に魅力的なドキュメントを作成することができます。

コンテンツ管理における柔軟性

このライブラリは、テキストの書式設定、画像の配置、グラフィック要素など、ドキュメントの内容を正確に制御することができます。 このレベルのコントロールにより、最終的なPDFが意図どおりの外観になります。

1.1.3 使いやすさ

シンプルさに重点を置いて、Report.NETはPDF生成プロセスを簡素化し、プログラミングの文脈でPDFを扱うことに不慣れな人々でもアクセス可能にしています。

1.1.4 プラットフォーム間の互換性

Report.NETは、.NET Coreを含む.NETプラットフォーム全体でシームレスに動作するように設計されており、アプリケーションがオペレーティングシステムに関係なくPDFを生成および管理できるようにします。

1.1.5 カスタマイズとスタイリング

このライブラリはPDFドキュメントの広範なカスタマイズオプションを提供しており、開発者がレイアウト、スタイル、全体的な外観を調整して、特定のニーズに合わせることができます。

1.1.6 オープンソース

オープンソースツールとして、Report.NETはコミュニティからの貢献を受けているため、常に最新の状態が保たれ、新しい機能も追加され続けます。このコミュニティのサポートにより、開発者は豊富な知識とリソースにアクセスできることを意味します。

2.IronPDF C#ライブラリ

IronPDFは、.NETアプリケーション内でPDF文書の作成、操作、およびレンダリングを支援するために作られた包括的な.NETライブラリです。 このツールは、HTMLからのPDF生成と既存のPDFファイルの直接編集の両方を処理できる点で際立っています。 レポートの作成に非常に役立ちます。 IronPDFは、SQL Server Reporting Servicesともスムーズに統合されます。 IronPDFを使用して、レポート作成ツールとレポートビューアを作成するエンドユーザーレポートデザイナーを作成できます。

IronPDFの主な特徴

2.1.1 HTMLからPDFへの変換

IronPDFの主な強みの一つは、その変換能力です。HTMLおよびCSSをPDFドキュメントに変換する. この機能は、元のデザインとレイアウトを保持しながらウェブコンテンツをポータブルな形式に変換しようとしている開発者にとって非常に貴重です。

PDF操作 2.1.2

IronPDFは、開発者にPDFドキュメントを編集および操作するためのツールを提供することに優れています。 これには、ページの追加や削除、テキストの修正が含まれます。画像の埋め込み. IronPDFを使用してレポートからレポートデータを抽出することもできます。

2.1.3 フォーム処理

ライブラリは作成および編集をサポートしていますPDF フォーム, ユーザーが動的にドキュメントとやり取りできるようにします。 この機能は、アンケートやアプリケーションフォームなど、エンドユーザーからの入力が必要なアプリケーションにとって重要です。

2.1.4 セキュリティ機能

IronPDFを使用すると、暗号化などのセキュリティ対策の実装やパスワード保護簡単です。 これらの機能により、PDFドキュメント内の機密情報が不正アクセスから安全に保たれます。

2.1.5 印刷とレンダリング

IronPDFは、開発者が画面上での表示および物理印刷高品質な出力を両方のケースで確保しながら。 これにより、さまざまなプレゼンテーションや配布のニーズに合わせてドキュメントを準備することが容易になります。

2.1.6 クロスプラットフォームのサポート

IronPDFは、さまざまな.NETプラットフォームで動作し、.NETコード標準に準拠しており、互換性の問題なく多様な環境での開発を容易にします。

2.1.7 包括的なドキュメントとサポート

IronPDFは支持されています詳細なドキュメントライブラリの機能を効率的にアプリケーションに統合できるように、開発者を支援する専用サポートを提供します。

2.1.8 高度なPDF編集

IronPDFは、多くの高度な編集機能を提供します。 これには能力が含まれますマージおよび分割ドキュメントから特定のセクションを抽出して別々に利用するために、特に大量の情報を整理するのに便利なPDFドキュメント。

カスタムヘッダーとフッター

ライブラリは、以下のことを可能にしますヘッダーのカスタマイズおよびPDFドキュメント内のフッター。 この機能は、ページ全体に一貫したブランド、ページ番号、またはドキュメントタイトルを追加するために不可欠であり、出力のプロの外観を向上させます。

3. Visual Studioでコンソールプロジェクトを作成する

Visual Studio IDEでコンソールアプリケーションを作成することは、いくつかのステップで構成される簡単なプロセスです。

3.1 Visual Studio を起動する

Microsoft Visual Studioを開くことから始めます。 インストールされていない場合は、ダウンロードしてインストールする必要があります。公式Microsoftウェブサイト. インストールした後、Visual Studio を起動します。

3.2 新しいプロジェクトを作成する

Visual Studio を開くと、スタートウィンドウが表示されます。 ここで、「新しいプロジェクトを作成」オプションを選択して、新しいコンソールアプリケーションのセットアップを開始します。

レポート .NET と IronPDF の比較: 図1 - Visual Studio を開き、「Create a new project」オプションをクリックします。

3.3 プロジェクトタイプの選択

「新しいプロジェクトを作成」ウィンドウでは、さまざまなプロジェクトテンプレートが表示されます。 検索ボックスに「console」と入力してオプションをフィルタリングし、リストから「Console App」を選択します。使用したいプログラミング言語に対応するテンプレート(例:C#)を必ず選択してください。

レポート .NET と IronPDF の比較: 図2 - 次に、C#プログラミング言語で「コンソールアプリ」プロジェクトタイプを選択します。

プロジェクトの構成

コンソールアプリテンプレートを選択したら、「次へ」をクリックしてプロジェクト構成画面に進みます。 ここでは、プロジェクトに関する詳細を提供する必要があります。

  • プロジェクト名: プロジェクトの目的を反映した意義のある名前を付けてください。

    • 場所: プロジェクトファイルを保存したいコンピュータの場所を選択してください。

    レポート.NETとIronPDFの比較:図3 - コンソールアプリプロジェクトのプロジェクト名と場所を指定します。 デフォルトではソリューション名はプロジェクト名と同じですが、変更することも可能です。

  • ソリューション名: デフォルトでは、これはプロジェクト名と同じですが、同じソリューションに複数のプロジェクトを含める予定がある場合は変更することができます。

    • フレームワーク: ターゲットにしたい.NETフレームワークのバージョンを選択してください。 迷った場合は、最新バージョンを選んでください。

    レポート .NET と IronPDF の比較:図4 - 使用したい .NET Framework バージョンを選択してください。 迷った場合は、最新バージョンを選択してください。

プロジェクトの作成

必要な情報をすべて入力した後、「作成」ボタンをクリックしてください。 Visual Studio は、指定に基づいて新しいコンソール アプリケーション プロジェクトを生成します。 このプロセスにはしばらく時間がかかる場合があります。

IronPDFライブラリのインストール

IronPDFの機能をプロジェクトで活用するためには、まずライブラリをインストールする必要があります。これを実現するための方法は複数あり、開発ワークフローや好みに応じて適した方法を選ぶことができます。 以下は、IronPDFライブラリをVisual Studioプロジェクトにインストールするための3つの一般的な方法です。

NuGetパッケージマネージャーを使用してインストール

Visual Studio の NuGet パッケージ マネージャー UI は、パッケージを閲覧、選択、およびインストールするための簡単な方法を提供します。

  1. Visual Studio で、Solution Explorer 内のプロジェクトに移動し、右クリックして「Manage NuGet Packages...」オプションを選択します。

  2. 「ブラウズ」タブをクリックし、検索ボックスに「IronPDF」と入力してください。

  3. 検索結果でIronPDFパッケージを見つけ、それを選択し、「インストール」ボタンをクリックしてください。 Visual Studio は、ダウンロードとインストールを自動的に処理します。

    Report .NETとIronPDFの比較: 図5 - NuGetパッケージマネージャーの検索バーに「IronPDF」と入力して、ソリューションのNuGetパッケージの管理を使用してIronPDFをインストールします。次に、プロジェクトを選択し、インストールボタンをクリックします。

NuGetパッケージマネージャーコンソールを使用してインストールする方法 (バージョン 4.2)

コマンドラインツールを好む方にとって、NuGetパッケージマネージャーコンソールは強力な代替手段です。

  1. コンソールを開く: Visual Studio の「ツール」メニューに移動し、「NuGet パッケージマネージャー」>「パッケージマネージャーコンソール」に進みます。

    1. インストールコマンド: コンソールで次のコマンドを入力し、Enterキーを押してください:
Install-Package IronPdf

このコマンドは、NuGetに最新バージョンのIronPDFをプロジェクトにダウンロードしてインストールするように指示します。

NuGetウェブサイトを使用したインストール 4.3

パッケージを手動でダウンロードしたい場合や特定のバージョンのIronPDFが必要な場合は、NuGetウェブサイトが良い選択肢です。

  1. Visit the NuGet Website: 次のURLにアクセスしてくださいnuget.org「IronPDF」を検索します。

  2. パッケージをダウンロード: IronPDFページ使用するバージョンを選択し、.nupkgファイルをダウンロードしてください。

  3. 手動インストール: ダウンロード後、パッケージをプロジェクトに手動で追加することができます。 Visual Studioでは、「ツール」メニューに移動し、「オプション」 > 「NuGetパッケージマネージャー」 > 「パッケージソース」を選択します。 新しいソースを、.nupkg ファイルをダウンロードしたフォルダーに向けて追加します。最後に、Visual Studio のパッケージ マネージャー UI またはコンソールを使用して、ローカル ソースからパッケージをインストールします。

5. Report.NET ライブラリのインストール

ウェブブラウザを開き、Report.NET GitHubリポジトリ(https://github.com/ritchiecarroll/Report.NET/tree/master)にアクセスしてください。 このページには、最新バージョンのReport.NETソースコード付きのライブラリ。

ライブラリをダウンロード

リポジトリのページで「Code」ボタンを見つけてクリックしてください。 ドロップダウンメニューから「Download ZIP」を選択して、リポジトリ全体をZIPファイルとしてダウンロードします。このファイルをコンピュータの便利な場所に保存し、内容を展開してください。

プロジェクトにReport.NETを追加する方法 5.2

ZIPファイルを抽出した後、抽出されたファイルの中にReport.NETライブラリのソースコードが見つかります。 Visual StudioプロジェクトでReport.NETを使用するには、次の手順に従ってください。

  1. プロジェクトを開く: Visual Studio を起動し、Report.NETを追加したいプロジェクトを開きます。

    1. ライブラリを手動で追加する: プロジェクトにライブラリを含める方法はいくつかあります:

      • コンパイル済みアセンブリとして: GitHubリポジトリにコンパイル済みのDLLファイルが含まれている場合、このDLLをプロジェクトに参照として追加するだけで済みます。 プロジェクトのソリューションエクスプローラーで「参照」を右クリックし、「参照の追加...」を選択して、DLLファイルを参照して選択します。
    • ソースファイルを含める場合: ソースコードを直接含めることを希望する場合や、コンパイル済みのDLLが提供されない場合は、ソースコードファイルをプロジェクトに追加することができます。 ソリューションエクスプローラーでプロジェクトを右クリックし、「追加」 > 「既存の項目...」を選択して、ZIPから抽出したReport.NETのソースコードファイルをナビゲートおよび選択します。
  2. 互換性を確保: Report.NET が要求する互換性のある .NET Framework バージョンをプロジェクトがターゲットにしていることを確認してください。

6.IronPDF vs Report.NET C#の高度な機能

6.1 IronPDF C#の高度な機能

IronPDF幅広いPDF関連のタスクを容易に処理するために設計された高度な機能が一式備わっています。

6.1.1 HTMLをPDFに変換

IronPDFは、CSSやJavaScriptを含むHTMLコンテンツを取り込み、直接PDFドキュメントにレンダリングすることができます。 これは、ウェブページやHTMLテンプレートがブラウザで表示される通りにPDFに変換できることを意味します。

6.1.1.1 HTML文字列をPDFに変換

IronPDFは、直接変換を可能にしますHTML文字列をPDFへ. これは、開発者が文字列変数として保存されたHTMLコードを使用して、IronPDFを使ってPDFファイルにレンダリングできることを意味します。この機能は、アプリケーションによってHTMLコンテンツが動的に生成または変換される場合に特に便利です。

using IronPdf;
var Renderer = new IronPdf.HtmlToPdf();
var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>");
PDF.SaveAs("HtmlStringToPdf.pdf");
using IronPdf;
var Renderer = new IronPdf.HtmlToPdf();
var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>");
PDF.SaveAs("HtmlStringToPdf.pdf");
Imports IronPdf
Private Renderer = New IronPdf.HtmlToPdf()
Private PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPDF</h1>")
PDF.SaveAs("HtmlStringToPdf.pdf")
VB   C#

6.1.1.2 HTMLファイルからPDFへ

同様に、IronPDFは既存のドキュメントを変換することができますHTMLファイルをPDFドキュメントに変換. これは、ファイルシステムからHTMLファイルを読み込み、IronPDFを使用して同じ書式と構造を持つPDFドキュメントを作成することで行われます。

using IronPdf;
var Renderer = new ChromePdfRenderer();
var PDF = Renderer.RenderHTMLFileAsPdf("invoice.html");
PDF.SaveAs("HtmlFileToPdf.pdf");
using IronPdf;
var Renderer = new ChromePdfRenderer();
var PDF = Renderer.RenderHTMLFileAsPdf("invoice.html");
PDF.SaveAs("HtmlFileToPdf.pdf");
Imports IronPdf
Private Renderer = New ChromePdfRenderer()
Private PDF = Renderer.RenderHTMLFileAsPdf("invoice.html")
PDF.SaveAs("HtmlFileToPdf.pdf")
VB   C#

レポート .NET と IronPDF の比較: 図 6 - IronPDF を使用した HTML ファイルから PDF への出力

6.1.1.3 URLからPDFへの変換

IronPDFは、ですライブURLからのPDF. これにより、開発者はウェブアドレスを入力でき、IronPDFがそのURLからHTMLコンテンツを取得し、PDFとしてレンダリングします。

using IronPdf;
var Renderer = new ChromePdfRenderer();
var PDF = Renderer.RenderUrlAsPdf("http://ironpdf.com");
PDF.SaveAs("UrlToPdf.pdf");
using IronPdf;
var Renderer = new ChromePdfRenderer();
var PDF = Renderer.RenderUrlAsPdf("http://ironpdf.com");
PDF.SaveAs("UrlToPdf.pdf");
Imports IronPdf
Private Renderer = New ChromePdfRenderer()
Private PDF = Renderer.RenderUrlAsPdf("http://ironpdf.com")
PDF.SaveAs("UrlToPdf.pdf")
VB   C#

レポート .NET と IronPDF の比較: 図 7 - IronPDF を使用した URL から PDF への変換結果

6.1.2 PDFの編集

IronPDFを使用すると、既存のPDFドキュメントを編集する. これには、文章、画像、およびページの追加やページの削除が含まれます。 またテキストの検索と置換 PDFドキュメントから。

using IronPdf;
var document = PdfDocument.FromFile("original_document.pdf");
const int targetPageIndex = 1;
const string oldString = "Hello, World!";
const string newString = "Greetings, Universe!";
document.ReplaceTextOnPage(targetPageIndex, oldString, newString);
document.SaveAs("modified_document.pdf");
using IronPdf;
var document = PdfDocument.FromFile("original_document.pdf");
const int targetPageIndex = 1;
const string oldString = "Hello, World!";
const string newString = "Greetings, Universe!";
document.ReplaceTextOnPage(targetPageIndex, oldString, newString);
document.SaveAs("modified_document.pdf");
Imports IronPdf
Private document = PdfDocument.FromFile("original_document.pdf")
Private Const targetPageIndex As Integer = 1
Private Const oldString As String = "Hello, World!"
Private Const newString As String = "Greetings, Universe!"
document.ReplaceTextOnPage(targetPageIndex, oldString, newString)
document.SaveAs("modified_document.pdf")
VB   C#

レポート.NETとIronPDFの比較: 図8 - 出力: IronPDFを使用して既存のPDFを編集

6.1.3 テキストと画像の抽出

このライブラリはテキストと画像を抽出するCrystal ReportsのようにPDFファイルからインデックス化、検索、またはコンテンツの再利用に使用できるものです。

PDFフォームの生成

IronPDFは、作成をサポートしていますPDF フォーム. 開発者はPDF内にプログラムでフォームを作成でき、ユーザーはそれらを記入することができます。

using IronPdf;
using System;
const string alternativeHtmlContent = @"
    <html>
        <body>
            <h2>Alternative PDF Form</h2>
            <form>
              Name: <br> 
              Age: <br> 
              <br>
              <p>Select country:</p>
              <select name='country'>
                <option value='USA'>USA</option>
                <option value='UK'>UK</option>
                <option value='Canada'>Canada</option>
              </select>
              <br>
              <p>Select interests:</p>
              <label for='interest1'> Interest 1</label><br>
              <label for='interest2'> Interest 2</label><br>
            </form>
        </body>
    </html>";
var alternativePdfRenderer = new ChromePdfRenderer();
alternativePdfRenderer.RenderingOptions.CreatePdfFormsFromHtml = true;
alternativePdfRenderer.RenderHtmlAsPdf(alternativeHtmlContent).SaveAs("AlternativeForm.pdf");
using IronPdf;
using System;
const string alternativeHtmlContent = @"
    <html>
        <body>
            <h2>Alternative PDF Form</h2>
            <form>
              Name: <br> 
              Age: <br> 
              <br>
              <p>Select country:</p>
              <select name='country'>
                <option value='USA'>USA</option>
                <option value='UK'>UK</option>
                <option value='Canada'>Canada</option>
              </select>
              <br>
              <p>Select interests:</p>
              <label for='interest1'> Interest 1</label><br>
              <label for='interest2'> Interest 2</label><br>
            </form>
        </body>
    </html>";
var alternativePdfRenderer = new ChromePdfRenderer();
alternativePdfRenderer.RenderingOptions.CreatePdfFormsFromHtml = true;
alternativePdfRenderer.RenderHtmlAsPdf(alternativeHtmlContent).SaveAs("AlternativeForm.pdf");
Imports IronPdf
Imports System
Private Const alternativeHtmlContent As String = "
    <html>
        <body>
            <h2>Alternative PDF Form</h2>
            <form>
              Name: <br> 
              Age: <br> 
              <br>
              <p>Select country:</p>
              <select name='country'>
                <option value='USA'>USA</option>
                <option value='UK'>UK</option>
                <option value='Canada'>Canada</option>
              </select>
              <br>
              <p>Select interests:</p>
              <label for='interest1'> Interest 1</label><br>
              <label for='interest2'> Interest 2</label><br>
            </form>
        </body>
    </html>"
Private alternativePdfRenderer = New ChromePdfRenderer()
alternativePdfRenderer.RenderingOptions.CreatePdfFormsFromHtml = True
alternativePdfRenderer.RenderHtmlAsPdf(alternativeHtmlContent).SaveAs("AlternativeForm.pdf")
VB   C#

レポート .NET と IronPDF の比較: 図 9 - 出力 PDF: IronPDF を使用して PDF フォームを生成

PDFドキュメントの結合

Here is the translation of the provided text into Japanese:

あなたは複数のPDFファイルを結合する1つのドキュメントに統合します。 この機能は、レポートを統合したり、異なる文書のセクションを結合したりするのに便利です。

using IronPdf;
var firstHtmlContent = @"<h1>Document A</h1>
        <p>This is the first document.</p>
        <div style='page-break-after: always;'></div>
        <p>Continuation of Document A</p>";
var secondHtmlContent = @"<h1>Document B</h1>
        <p>This is the second document.</p>
        <div style='page-break-after: always;'></div>
        <p>Continuation of Document B</p>";
var pdfRenderer = new ChromePdfRenderer();
var pdfDocA = pdfRenderer.RenderHtmlAsPdf(firstHtmlContent);
var pdfDocB = pdfRenderer.RenderHtmlAsPdf(secondHtmlContent);
var mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB);
mergedPdf.SaveAs("MergedDocuments.pdf");
using IronPdf;
var firstHtmlContent = @"<h1>Document A</h1>
        <p>This is the first document.</p>
        <div style='page-break-after: always;'></div>
        <p>Continuation of Document A</p>";
var secondHtmlContent = @"<h1>Document B</h1>
        <p>This is the second document.</p>
        <div style='page-break-after: always;'></div>
        <p>Continuation of Document B</p>";
var pdfRenderer = new ChromePdfRenderer();
var pdfDocA = pdfRenderer.RenderHtmlAsPdf(firstHtmlContent);
var pdfDocB = pdfRenderer.RenderHtmlAsPdf(secondHtmlContent);
var mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB);
mergedPdf.SaveAs("MergedDocuments.pdf");
Imports IronPdf
Private firstHtmlContent = "<h1>Document A</h1>
        <p>This is the first document.</p>
        <div style='page-break-after: always;'></div>
        <p>Continuation of Document A</p>"
Private secondHtmlContent = "<h1>Document B</h1>
        <p>This is the second document.</p>
        <div style='page-break-after: always;'></div>
        <p>Continuation of Document B</p>"
Private pdfRenderer = New ChromePdfRenderer()
Private pdfDocA = pdfRenderer.RenderHtmlAsPdf(firstHtmlContent)
Private pdfDocB = pdfRenderer.RenderHtmlAsPdf(secondHtmlContent)
Private mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB)
mergedPdf.SaveAs("MergedDocuments.pdf")
VB   C#

Report .NET vs IronPDFの比較: 図10 - 出力PDF: 複数のPDFファイルを生成して1つのPDFに結合する。

PDFドキュメントを分割する

逆に、IronPDFは単一のPDFを分割する複数のドキュメントに分割する。 個々のページまたはセクションを配布したい場合に必要になるかもしれません。

6.1.7 PDFの暗号化と復号化

IronPDFは、PDFドキュメントの暗号化と復号化, 敏感な情報に追加のセキュリティ層を加えます。

using IronPdf;
using System;
var encryptedPdf = PdfDocument.FromFile("protected.pdf", "password");
encryptedPdf.SecuritySettings.RemovePasswordsAndEncryption();
encryptedPdf.SecuritySettings.MakePdfDocumentReadOnly("super-secret-key");
encryptedPdf.Password = "new-password";
encryptedPdf.SaveAs("secured.pdf");
using IronPdf;
using System;
var encryptedPdf = PdfDocument.FromFile("protected.pdf", "password");
encryptedPdf.SecuritySettings.RemovePasswordsAndEncryption();
encryptedPdf.SecuritySettings.MakePdfDocumentReadOnly("super-secret-key");
encryptedPdf.Password = "new-password";
encryptedPdf.SaveAs("secured.pdf");
Imports IronPdf
Imports System
Private encryptedPdf = PdfDocument.FromFile("protected.pdf", "password")
encryptedPdf.SecuritySettings.RemovePasswordsAndEncryption()
encryptedPdf.SecuritySettings.MakePdfDocumentReadOnly("super-secret-key")
encryptedPdf.Password = "new-password"
encryptedPdf.SaveAs("secured.pdf")
VB   C#

6.1.8 ドキュメントのプロパティとメタデータの設定

このライブラリを使用すると、タイトル、著者、およびメタデータなどのドキュメントのプロパティを設定するのは簡単です。 これは文書の管理および整理に役立ちます。

using IronPdf;
using System;
var encryptedPdf = PdfDocument.FromFile("sample.pdf");
pdf.MetaData.Author = "Iron Developer";
pdf.MetaData.Keywords = "Confidential, Private";
pdf.MetaData.ModifiedDate = DateTime.Now;
pdf.SaveAs("modified.pdf");
using IronPdf;
using System;
var encryptedPdf = PdfDocument.FromFile("sample.pdf");
pdf.MetaData.Author = "Iron Developer";
pdf.MetaData.Keywords = "Confidential, Private";
pdf.MetaData.ModifiedDate = DateTime.Now;
pdf.SaveAs("modified.pdf");
Imports IronPdf
Imports System
Private encryptedPdf = PdfDocument.FromFile("sample.pdf")
pdf.MetaData.Author = "Iron Developer"
pdf.MetaData.Keywords = "Confidential, Private"
pdf.MetaData.ModifiedDate = DateTime.Now
pdf.SaveAs("modified.pdf")
VB   C#

6.1.9 PDF/A 準拠

IronPDFはPDF/A 準拠の生成長期保存および記録保持の目的で必要な文書。

6.1.10 IronPDFを使用したXMLレポート

XMLからPDFへの直接変換はIronPDFではサポートされていませんが、有効な方法としては、まずXMLデータをHTML形式に変換することが挙げられます。 これはXSLTを使用して達成されます。(拡張可能スタイルシート変換)XMLドキュメントをHTML、テキスト、あるいは新しいXMLドキュメントなどの他の形式に変換するために設計された強力なXMLスタイルシート言語。 仮にこれが私たちのdata.xmlファイルだとしましょう:

<?xml version="1.0" encoding="UTF-8"?>
<Library>
    <Book id="1">
        <Title>The Great Gatsby</Title>
        <Author>F. Scott Fitzgerald</Author>
        <Genre>Fiction</Genre>
        <Year>1925</Year>
    </Book>
    <Book id="2">
        <Title>To Kill a Mockingbird</Title>
        <Author>Harper Lee</Author>
        <Genre>Fiction</Genre>
        <Year>1960</Year>
    </Book>
    <Book id="3">
        <Title>1984</Title>
        <Author>George Orwell</Author>
        <Genre>Dystopian</Genre>
        <Year>1949</Year>
    </Book>
</Library>
<?xml version="1.0" encoding="UTF-8"?>
<Library>
    <Book id="1">
        <Title>The Great Gatsby</Title>
        <Author>F. Scott Fitzgerald</Author>
        <Genre>Fiction</Genre>
        <Year>1925</Year>
    </Book>
    <Book id="2">
        <Title>To Kill a Mockingbird</Title>
        <Author>Harper Lee</Author>
        <Genre>Fiction</Genre>
        <Year>1960</Year>
    </Book>
    <Book id="3">
        <Title>1984</Title>
        <Author>George Orwell</Author>
        <Genre>Dystopian</Genre>
        <Year>1949</Year>
    </Book>
</Library>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<?xml version="1.0" encoding="UTF-8"?> <Library> <Book id="1"> <Title> The Great Gatsby</Title> <Author> F.Scott Fitzgerald</Author> <Genre> Fiction</Genre> <Year>1925</Year> </Book> <Book id="2"> <Title> @To Kill a Mockingbird</Title> <Author> Harper Lee</Author> <Genre> Fiction</Genre> <Year>1960</Year> </Book> <Book id="3"> <Title>1984</Title> <Author> George Orwell</Author> <Genre> Dystopian</Genre> <Year>1949</Year> </Book> </Library>
VB   C#

そしてこれは私たちのstyle.xsltファイルです:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" doctype-system="about:legacy-compat" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
        <html>
            <head>
                <title>Library Catalog</title>
                <style>
                    body { font-family: Arial, sans-serif; margin: 20px; }
                    table { border-collapse: collapse; width: 100%; }
                    th, td { text-align: left; padding: 8px; }
                    tr:nth-child(even) { background-color: #f2f2f2; }
                    th { background-color: #4CAF50; color: white; }
                </style>
            </head>
            <body>
                <h2>Library Catalog</h2>
                <table>
                    <tr>
                        <th>Title</th>
                        <th>Author</th>
                        <th>Genre</th>
                        <th>Year</th>
                    </tr>
                    <xsl:for-each select="Library/Book">
                        <tr>
                            <td><xsl:value-of select="Title"/></td>
                            <td><xsl:value-of select="Author"/></td>
                            <td><xsl:value-of select="Genre"/></td>
                            <td><xsl:value-of select="Year"/></td>
                        </tr>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" doctype-system="about:legacy-compat" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
        <html>
            <head>
                <title>Library Catalog</title>
                <style>
                    body { font-family: Arial, sans-serif; margin: 20px; }
                    table { border-collapse: collapse; width: 100%; }
                    th, td { text-align: left; padding: 8px; }
                    tr:nth-child(even) { background-color: #f2f2f2; }
                    th { background-color: #4CAF50; color: white; }
                </style>
            </head>
            <body>
                <h2>Library Catalog</h2>
                <table>
                    <tr>
                        <th>Title</th>
                        <th>Author</th>
                        <th>Genre</th>
                        <th>Year</th>
                    </tr>
                    <xsl:for-each select="Library/Book">
                        <tr>
                            <td><xsl:value-of select="Title"/></td>
                            <td><xsl:value-of select="Author"/></td>
                            <td><xsl:value-of select="Genre"/></td>
                            <td><xsl:value-of select="Year"/></td>
                        </tr>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>
'INSTANT VB TODO TASK: The following line could not be converted:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" doctype-system="about:legacy-compat" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> (Of html) (Of head) (Of title) Library Catalog</title> (Of style) body
If True Then
	font-family: Arial, sans-serif
	margin:
	20px
End If
					table
					If True Then
						border-collapse: collapse
						width:
						100 Mod 
					End If
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'					th, td
'					{
'						text-align: left;
'						padding:
'						8px;
'					}
					tr:
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'					nth-child(even)
'					{
'						background-color: #f2f2f2;
'					}
					th
					If True Then
						background-color: #4CAF50
						color:
						white
					End If
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'				</style> </head> <body> <h2> Library Catalog</h2> <table> <tr> <th> Title</th> <th> Author</th> <th> Genre</th> <th> Year</th> </tr> <xsl:for-@each @select="Library/Book"> <tr> <td><xsl:value-@of @select="Title"/></td> <td><xsl:value-@of @select="Author"/></td> <td><xsl:value-@of @select="Genre"/></td> <td><xsl:value-@of @select="Year"/></td> </tr> </xsl:for-@each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
VB   C#

以下は、このロジックにどのようにアプローチするかを示すコードスニペットです:

using System;
using System.Xml.Xsl;
using System.Xml;
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load("style.xslt");
XmlReader reader = XmlReader.Create("data.xml");
XmlWriterSettings settings = new XmlWriterSettings { Indent = true, OmitXmlDeclaration = true };
using (XmlWriter writer = XmlWriter.Create("output.html", settings))
{
    transform.Transform(reader, writer);
}
License.LicenseKey = "Liecense-Key";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("output.html");
pdf.SaveAs("Report.pdf");
using System;
using System.Xml.Xsl;
using System.Xml;
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load("style.xslt");
XmlReader reader = XmlReader.Create("data.xml");
XmlWriterSettings settings = new XmlWriterSettings { Indent = true, OmitXmlDeclaration = true };
using (XmlWriter writer = XmlWriter.Create("output.html", settings))
{
    transform.Transform(reader, writer);
}
License.LicenseKey = "Liecense-Key";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("output.html");
pdf.SaveAs("Report.pdf");
Imports System
Imports System.Xml.Xsl
Imports System.Xml
Private transform As New XslCompiledTransform()
transform.Load("style.xslt")
Dim reader As XmlReader = XmlReader.Create("data.xml")
Dim settings As New XmlWriterSettings With {
	.Indent = True,
	.OmitXmlDeclaration = True
}
Using writer As XmlWriter = XmlWriter.Create("output.html", settings)
	transform.Transform(reader, writer)
End Using
License.LicenseKey = "Liecense-Key"
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlFileAsPdf("output.html")
pdf.SaveAs("Report.pdf")
VB   C#
  1. XSLTスタイルシートを使用して開始します(style.xslt)XMLデータをHTMLとして構造化する方法を指示する。 .NETのXslCompiledTransformクラスは、XSLTファイルを読み込むために使用されます。

  2. XmlReader を使用して XML データを読み込む(data.xml). XmlReaderは、XMLデータに対して前方のみ、読み取り専用のビューを提供するため、この目的に対して効率的です。

  3. 変換されたHTMLはファイルに書き込まれます(output.html(出力.html))XmlWriter を使用して、読みやすさのためにインデントされたHTMLを生成し、HTML出力には不要なXML宣言を省略するように設定します。

  4. HTMLファイルが準備できたら、IronPDFChromePdfRendererを使用してHTMLドキュメントをPDFに変換します。 このレンダラーは高品質のレンダリングエンジンを模倣し、生成されたPDFがHTMLコンテンツを正確に再現することを保証します。

  5. 最後に、PDFドキュメントがファイルシステムに保存されます。(Report.pdf(レポート.pdf)). このステップで変換プロセスが完了し、元のXMLデータから派生したPDFドキュメントが生成されます。

    以下は、XMLとIronPDFを使用してレポートを生成する方法です。 生成する出力PDFファイル:

    レポート.NETとIronPDFの比較: 図11 - IronPDFとXSLTを使用してXMLレポートから出力されたPDFファイル

    SAPインタラクティブレポートをプログラムで作成し、IronPDFを使用して変換することもできます。 詳細なガイドについては、このガイドを参照してくださいC# レポート生成.

レポート.NETの高度な機能 6.2

Report.NET(レポート.NET)は、包括的なPDF生成およびカスタマイズを可能にする高度な機能のスイートを提供します。 画像に記載された機能は、これらの高度な機能の一部を反映しています。 それぞれについて詳しく見てみましょう。

6.2.1 フォントの追加

この機能により、PDFドキュメント内でさまざまなフォントスタイルとサイズを使用することができます。 開発者は、異なるフォントの外観をテストし、テキストが設計仕様に従って正しく表示されることを確認できます。

using Root.Reports;
using System;
using System.Drawing;
namespace ReportSamples {
  public class Test : Report {
    private readonly FontDef fontDef;
    private readonly FontProp fontProp_Title;
    private readonly FontProp fontProp_Label;
    public Test() {
      fontDef = FontDef.FontDefFromName(this, FontDef.StandardFont.Helvetica);
      fontProp_Title = new FontPropMM(fontDef, 6) { Bold = true };
      fontProp_Label = new FontPropMM(fontDef, 4);
    }
    protected override void Create() {
      FontTest();
    }
    private void FontTest() {
      FontProp fp_Title = new FontPropMM(fontDef, 12) { Bold = true };
      FontProp fp = new FontPropMM(fontDef, 6);
      FontProp fp_Small = new FontPropMM(fontDef, 1.4);
      FontProp fp_XSmall = new FontPropMM(fontDef, 0.8);
      Page page_Cur = new Page(this);
      page_Cur.AddCB_MM(30, new RepString(fontProp_Title, "Font Test"));
      Double rX = 300;
      Double rY = 40;
      for (Int32 i = 32; i < 127; i++) {
        PrintCharacter(i, fp, fp_Small, fp_XSmall, rX, rY, page_Cur);
      }
      for (Int32 i = 161; i < 256; i++) {
        PrintCharacter(i, fp, fp_Small, fp_XSmall, rX, rY, page_Cur);
      }
      PrintCharacter('�', fp, fp_Small, fp_XSmall, rX, rY, page_Cur);
    }
    private void PrintCharacter(Int32 iChar, FontProp fp, FontProp fp_Small, FontProp fp_XSmall, Double rX, Double rY, Page page_Cur) {
      if (rX > 185) {
        rY += fp.rLineFeedMM;
        rX = 22;
      }
      if (rY > 280) {
        new Page(this);
        rY = 40;
      }
      Char ch = (Char)iChar;
      String s = ch.ToString();
      page_Cur.AddMM(rX + 2, rY, new RepString(fp, s));
      rX += 15;
    }
  }
}
using Root.Reports;
using System;
using System.Drawing;
namespace ReportSamples {
  public class Test : Report {
    private readonly FontDef fontDef;
    private readonly FontProp fontProp_Title;
    private readonly FontProp fontProp_Label;
    public Test() {
      fontDef = FontDef.FontDefFromName(this, FontDef.StandardFont.Helvetica);
      fontProp_Title = new FontPropMM(fontDef, 6) { Bold = true };
      fontProp_Label = new FontPropMM(fontDef, 4);
    }
    protected override void Create() {
      FontTest();
    }
    private void FontTest() {
      FontProp fp_Title = new FontPropMM(fontDef, 12) { Bold = true };
      FontProp fp = new FontPropMM(fontDef, 6);
      FontProp fp_Small = new FontPropMM(fontDef, 1.4);
      FontProp fp_XSmall = new FontPropMM(fontDef, 0.8);
      Page page_Cur = new Page(this);
      page_Cur.AddCB_MM(30, new RepString(fontProp_Title, "Font Test"));
      Double rX = 300;
      Double rY = 40;
      for (Int32 i = 32; i < 127; i++) {
        PrintCharacter(i, fp, fp_Small, fp_XSmall, rX, rY, page_Cur);
      }
      for (Int32 i = 161; i < 256; i++) {
        PrintCharacter(i, fp, fp_Small, fp_XSmall, rX, rY, page_Cur);
      }
      PrintCharacter('�', fp, fp_Small, fp_XSmall, rX, rY, page_Cur);
    }
    private void PrintCharacter(Int32 iChar, FontProp fp, FontProp fp_Small, FontProp fp_XSmall, Double rX, Double rY, Page page_Cur) {
      if (rX > 185) {
        rY += fp.rLineFeedMM;
        rX = 22;
      }
      if (rY > 280) {
        new Page(this);
        rY = 40;
      }
      Char ch = (Char)iChar;
      String s = ch.ToString();
      page_Cur.AddMM(rX + 2, rY, new RepString(fp, s));
      rX += 15;
    }
  }
}
Imports Root.Reports
Imports System
Imports System.Drawing
Namespace ReportSamples
  Public Class Test
	  Inherits Report

	Private ReadOnly fontDef As FontDef
	Private ReadOnly fontProp_Title As FontProp
	Private ReadOnly fontProp_Label As FontProp
	Public Sub New()
	  fontDef = FontDef.FontDefFromName(Me, FontDef.StandardFont.Helvetica)
	  fontProp_Title = New FontPropMM(fontDef, 6) With {.Bold = True}
	  fontProp_Label = New FontPropMM(fontDef, 4)
	End Sub
	Protected Overrides Sub Create()
	  FontTest()
	End Sub
	Private Sub FontTest()
	  Dim fp_Title As FontProp = New FontPropMM(fontDef, 12) With {.Bold = True}
	  Dim fp As FontProp = New FontPropMM(fontDef, 6)
	  Dim fp_Small As FontProp = New FontPropMM(fontDef, 1.4)
	  Dim fp_XSmall As FontProp = New FontPropMM(fontDef, 0.8)
	  Dim page_Cur As New Page(Me)
	  page_Cur.AddCB_MM(30, New RepString(fontProp_Title, "Font Test"))
	  Dim rX As Double = 300
	  Dim rY As Double = 40
	  For i As Int32 = 32 To 126
		PrintCharacter(i, fp, fp_Small, fp_XSmall, rX, rY, page_Cur)
	  Next i
	  For i As Int32 = 161 To 255
		PrintCharacter(i, fp, fp_Small, fp_XSmall, rX, rY, page_Cur)
	  Next i
	  PrintCharacter(AscW(" "c), fp, fp_Small, fp_XSmall, rX, rY, page_Cur)
	End Sub
	Private Sub PrintCharacter(ByVal iChar As Int32, ByVal fp As FontProp, ByVal fp_Small As FontProp, ByVal fp_XSmall As FontProp, ByVal rX As Double, ByVal rY As Double, ByVal page_Cur As Page)
	  If rX > 185 Then
		rY += fp.rLineFeedMM
		rX = 22
	  End If
	  If rY > 280 Then
		Dim tempVar As New Page(Me)
		rY = 40
	  End If
	  Dim ch As Char = ChrW(iChar)
	  Dim s As String = ch.ToString()
	  page_Cur.AddMM(rX + 2, rY, New RepString(fp, s))
	  rX += 15
	End Sub
  End Class
End Namespace
VB   C#

Report.NET と IronPDF の比較: 図 12 - Report.NET を使用してPDFドキュメントにさまざまなフォントスタイルとサイズを追加する

6.2.2 画像埋め込み

Image Sample機能を使用すると、開発者は画像をPDFドキュメントに埋め込むことができます。 これには、画像のサイズと位置を制御すること、さらに必要に応じて画像に変形や効果を適用することが含まれます。

using Root.Reports;
using System.Drawing;
namespace ReportSamples {
  public class ImageSample : Report {
    protected override void Create() {
      FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica);
      FontProp fp_Title = new FontPropMM(fd, 15) { Bold = true };
      FontProp fp_SubTitle = new FontPropMM(fd, 4) { Bold = true };
      PenProp pp = new PenProp(this, 0.2, Color.FromArgb(235, 235, 235));
      PenProp pp_Black = new PenProp(this, 0.2, Color.Black);
      BrushProp bp = new BrushProp(this, Color.LightGray);
      new Page(this);
      page_Cur.AddCB_MM(40, new RepString(fp_Title, "Image Sample"));
      System.IO.Stream stream = GetType().Assembly.GetManifestResourceStream("ReportSamples.Image.jpg");
      page_Cur.AddMM(20, 90, new RepImageMM(stream, 40, Double.NaN));
      page_Cur.AddMM(20, 95, new RepString(fp_SubTitle, "W = 40mm, H = auto."));
      page_Cur.AddMM(67, 90, new RepImageMM(stream, 40, 20));
      page_Cur.AddMM(67, 95, new RepString(fp_SubTitle, "W = 40mm, H = 20mm"));
      page_Cur.AddMM(114, 90, new RepImageMM(stream, Double.NaN, 30));
      page_Cur.AddMM(114, 95, new RepString(fp_SubTitle, "W = auto., H = 30mm"));
      page_Cur.AddMM(161, 90, new RepImageMM(stream, 30, 30));
      page_Cur.AddMM(161, 95, new RepString(fp_SubTitle, "W = 30mm, H = 30mm"));
    }
  }
}
using Root.Reports;
using System.Drawing;
namespace ReportSamples {
  public class ImageSample : Report {
    protected override void Create() {
      FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica);
      FontProp fp_Title = new FontPropMM(fd, 15) { Bold = true };
      FontProp fp_SubTitle = new FontPropMM(fd, 4) { Bold = true };
      PenProp pp = new PenProp(this, 0.2, Color.FromArgb(235, 235, 235));
      PenProp pp_Black = new PenProp(this, 0.2, Color.Black);
      BrushProp bp = new BrushProp(this, Color.LightGray);
      new Page(this);
      page_Cur.AddCB_MM(40, new RepString(fp_Title, "Image Sample"));
      System.IO.Stream stream = GetType().Assembly.GetManifestResourceStream("ReportSamples.Image.jpg");
      page_Cur.AddMM(20, 90, new RepImageMM(stream, 40, Double.NaN));
      page_Cur.AddMM(20, 95, new RepString(fp_SubTitle, "W = 40mm, H = auto."));
      page_Cur.AddMM(67, 90, new RepImageMM(stream, 40, 20));
      page_Cur.AddMM(67, 95, new RepString(fp_SubTitle, "W = 40mm, H = 20mm"));
      page_Cur.AddMM(114, 90, new RepImageMM(stream, Double.NaN, 30));
      page_Cur.AddMM(114, 95, new RepString(fp_SubTitle, "W = auto., H = 30mm"));
      page_Cur.AddMM(161, 90, new RepImageMM(stream, 30, 30));
      page_Cur.AddMM(161, 95, new RepString(fp_SubTitle, "W = 30mm, H = 30mm"));
    }
  }
}
Imports Root.Reports
Imports System.Drawing
Namespace ReportSamples
  Public Class ImageSample
	  Inherits Report

	Protected Overrides Sub Create()
	  Dim fd As New FontDef(Me, FontDef.StandardFont.Helvetica)
	  Dim fp_Title As FontProp = New FontPropMM(fd, 15) With {.Bold = True}
	  Dim fp_SubTitle As FontProp = New FontPropMM(fd, 4) With {.Bold = True}
	  Dim pp As New PenProp(Me, 0.2, Color.FromArgb(235, 235, 235))
	  Dim pp_Black As New PenProp(Me, 0.2, Color.Black)
	  Dim bp As New BrushProp(Me, Color.LightGray)
	  Dim tempVar As New Page(Me)
	  page_Cur.AddCB_MM(40, New RepString(fp_Title, "Image Sample"))
	  Dim stream As System.IO.Stream = Me.GetType().Assembly.GetManifestResourceStream("Image.jpg")
	  page_Cur.AddMM(20, 90, New RepImageMM(stream, 40, Double.NaN))
	  page_Cur.AddMM(20, 95, New RepString(fp_SubTitle, "W = 40mm, H = auto."))
	  page_Cur.AddMM(67, 90, New RepImageMM(stream, 40, 20))
	  page_Cur.AddMM(67, 95, New RepString(fp_SubTitle, "W = 40mm, H = 20mm"))
	  page_Cur.AddMM(114, 90, New RepImageMM(stream, Double.NaN, 30))
	  page_Cur.AddMM(114, 95, New RepString(fp_SubTitle, "W = auto., H = 30mm"))
	  page_Cur.AddMM(161, 90, New RepImageMM(stream, 30, 30))
	  page_Cur.AddMM(161, 95, New RepString(fp_SubTitle, "W = 30mm, H = 30mm"))
	End Sub
  End Class
End Namespace
VB   C#

Report .NETとIronPDFの比較: 図13 - 出力PDF: Report.NETを使用してPDFドキュメントに画像を埋め込む

6.2.3 リストレイアウトマネージャー

リストレイアウトマネージャーは、PDFドキュメントにリストを追加する方法を提供します。 これは、順序付きリストまたは順序なしリストの作成、リストのインデントや箇条書きスタイルのカスタマイズ、文書内のリスト項目の全体的なレイアウトの管理に役立ちます。

using Root.Reports;
using System.Drawing;
namespace ReportSamples {
  public class ListLayoutManagerSample : Report {
    private Double rMarginLeft = 20;  // millimeters
    private Double rWidth = 175;  // millimeters
    protected override void Create() {
      FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica);
      FontProp fp = new FontPropMM(fd, 1.9);
      Double rY = 40;  // vertical position in millimeters
      new Page(this);
      FontProp fp_Title = new FontPropMM(fd, 8);
      page_Cur.AddCB_MM(rY, new RepString(fp_Title, "List Layout Manager Sample"));
      rY += 18;
      ListLayoutManager llm = null;
      using (llm = new ListLayoutManager(this)) {
        PenProp pp_BorderLine = new PenPropMM(this, 0.4, Color.Blue);
        PenProp pp_GridLine = new PenPropMM(this, 0.1, Color.Blue);
        // Configuration for columns
        TlmColumn col_Number = new TlmColumnMM(llm, 10);
        col_Number.tlmCellDef_Default.rAlignH = RepObj.rAlignCenter;
        col_Number.tlmCellDef_Default.rAlignV = RepObj.rAlignCenter;
        col_Number.tlmCellDef_Default.penProp_LineLeft = pp_BorderLine;
        TlmColumn col_Text = new TlmColumnMM(llm, 100);
        col_Text.tlmCellDef_Default.tlmTextMode = TlmTextMode.MultiLine;
        TlmColumn col_Author = new TlmColumnMM(llm, rWidth - llm.rWidthMM);
        col_Author.tlmCellDef_Default.penProp_LineRight = pp_BorderLine;
        col_Author.tlmCellDef_Default.brushProp_Back = new BrushProp(this, Color.FromArgb(255, 210, 210));
        llm.container_CreateMM(page_Cur, rMarginLeft, rY);  // immediately creates a container
        // Adding rows and content
        // ...
        // Rows and content omitted for brevity
        // ...
      }
      rY += llm.rCurY_MM + 1.5;
      fp.rSizeMM = 1.5;
      page_Cur.AddRT_MM(rMarginLeft + rWidth, rY, new RepString(fp, "End of list"));
    }
  }
}
using Root.Reports;
using System.Drawing;
namespace ReportSamples {
  public class ListLayoutManagerSample : Report {
    private Double rMarginLeft = 20;  // millimeters
    private Double rWidth = 175;  // millimeters
    protected override void Create() {
      FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica);
      FontProp fp = new FontPropMM(fd, 1.9);
      Double rY = 40;  // vertical position in millimeters
      new Page(this);
      FontProp fp_Title = new FontPropMM(fd, 8);
      page_Cur.AddCB_MM(rY, new RepString(fp_Title, "List Layout Manager Sample"));
      rY += 18;
      ListLayoutManager llm = null;
      using (llm = new ListLayoutManager(this)) {
        PenProp pp_BorderLine = new PenPropMM(this, 0.4, Color.Blue);
        PenProp pp_GridLine = new PenPropMM(this, 0.1, Color.Blue);
        // Configuration for columns
        TlmColumn col_Number = new TlmColumnMM(llm, 10);
        col_Number.tlmCellDef_Default.rAlignH = RepObj.rAlignCenter;
        col_Number.tlmCellDef_Default.rAlignV = RepObj.rAlignCenter;
        col_Number.tlmCellDef_Default.penProp_LineLeft = pp_BorderLine;
        TlmColumn col_Text = new TlmColumnMM(llm, 100);
        col_Text.tlmCellDef_Default.tlmTextMode = TlmTextMode.MultiLine;
        TlmColumn col_Author = new TlmColumnMM(llm, rWidth - llm.rWidthMM);
        col_Author.tlmCellDef_Default.penProp_LineRight = pp_BorderLine;
        col_Author.tlmCellDef_Default.brushProp_Back = new BrushProp(this, Color.FromArgb(255, 210, 210));
        llm.container_CreateMM(page_Cur, rMarginLeft, rY);  // immediately creates a container
        // Adding rows and content
        // ...
        // Rows and content omitted for brevity
        // ...
      }
      rY += llm.rCurY_MM + 1.5;
      fp.rSizeMM = 1.5;
      page_Cur.AddRT_MM(rMarginLeft + rWidth, rY, new RepString(fp, "End of list"));
    }
  }
}
Imports Root.Reports
Imports System.Drawing
Namespace ReportSamples
  Public Class ListLayoutManagerSample
	  Inherits Report

	Private rMarginLeft As Double = 20 ' millimeters
	Private rWidth As Double = 175 ' millimeters
	Protected Overrides Sub Create()
	  Dim fd As New FontDef(Me, FontDef.StandardFont.Helvetica)
	  Dim fp As FontProp = New FontPropMM(fd, 1.9)
	  Dim rY As Double = 40 ' vertical position in millimeters
	  Dim tempVar As New Page(Me)
	  Dim fp_Title As FontProp = New FontPropMM(fd, 8)
	  page_Cur.AddCB_MM(rY, New RepString(fp_Title, "List Layout Manager Sample"))
	  rY += 18
	  Dim llm As ListLayoutManager = Nothing
	  llm = New ListLayoutManager(Me)
	  Using llm
		Dim pp_BorderLine As PenProp = New PenPropMM(Me, 0.4, Color.Blue)
		Dim pp_GridLine As PenProp = New PenPropMM(Me, 0.1, Color.Blue)
		' Configuration for columns
		Dim col_Number As TlmColumn = New TlmColumnMM(llm, 10)
		col_Number.tlmCellDef_Default.rAlignH = RepObj.rAlignCenter
		col_Number.tlmCellDef_Default.rAlignV = RepObj.rAlignCenter
		col_Number.tlmCellDef_Default.penProp_LineLeft = pp_BorderLine
		Dim col_Text As TlmColumn = New TlmColumnMM(llm, 100)
		col_Text.tlmCellDef_Default.tlmTextMode = TlmTextMode.MultiLine
		Dim col_Author As TlmColumn = New TlmColumnMM(llm, rWidth - llm.rWidthMM)
		col_Author.tlmCellDef_Default.penProp_LineRight = pp_BorderLine
		col_Author.tlmCellDef_Default.brushProp_Back = New BrushProp(Me, Color.FromArgb(255, 210, 210))
		llm.container_CreateMM(page_Cur, rMarginLeft, rY) ' immediately creates a container
		' Adding rows and content
		' ...
		' Rows and content omitted for brevity
		' ...
	  End Using
	  rY += llm.rCurY_MM + 1.5
	  fp.rSizeMM = 1.5
	  page_Cur.AddRT_MM(rMarginLeft + rWidth, rY, New RepString(fp, "End of list"))
	End Sub
  End Class
End Namespace
VB   C#

レポート.NET と IronPDF の比較: 図14 - 出力PDF: Report.NETを使用してPDFドキュメントにリストを追加

6.2.4 PDFプロパティ

これは、メタデータのようなPDFドキュメント自体のさまざまなプロパティを設定および変更する機能を指します。(著者、タイトル、件名)表示設定、セキュリティ設定(暗号化およびアクセス権限など)。

using Root.Reports;
using System;
namespace ReportSamples {
  public class PdfPropertiesSample : Report {
    public PdfPropertiesSample() {
      PdfFormatter pf = (PdfFormatter)formatter;
      pf.sTitle = "PDF Sample";
      pf.sAuthor = "Otto Mayer, mot@root.ch";
      pf.sSubject = "Sample of some PDF features";
      pf.sKeywords = "Sample PDF RSF";
      pf.sCreator = "RSF Sample Application";
      pf.dt_CreationDate = new DateTime(2002, 8, 15, 0, 0, 0, 0);
      pf.pageLayout = PageLayout.TwoColumnLeft;
      pf.bHideToolBar = true;
      pf.bHideMenubar = false;
      pf.bHideWindowUI = true;
      pf.bFitWindow = true;
      pf.bCenterWindow = true;
      pf.bDisplayDocTitle = true;
    }
    protected override void Create() {
      FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica);
      FontProp fp = new FontPropMM(fd, 4);
      FontProp fp_Title = new FontPropMM(fd, 11);
      fp_Title.bBold = true;
      Page page = new Page(this);
      page.AddCB_MM(40, new RepString(fp_Title, "PDF Properties Sample"));
      fp_Title.rSizeMM = 8;
      page.AddCB_MM(100, new RepString(fp_Title, "First Page"));
      page.AddCB_MM(120, new RepString(fp, "Choose <Document Properties, Summary> from the"));
      page.AddCB_MM(126, new RepString(fp, "File menu to display the document properties"));
      page = new Page(this);
      page.AddCB_MM(100, new RepString(fp_Title, "Second Page"));
    }
  }
}
using Root.Reports;
using System;
namespace ReportSamples {
  public class PdfPropertiesSample : Report {
    public PdfPropertiesSample() {
      PdfFormatter pf = (PdfFormatter)formatter;
      pf.sTitle = "PDF Sample";
      pf.sAuthor = "Otto Mayer, mot@root.ch";
      pf.sSubject = "Sample of some PDF features";
      pf.sKeywords = "Sample PDF RSF";
      pf.sCreator = "RSF Sample Application";
      pf.dt_CreationDate = new DateTime(2002, 8, 15, 0, 0, 0, 0);
      pf.pageLayout = PageLayout.TwoColumnLeft;
      pf.bHideToolBar = true;
      pf.bHideMenubar = false;
      pf.bHideWindowUI = true;
      pf.bFitWindow = true;
      pf.bCenterWindow = true;
      pf.bDisplayDocTitle = true;
    }
    protected override void Create() {
      FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica);
      FontProp fp = new FontPropMM(fd, 4);
      FontProp fp_Title = new FontPropMM(fd, 11);
      fp_Title.bBold = true;
      Page page = new Page(this);
      page.AddCB_MM(40, new RepString(fp_Title, "PDF Properties Sample"));
      fp_Title.rSizeMM = 8;
      page.AddCB_MM(100, new RepString(fp_Title, "First Page"));
      page.AddCB_MM(120, new RepString(fp, "Choose <Document Properties, Summary> from the"));
      page.AddCB_MM(126, new RepString(fp, "File menu to display the document properties"));
      page = new Page(this);
      page.AddCB_MM(100, new RepString(fp_Title, "Second Page"));
    }
  }
}
Imports Root.Reports
Imports System
Namespace ReportSamples
  Public Class PdfPropertiesSample
	  Inherits Report

	Public Sub New()
	  Dim pf As PdfFormatter = CType(formatter, PdfFormatter)
	  pf.sTitle = "PDF Sample"
	  pf.sAuthor = "Otto Mayer, mot@root.ch"
	  pf.sSubject = "Sample of some PDF features"
	  pf.sKeywords = "Sample PDF RSF"
	  pf.sCreator = "RSF Sample Application"
	  pf.dt_CreationDate = New DateTime(2002, 8, 15, 0, 0, 0, 0)
	  pf.pageLayout = PageLayout.TwoColumnLeft
	  pf.bHideToolBar = True
	  pf.bHideMenubar = False
	  pf.bHideWindowUI = True
	  pf.bFitWindow = True
	  pf.bCenterWindow = True
	  pf.bDisplayDocTitle = True
	End Sub
	Protected Overrides Sub Create()
	  Dim fd As New FontDef(Me, FontDef.StandardFont.Helvetica)
	  Dim fp As FontProp = New FontPropMM(fd, 4)
	  Dim fp_Title As FontProp = New FontPropMM(fd, 11)
	  fp_Title.bBold = True
	  Dim page As New Page(Me)
	  page.AddCB_MM(40, New RepString(fp_Title, "PDF Properties Sample"))
	  fp_Title.rSizeMM = 8
	  page.AddCB_MM(100, New RepString(fp_Title, "First Page"))
	  page.AddCB_MM(120, New RepString(fp, "Choose <Document Properties, Summary> from the"))
	  page.AddCB_MM(126, New RepString(fp, "File menu to display the document properties"))
	  page = New Page(Me)
	  page.AddCB_MM(100, New RepString(fp_Title, "Second Page"))
	End Sub
  End Class
End Namespace
VB   C#

6.2.5 テキストからPDF

PDF From Text機能は、PDFにテキストコンテンツを追加およびカスタマイズする際のライブラリの機能を示しています。 これには、テキストの配置、行間、色の設定、および太字や斜体などのテキスト効果の適用が含まれます。

7. ドキュメントとサポート

7.1 IronPDF

IronPDFとして知られており、その広範な詳細なドキュメント. IronPDF は、セットアップ手順、チュートリアル、および API リファレンスを含む、よく整理されたドキュメントセクションを提供します。 ガイドは初心者から経験豊富な開発者まで、必要な情報を迅速に見つけられるように構成されています。 コミュニティ主導のサポートについては、開発者はフォーラムやコミュニティディスカッションに参加することができます。 ここでは、質問をしたり、経験を共有したり、他のユーザーから答えを見つけたりすることができます。

IronPDFは、エンジニアが直接IronPDFチームからサポートを受けることができるチケットシステムを通じて、プロフェッショナルなサポートも提供しています。 このサービスは有料ライセンスの一部である可能性があり、より直接的かつ迅速なサポートを提供します。

7.2 Report.NET

ネットレポート7.2

Report.NET(レポート.NET)オープンソースライブラリであるため、ドキュメントとサポートへのアプローチが異なります。 ドキュメントは商業ライブラリほど詳細ではないかもしれませんが、開始するのに十分であり、一般的なタスクを処理するのに十分です。 ライブラリのドキュメントは、GitHubリポジトリ内またはソースコード内のインラインコメントとして見つけることができます。 必要な情報を見つけるためには、技術的な側面が多く、少し調査が必要なことがあります。

Report.NETは無料でオープンソースのライブラリであるため、正式なプロフェッショナルサポートを提供していません。 開発者はコミュニティの助けに頼るか、より深い問題のためにスペシャリストを雇う必要があるかもしれません。

ライセンスモデル

レポート .NET と IronPDF の比較: 図15 - IronPDF for .NET のライセンス情報

8.1 IronPDFライセンスモデル

IronPDFは、さまざまなライセンスモデル異なる開発およびデプロイメントのニーズに対応し、あらゆる規模のプロジェクトや組織に適したソリューションを提供します。 概要はこちら:

  1. Liteライセンス(749米ドル): これは最も基本的なオプションで、1つの場所で単一のプロジェクトに取り組む個別の開発者に適しています。 電子メールサポートが付属していますが、ロイヤリティフリーの再配布は含まれていません。

  2. Plus License(プラスライセンス)($1,499 USD): 小規模チーム向け、このライセンスは3か所で3つのプロジェクトに取り組む3人の開発者をサポートします。 24時間対応のメールとチャットに加え、電話サポートも含むようにサポートを強化します。

  3. **プロフェッショナルライセンス(2,999米ドル)これはより大規模なチームやプロジェクト向けに設計されており、10の場所にいる10人の開発者が10のプロジェクトに取り組むことができます。 これはすべてのプラスサポートオプションを含み、よりインタラクティブな問題解決のための画面共有サポートを追加します。

  4. 無料試用ライセンス: 評価目的に最適な試用ライセンスIronPDFを無料でお試しいただけます。ただし、これは個人使用を目的としており、生成されたPDFは公開のインターネットや企業のインターネットまたはイントラネットプロジェクトで公開されるべきではありません。

    コアライセンスに加えて、拡張カバレッジのオプションもあります。

    • ロイヤリティーフリーの再配布: IronPDFを含むソフトウェア製品を配布または販売する必要がある場合は、ロイヤリティーフリーの再配布カバレッジが必要です。 これは、SaaSおよびOEM再配布用に$1,499で価格設定されています。
    • 拡張サポートと更新: このアドオンは、継続的な製品アップデートとサポートを受け取ることを保証します。 1年または5年のサポートパッケージからお選びいただけます。5年の方が年間オプションよりお買い得です。

8.2 Report.NET ライセンスモデル

Report.NETは、LGPLライセンスの下で無料配布されています。 LGPL(軽量なGNU一般公衆利用許諾契約書)(Lesser General Public License (LGPL))ユーザーがソフトウェアを実行、研究、共有、および修正することを許可する無料のソフトウェアライセンスです。 ライセンスにより、Report.NETライブラリはオープンソースおよびプロプライエタリソフトウェアの両方で使用することが無料で保証されます。条件として、LGPLライセンスのコード部分が変更されない限り有効です。 それらが変更された場合、その変更は同じライセンスの下で共有されなければなりません。

結論

次の内容を日本語に翻訳してください:

見る時IronPDF以下のコンテンツを日本語に翻訳してください:Report.NET(レポート.NET), 我々は、彼らの能力、提供される機能の範囲、使用の容易さ、サポートサービス、およびライセンス方法など、さまざまな要素を検討しました。

IronPDFは、開発者がHTML、画像、テキストからPDFファイルを作成および編集することを可能にする豊富な機能セットを提供するだけでなく、暗号化、デジタル署名、カスタマイズされたヘッダー/フッターなどの高度な機能を実装することもできます。 異なるライセンスサポートにより、個人の開発者から大規模な企業まで、さまざまな規模のプロジェクトに対応できます。 包括的なドキュメントとプロフェッショナルなサポート体制により、一貫した更新と直接の支援が重要なプロジェクトに適しています。 IronPDFも提供しています無料試用IronPDFの価格は$749からです。

対照的に、Report.NETはPDFドキュメントを生成するのに優れたシンプルなツールです。 そのLGPLライセンスによって、個人および商用プロジェクトの両方で重要な制限なく開発者が利用できるようになっています。 IronPDFほどの構造化されたサポートを提供していないかもしれませんが、Report.NETのオープンソースの性質はコミュニティからの意見や支援を奨励します。

プロジェクトの具体的な要求に応じて、IronPDFReport.NET のどちらを選択するかが決まります。 プロジェクトで詳細なPDFの作成および操作が必要かつプロフェッショナルなサポートが必要な場合、IronPDFが最適な選択肢となるでしょう。

< 以前
CompdfkitとIronPDFの比較
次へ >
C#レポート作成ツール(機能比較)