ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
この記事では、PDFファイルを扱うために使用される2つの人気のあるC#ライブラリについて詳しく見ていきます:IronPDF - C#開発者のための.NET PDFライブラリ。以下のコンテンツを日本語に翻訳してください:Report.NET(レポート.NET). これらのツールは、C#アプリケーションを通じてPDFドキュメントを作成、修正、または操作する必要がある開発者にとって不可欠です。 両方のライブラリはPDFの取り扱いをより簡単かつ効率的にするためのさまざまな機能を提供しますが、それぞれ異なる方法で実現します。
IronPDFとReport.NETを使用すると、開発者は動的にドキュメントを生成し、コンテンツを編集し、PDFからテキストや画像を取得することができます。 また、フォーム処理、デジタル署名の追加、アプリケーションがプラットフォーム間でPDFを扱う際に文書の完全性を損なわないようにすることもサポートしています。 これにより、デバイスやオペレーティングシステムに関係なく、PDFは意図した通りに表示され、機能することが保証されます。
この比較を通して、各ライブラリが提供する具体的な機能、それらの動作方法、使用例を示すコードスニペット、およびライセンス条件について詳しく解説します。 この比較は、各ライブラリの機能を開発者に明確に理解してもらい、プロジェクトの要件に最適なものを選択する際の助けとなることを目的としています。 では、開発者向けにIronPDFとReport.NETの機能と違いを、簡潔かつ実践的な観点から説明していきましょう。
Report.NET(レポート.NET)は、.NETアプリケーション内でPDFドキュメントを直接作成・管理・操作するために開発者をサポートする強力なC#ライブラリです。 このツールは、PDFの生成および操作における簡潔なアプローチで知られており、ゼロから複雑なPDF文書を作成したり、既存のPDFを修正したりすることができます。 その機能は単純なテキストの追加から画像や図形の組み込みまで幅広く、プロジェクトにPDF機能を実装しようとする開発者にとって多用途な選択肢となります。
Report.NETは、新しいPDFドキュメントの作成および既存のドキュメントの編集において優れています。 開発者は、テキスト、画像、およびグラフィックスを簡単に追加でき、詳細で視覚的に魅力的なドキュメントを作成することができます。
このライブラリは、テキストの書式設定、画像の配置、グラフィック要素など、ドキュメントの内容を正確に制御することができます。 このレベルのコントロールにより、最終的なPDFが意図どおりの外観になります。
シンプルさに重点を置いて、Report.NETはPDF生成プロセスを簡素化し、プログラミングの文脈でPDFを扱うことに不慣れな人々でもアクセス可能にしています。
Report.NETは、.NET Coreを含む.NETプラットフォーム全体でシームレスに動作するように設計されており、アプリケーションがオペレーティングシステムに関係なくPDFを生成および管理できるようにします。
このライブラリはPDFドキュメントの広範なカスタマイズオプションを提供しており、開発者がレイアウト、スタイル、全体的な外観を調整して、特定のニーズに合わせることができます。
オープンソースツールとして、Report.NETはコミュニティからの貢献を受けているため、常に最新の状態が保たれ、新しい機能も追加され続けます。このコミュニティのサポートにより、開発者は豊富な知識とリソースにアクセスできることを意味します。
IronPDFは、.NETアプリケーション内でPDF文書の作成、操作、およびレンダリングを支援するために作られた包括的な.NETライブラリです。 このツールは、HTMLからのPDF生成と既存のPDFファイルの直接編集の両方を処理できる点で際立っています。 レポートの作成に非常に役立ちます。 IronPDFは、SQL Server Reporting Servicesともスムーズに統合されます。 IronPDFを使用して、レポート作成ツールとレポートビューアを作成するエンドユーザーレポートデザイナーを作成できます。
IronPDFの主な強みの一つは、その変換能力です。HTMLおよびCSSをPDFドキュメントに変換する. この機能は、元のデザインとレイアウトを保持しながらウェブコンテンツをポータブルな形式に変換しようとしている開発者にとって非常に貴重です。
IronPDFは、開発者にPDFドキュメントを編集および操作するためのツールを提供することに優れています。 これには、ページの追加や削除、テキストの修正が含まれます。画像の埋め込み. IronPDFを使用してレポートからレポートデータを抽出することもできます。
ライブラリは作成および編集をサポートしていますPDF フォーム, ユーザーが動的にドキュメントとやり取りできるようにします。 この機能は、アンケートやアプリケーションフォームなど、エンドユーザーからの入力が必要なアプリケーションにとって重要です。
IronPDFを使用すると、暗号化などのセキュリティ対策の実装やパスワード保護簡単です。 これらの機能により、PDFドキュメント内の機密情報が不正アクセスから安全に保たれます。
IronPDFは、開発者が画面上での表示および物理印刷高品質な出力を両方のケースで確保しながら。 これにより、さまざまなプレゼンテーションや配布のニーズに合わせてドキュメントを準備することが容易になります。
IronPDFは、さまざまな.NETプラットフォームで動作し、.NETコード標準に準拠しており、互換性の問題なく多様な環境での開発を容易にします。
IronPDFは支持されています詳細なドキュメントライブラリの機能を効率的にアプリケーションに統合できるように、開発者を支援する専用サポートを提供します。
IronPDFは、多くの高度な編集機能を提供します。 これには能力が含まれますマージおよび分割ドキュメントから特定のセクションを抽出して別々に利用するために、特に大量の情報を整理するのに便利なPDFドキュメント。
ライブラリは、以下のことを可能にしますヘッダーのカスタマイズおよびPDFドキュメント内のフッター。 この機能は、ページ全体に一貫したブランド、ページ番号、またはドキュメントタイトルを追加するために不可欠であり、出力のプロの外観を向上させます。
Visual Studio IDEでコンソールアプリケーションを作成することは、いくつかのステップで構成される簡単なプロセスです。
Microsoft Visual Studioを開くことから始めます。 インストールされていない場合は、ダウンロードしてインストールする必要があります。公式Microsoftウェブサイト. インストールした後、Visual Studio を起動します。
Visual Studio を開くと、スタートウィンドウが表示されます。 ここで、「新しいプロジェクトを作成」オプションを選択して、新しいコンソールアプリケーションのセットアップを開始します。
「新しいプロジェクトを作成」ウィンドウでは、さまざまなプロジェクトテンプレートが表示されます。 検索ボックスに「console」と入力してオプションをフィルタリングし、リストから「Console App」を選択します。使用したいプログラミング言語に対応するテンプレート(例:C#)を必ず選択してください。
コンソールアプリテンプレートを選択したら、「次へ」をクリックしてプロジェクト構成画面に進みます。 ここでは、プロジェクトに関する詳細を提供する必要があります。
プロジェクト名: プロジェクトの目的を反映した意義のある名前を付けてください。
ソリューション名: デフォルトでは、これはプロジェクト名と同じですが、同じソリューションに複数のプロジェクトを含める予定がある場合は変更することができます。
必要な情報をすべて入力した後、「作成」ボタンをクリックしてください。 Visual Studio は、指定に基づいて新しいコンソール アプリケーション プロジェクトを生成します。 このプロセスにはしばらく時間がかかる場合があります。
IronPDFの機能をプロジェクトで活用するためには、まずライブラリをインストールする必要があります。これを実現するための方法は複数あり、開発ワークフローや好みに応じて適した方法を選ぶことができます。 以下は、IronPDFライブラリをVisual Studioプロジェクトにインストールするための3つの一般的な方法です。
Visual Studio の NuGet パッケージ マネージャー UI は、パッケージを閲覧、選択、およびインストールするための簡単な方法を提供します。
Visual Studio で、Solution Explorer 内のプロジェクトに移動し、右クリックして「Manage NuGet Packages...」オプションを選択します。
「ブラウズ」タブをクリックし、検索ボックスに「IronPDF」と入力してください。
検索結果でIronPDFパッケージを見つけ、それを選択し、「インストール」ボタンをクリックしてください。 Visual Studio は、ダウンロードとインストールを自動的に処理します。
コマンドラインツールを好む方にとって、NuGetパッケージマネージャーコンソールは強力な代替手段です。
コンソールを開く: Visual Studio の「ツール」メニューに移動し、「NuGet パッケージマネージャー」>「パッケージマネージャーコンソール」に進みます。
Install-Package IronPdf
このコマンドは、NuGetに最新バージョンのIronPDFをプロジェクトにダウンロードしてインストールするように指示します。
パッケージを手動でダウンロードしたい場合や特定のバージョンのIronPDFが必要な場合は、NuGetウェブサイトが良い選択肢です。
Visit the NuGet Website: 次のURLにアクセスしてくださいnuget.org「IronPDF」を検索します。
パッケージをダウンロード: IronPDFページ使用するバージョンを選択し、.nupkgファイルをダウンロードしてください。
ウェブブラウザを開き、Report.NET GitHubリポジトリ(https://github.com/ritchiecarroll/Report.NET/tree/master)にアクセスしてください。 このページには、最新バージョンのReport.NETソースコード付きのライブラリ。
リポジトリのページで「Code」ボタンを見つけてクリックしてください。 ドロップダウンメニューから「Download ZIP」を選択して、リポジトリ全体をZIPファイルとしてダウンロードします。このファイルをコンピュータの便利な場所に保存し、内容を展開してください。
ZIPファイルを抽出した後、抽出されたファイルの中にReport.NETライブラリのソースコードが見つかります。 Visual StudioプロジェクトでReport.NETを使用するには、次の手順に従ってください。
プロジェクトを開く: Visual Studio を起動し、Report.NETを追加したいプロジェクトを開きます。
ライブラリを手動で追加する: プロジェクトにライブラリを含める方法はいくつかあります:
IronPDF幅広いPDF関連のタスクを容易に処理するために設計された高度な機能が一式備わっています。
IronPDFは、CSSやJavaScriptを含むHTMLコンテンツを取り込み、直接PDFドキュメントにレンダリングすることができます。 これは、ウェブページや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")
同様に、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")
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")
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")
このライブラリはテキストと画像を抽出するCrystal Reportsのように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")
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")
逆に、IronPDFは単一の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")
このライブラリを使用すると、タイトル、著者、およびメタデータなどのドキュメントのプロパティを設定するのは簡単です。 これは文書の管理および整理に役立ちます。
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")
IronPDFはPDF/A 準拠の生成長期保存および記録保持の目的で必要な文書。
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>
そしてこれは私たちの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>
以下は、このロジックにどのようにアプローチするかを示すコードスニペットです:
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")
XSLTスタイルシートを使用して開始します(style.xslt)XMLデータをHTMLとして構造化する方法を指示する。 .NETのXslCompiledTransformクラスは、XSLTファイルを読み込むために使用されます。
XmlReader を使用して XML データを読み込む(data.xml). XmlReaderは、XMLデータに対して前方のみ、読み取り専用のビューを提供するため、この目的に対して効率的です。
変換されたHTMLはファイルに書き込まれます(output.html(出力.html))XmlWriter を使用して、読みやすさのためにインデントされたHTMLを生成し、HTML出力には不要なXML宣言を省略するように設定します。
HTMLファイルが準備できたら、IronPDFのChromePdfRendererを使用してHTMLドキュメントをPDFに変換します。 このレンダラーは高品質のレンダリングエンジンを模倣し、生成されたPDFがHTMLコンテンツを正確に再現することを保証します。
最後に、PDFドキュメントがファイルシステムに保存されます。(Report.pdf(レポート.pdf)). このステップで変換プロセスが完了し、元のXMLデータから派生したPDFドキュメントが生成されます。
以下は、XMLとIronPDFを使用してレポートを生成する方法です。 生成する出力PDFファイル:
SAPインタラクティブレポートをプログラムで作成し、IronPDFを使用して変換することもできます。 詳細なガイドについては、このガイドを参照してくださいC# レポート生成.
Report.NET(レポート.NET)は、包括的なPDF生成およびカスタマイズを可能にする高度な機能のスイートを提供します。 画像に記載された機能は、これらの高度な機能の一部を反映しています。 それぞれについて詳しく見てみましょう。
この機能により、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
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
リストレイアウトマネージャーは、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
これは、メタデータのような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
PDF From Text機能は、PDFにテキストコンテンツを追加およびカスタマイズする際のライブラリの機能を示しています。 これには、テキストの配置、行間、色の設定、および太字や斜体などのテキスト効果の適用が含まれます。
IronPDFとして知られており、その広範な詳細なドキュメント. IronPDF は、セットアップ手順、チュートリアル、および API リファレンスを含む、よく整理されたドキュメントセクションを提供します。 ガイドは初心者から経験豊富な開発者まで、必要な情報を迅速に見つけられるように構成されています。 コミュニティ主導のサポートについては、開発者はフォーラムやコミュニティディスカッションに参加することができます。 ここでは、質問をしたり、経験を共有したり、他のユーザーから答えを見つけたりすることができます。
IronPDFは、エンジニアが直接IronPDFチームからサポートを受けることができるチケットシステムを通じて、プロフェッショナルなサポートも提供しています。 このサービスは有料ライセンスの一部である可能性があり、より直接的かつ迅速なサポートを提供します。
ネットレポート7.2
Report.NET(レポート.NET)オープンソースライブラリであるため、ドキュメントとサポートへのアプローチが異なります。 ドキュメントは商業ライブラリほど詳細ではないかもしれませんが、開始するのに十分であり、一般的なタスクを処理するのに十分です。 ライブラリのドキュメントは、GitHubリポジトリ内またはソースコード内のインラインコメントとして見つけることができます。 必要な情報を見つけるためには、技術的な側面が多く、少し調査が必要なことがあります。
Report.NETは無料でオープンソースのライブラリであるため、正式なプロフェッショナルサポートを提供していません。 開発者はコミュニティの助けに頼るか、より深い問題のためにスペシャリストを雇う必要があるかもしれません。
IronPDFは、さまざまなライセンスモデル異なる開発およびデプロイメントのニーズに対応し、あらゆる規模のプロジェクトや組織に適したソリューションを提供します。 概要はこちら:
Liteライセンス(749米ドル): これは最も基本的なオプションで、1つの場所で単一のプロジェクトに取り組む個別の開発者に適しています。 電子メールサポートが付属していますが、ロイヤリティフリーの再配布は含まれていません。
Plus License(プラスライセンス)($1,499 USD): 小規模チーム向け、このライセンスは3か所で3つのプロジェクトに取り組む3人の開発者をサポートします。 24時間対応のメールとチャットに加え、電話サポートも含むようにサポートを強化します。
**プロフェッショナルライセンス(2,999米ドル)これはより大規模なチームやプロジェクト向けに設計されており、10の場所にいる10人の開発者が10のプロジェクトに取り組むことができます。 これはすべてのプラスサポートオプションを含み、よりインタラクティブな問題解決のための画面共有サポートを追加します。
無料試用ライセンス: 評価目的に最適な試用ライセンスIronPDFを無料でお試しいただけます。ただし、これは個人使用を目的としており、生成されたPDFは公開のインターネットや企業のインターネットまたはイントラネットプロジェクトで公開されるべきではありません。
コアライセンスに加えて、拡張カバレッジのオプションもあります。
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のオープンソースの性質はコミュニティからの意見や支援を奨励します。
プロジェクトの具体的な要求に応じて、IronPDF と Report.NET のどちらを選択するかが決まります。 プロジェクトで詳細なPDFの作成および操作が必要かつプロフェッショナルなサポートが必要な場合、IronPDFが最適な選択肢となるでしょう。
9つの .NET API製品 オフィス文書用