ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
C#のIEnumerableインターフェイスは.NETフレームワークで最も多用途のツールの一つであり、開発者が非常に柔軟な方法でコレクションを扱うことを可能にします。 と組み合わせるとIronPDFIEnumerableは動的なデータ操作と効率的なPDF生成を可能にし、レポートの作成、データのエクスポート、またはデータベースクエリからのドキュメントの生成といったシナリオに理想的です。
IEnumerableを使用すると、データを遅延処理し、一度に全体のデータセットをメモリにロードすることを避けるため、アプリケーションがスケーラブルでメモリ効率が良い状態を保つことができます。 これは、大規模なデータベーステーブルのような膨大なデータコレクションを扱う大規模アプリケーションに特に役立ちます。
IronPDFは、PDFファイルの作成、編集、管理をプログラムで簡素化するために設計された強力な.NETライブラリです。 HTMLからPDFへの変換、テキスト抽出、PDFの結合など、幅広い機能を提供します。 IronPDFをC#プロジェクトに統合することで、PDFの内部に関する深い専門知識がなくとも、効率的に複雑なPDFタスクを処理できます。
IronPDFは、さまざまなフォーマットをサポートしており、HTMLの生データ、Razorビュー、ASP.NETウェブページ、またはデータ構造から直接PDFを生成することができます。 この柔軟性により、現代のデータ駆動型アプリケーションを構築する開発者にとって必須のツールとなります。
プロジェクトでIronPDFを使用するには、次の手順に従ってください。
Visual Studioで.NETプロジェクトを開きます。
Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
Visual Studioプロジェクト内で、ツール > NuGetパッケージマネージャー > ソリューションのNuGetパッケージの管理 に移動します。
IEnumerable インターフェイスは、列挙可能な要素のシーケンスを表します。 一般的な例としては、配列、リスト、およびLINQクエリの結果があります。 LINQを活用することで、IronPDFでPDFを生成する前に、データをフィルタリング、ソート、およびプロジェクトして希望の形式に変換することができます。
IEnumerable の主要な利点の一つは、結果がアクセスされたときにのみクエリが実行される遅延実行モデルです。 これにより、効率的なデータ操作が可能になり、複雑なワークフローにおける計算負荷が軽減されます。
さらに、そのリストが IEnumerable を実装しているということは、List のような任意のコレクションが
IEnumerableを実装した従業員のリストがあり、それをPDF形式のテーブルとしてエクスポートする必要があると想像してください。 IEnumerableとIronPDFを使用することで、イテレータメソッドを使ってデータを反復処理し、整然としたPDFに変換できます。
プレゼンテーションを向上させるために、データに基づいて行と列を動的にスタイルするために、インラインCSSを用いたHTMLテーブルを使用できます。 これにより、PDF出力が機能的でありながら視覚的にも魅力的であることが保証されます。
LINQを使用すると、データをIronPDFに渡す前にフィルタリングおよび変換することができます。 たとえば、アクティブな従業員のみをフィルタリングし、名前を PDF 出力用に大文字でフォーマットすることができます。
var activeEmployees = employees.Where(e => e.IsActive).Select(e => new {
Name = e.Name.ToUpper(),
Position = e.Position,
Age = e.Age
});
var activeEmployees = employees.Where(e => e.IsActive).Select(e => new {
Name = e.Name.ToUpper(),
Position = e.Position,
Age = e.Age
});
Dim activeEmployees = employees.Where(Function(e) e.IsActive).Select(Function(e) New With {
Key .Name = e.Name.ToUpper(),
Key .Position = e.Position,
Key .Age = e.Age
})
この変換されたデータは、その後、レンダリングのためにPDFフレンドリーなHTMLフォーマットに変換できます。
コレクションクラスの各レコードに対して個別のPDFを生成する必要がある場合は、foreachループを使用して反復処理を行い、個々のPDFを動的に生成できます。 これは特に請求書、証明書、または個別のレポートを作成するのに役立ちます。
foreach (var employee in employees)
{
string html = $"<h1>{employee.Name}</h1><p>Position: {employee.Position}</p><p>Age: {employee.Age}</p>";
var pdf = Renderer.RenderHtmlAsPdf(html);
pdf.SaveAs($"{employee.Name}_Report.pdf");
}
foreach (var employee in employees)
{
string html = $"<h1>{employee.Name}</h1><p>Position: {employee.Position}</p><p>Age: {employee.Age}</p>";
var pdf = Renderer.RenderHtmlAsPdf(html);
pdf.SaveAs($"{employee.Name}_Report.pdf");
}
For Each employee In employees
Dim html As String = $"<h1>{employee.Name}</h1><p>Position: {employee.Position}</p><p>Age: {employee.Age}</p>"
Dim pdf = Renderer.RenderHtmlAsPdf(html)
pdf.SaveAs($"{employee.Name}_Report.pdf")
Next employee
C#では、拡張メソッドは、ソースコードを変更せずに既存の型に機能を追加する強力な方法です。 IEnumerableやListに対して操作を効率化するための拡張メソッドを作成することができます。
例えば、列挙可能なコレクションから最初の要素を取得する拡張メソッドを作成しましょう。
public static class EnumerableExtensions
{
public static T FirstOrDefaultElement<T>(this IEnumerable<T> collection)
{
return collection?.FirstOrDefault();
}
}
public static class EnumerableExtensions
{
public static T FirstOrDefaultElement<T>(this IEnumerable<T> collection)
{
return collection?.FirstOrDefault();
}
}
Public Module EnumerableExtensions
<System.Runtime.CompilerServices.Extension> _
Public Function FirstOrDefaultElement(Of T)(ByVal collection As IEnumerable(Of T)) As T
Return collection?.FirstOrDefault()
End Function
End Module
まず、プロジェクトをセットアップし、IronPDFとChromePdfRendererクラスを初期化します。
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
Imports IronPdf
Private renderer As New ChromePdfRenderer()
列挙可能なデータをHTML文字列として準備します。
var employees = new List<Employee>
{
new Employee { Name = "John Doe", Position = "Developer", Age = 30 },
new Employee { Name = "Jane Smith", Position = "Designer", Age = 25 }
};
string html = "<table style='width:100%; border: 1px solid black;'>" +
"<tr><th>Name</th><th>Position</th><th>Age</th></tr>";
foreach (var employee in employees)
{
html += $"<tr><td>{employee.Name}</td><td>{employee.Position}</td><td>{employee.Age}</td></tr>";
}
html += "</table>";
var employees = new List<Employee>
{
new Employee { Name = "John Doe", Position = "Developer", Age = 30 },
new Employee { Name = "Jane Smith", Position = "Designer", Age = 25 }
};
string html = "<table style='width:100%; border: 1px solid black;'>" +
"<tr><th>Name</th><th>Position</th><th>Age</th></tr>";
foreach (var employee in employees)
{
html += $"<tr><td>{employee.Name}</td><td>{employee.Position}</td><td>{employee.Age}</td></tr>";
}
html += "</table>";
Dim employees = New List(Of Employee) From {
New Employee With {
.Name = "John Doe",
.Position = "Developer",
.Age = 30
},
New Employee With {
.Name = "Jane Smith",
.Position = "Designer",
.Age = 25
}
}
Dim html As String = "<table style='width:100%; border: 1px solid black;'>" & "<tr><th>Name</th><th>Position</th><th>Age</th></tr>"
For Each employee In employees
html &= $"<tr><td>{employee.Name}</td><td>{employee.Position}</td><td>{employee.Age}</td></tr>"
Next employee
html &= "</table>"
HTMLをPDFに変換する:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("Employees.pdf");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("Employees.pdf");
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("Employees.pdf")
C# の Enumerable クラスを IronPDF と一緒に使用して PDF ファイルを生成する方法を詳しく見てきたので、次にこれらのツールを使用して新しい動的な PDF ドキュメントを生成する完全なサンプルコードを見てみましょう。
using System;
using System.Collections.Generic;
using System.Linq;
using IronPdf;
public class Employee
{
public string Name { get; set; }
public string Position { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main(string[] args)
{
// Sample employee data
var employees = new List<Employee>
{
new Employee { Name = "John Doe", Position = "Developer", Age = 30 },
new Employee { Name = "Jane Smith", Position = "Designer", Age = 25 },
new Employee { Name = "Sam Wilson", Position = "Manager", Age = 35 }
};
// Filter and sort data using LINQ
var filteredEmployees = employees
.Where(e => e.Age >= 25)
.OrderBy(e => e.Name)
.ToList();
// Generate HTML for the PDF
string html = "<h1 style='text-align:center;'>Employee Report</h1>" +
"<table style='width:100%; border-collapse: collapse;'>" +
"<tr style='background-color: #f2f2f2;'>" +
"<th style='border: 1px solid black; padding: 8px;'>Name</th>" +
"<th style='border: 1px solid black; padding: 8px;'>Position</th>" +
"<th style='border: 1px solid black; padding: 8px;'>Age</th></tr>";
foreach (var employee in filteredEmployees)
{
html += $"<tr>" +
$"<td style='border: 1px solid black; padding: 8px;'>{employee.Name}</td>" +
$"<td style='border: 1px solid black; padding: 8px;'>{employee.Position}</td>" +
$"<td style='border: 1px solid black; padding: 8px;'>{employee.Age}</td>" +
$"</tr>";
}
html += "</table>";
// Initialize ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the HTML to PDF
try
{
var pdf = renderer.RenderHtmlAsPdf(html);
string outputPath = "EmployeeReport.pdf";
pdf.SaveAs(outputPath);
Console.WriteLine($"PDF generated successfully at: {outputPath}");
}
catch (Exception ex)
{
Console.WriteLine($"Error generating PDF: {ex.Message}");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using IronPdf;
public class Employee
{
public string Name { get; set; }
public string Position { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main(string[] args)
{
// Sample employee data
var employees = new List<Employee>
{
new Employee { Name = "John Doe", Position = "Developer", Age = 30 },
new Employee { Name = "Jane Smith", Position = "Designer", Age = 25 },
new Employee { Name = "Sam Wilson", Position = "Manager", Age = 35 }
};
// Filter and sort data using LINQ
var filteredEmployees = employees
.Where(e => e.Age >= 25)
.OrderBy(e => e.Name)
.ToList();
// Generate HTML for the PDF
string html = "<h1 style='text-align:center;'>Employee Report</h1>" +
"<table style='width:100%; border-collapse: collapse;'>" +
"<tr style='background-color: #f2f2f2;'>" +
"<th style='border: 1px solid black; padding: 8px;'>Name</th>" +
"<th style='border: 1px solid black; padding: 8px;'>Position</th>" +
"<th style='border: 1px solid black; padding: 8px;'>Age</th></tr>";
foreach (var employee in filteredEmployees)
{
html += $"<tr>" +
$"<td style='border: 1px solid black; padding: 8px;'>{employee.Name}</td>" +
$"<td style='border: 1px solid black; padding: 8px;'>{employee.Position}</td>" +
$"<td style='border: 1px solid black; padding: 8px;'>{employee.Age}</td>" +
$"</tr>";
}
html += "</table>";
// Initialize ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the HTML to PDF
try
{
var pdf = renderer.RenderHtmlAsPdf(html);
string outputPath = "EmployeeReport.pdf";
pdf.SaveAs(outputPath);
Console.WriteLine($"PDF generated successfully at: {outputPath}");
}
catch (Exception ex)
{
Console.WriteLine($"Error generating PDF: {ex.Message}");
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports IronPdf
Public Class Employee
Public Property Name() As String
Public Property Position() As String
Public Property Age() As Integer
End Class
Public Class Program
Public Shared Sub Main(ByVal args() As String)
' Sample employee data
Dim employees = New List(Of Employee) From {
New Employee With {
.Name = "John Doe",
.Position = "Developer",
.Age = 30
},
New Employee With {
.Name = "Jane Smith",
.Position = "Designer",
.Age = 25
},
New Employee With {
.Name = "Sam Wilson",
.Position = "Manager",
.Age = 35
}
}
' Filter and sort data using LINQ
Dim filteredEmployees = employees.Where(Function(e) e.Age >= 25).OrderBy(Function(e) e.Name).ToList()
' Generate HTML for the PDF
Dim html As String = "<h1 style='text-align:center;'>Employee Report</h1>" & "<table style='width:100%; border-collapse: collapse;'>" & "<tr style='background-color: #f2f2f2;'>" & "<th style='border: 1px solid black; padding: 8px;'>Name</th>" & "<th style='border: 1px solid black; padding: 8px;'>Position</th>" & "<th style='border: 1px solid black; padding: 8px;'>Age</th></tr>"
For Each employee In filteredEmployees
html &= $"<tr>" & $"<td style='border: 1px solid black; padding: 8px;'>{employee.Name}</td>" & $"<td style='border: 1px solid black; padding: 8px;'>{employee.Position}</td>" & $"<td style='border: 1px solid black; padding: 8px;'>{employee.Age}</td>" & $"</tr>"
Next employee
html &= "</table>"
' Initialize ChromePdfRenderer
Dim renderer As New ChromePdfRenderer()
' Render the HTML to PDF
Try
Dim pdf = renderer.RenderHtmlAsPdf(html)
Dim outputPath As String = "EmployeeReport.pdf"
pdf.SaveAs(outputPath)
Console.WriteLine($"PDF generated successfully at: {outputPath}")
Catch ex As Exception
Console.WriteLine($"Error generating PDF: {ex.Message}")
End Try
End Sub
End Class
このC#プログラムは、IronPDFライブラリを使用してフィルタリングされた従業員データのPDFレポートを生成するように設計されています。 上記のコードは、個々の従業員の記録を表す、名前、役職、および年齢のプロパティを持つEmployeeクラスを定義することから始まります。
異なる名前、職位、年齢を持つ3つのEmployeeオブジェクトから成るサンプル従業員データのリストが作成されています。 プログラムは次にLINQを使用してこのリストをフィルタリングし、25歳以上の従業員のみを選択し、名前順にアルファベットで並べ替えます。 このフィルタリングおよびソートされたリストは、filteredEmployees 変数に格納されます。
次に、プログラムはPDFを生成するために使用されるHTML文字列を構築します。 それは見出しと表の構造から始まり、「名前」、「役職」、および「年齢」の列ヘッダーを定義します。 その後、フィルタリングされた従業員リストをループし、各従業員の情報に基づいてテーブル行を動的に生成します。 生成されたHTMLは、IronPDFを使用してPDFを作成するために使用されます。ChromePdfRenderer(クロームPDFレンダラー).
上記の例は、効果的に使用方法を示しています。IronPDF動的に生成されたHTMLからPDFを生成し、LINQのデータをフィルタリングおよびソートする機能を示し、PDF生成プロセス中に例外を優雅に処理します。
LINQを使用してデータのフィルタリングと変換を最適化します。 例えば:
var filteredEmployees = employees.Where(e => e.Age > 25).OrderBy(e => e.Name);
var filteredEmployees = employees.Where(e => e.Age > 25).OrderBy(e => e.Name);
Dim filteredEmployees = employees.Where(Function(e) e.Age > 25).OrderBy(Function(e) e.Name)
LINQメソッドを効果的に連鎖させることで、冗長な操作を最小限に抑えます。 これは、大規模なデータセットを扱う際に、特にパフォーマンスを向上させます。
大規模なデータセットの場合、メモリのオーバーヘッドを避けるためにデータを小さなチャンクにストリーミングすることを検討してください。 yield returnを利用して、非ジェネリックコレクションデータを遅延生成し、メモリの効率的な使用を確保します。
IEnumerable<Employee> GetEmployees() {
foreach (var employee in database.GetAllEmployees()) {
yield return employee;
}
}
IEnumerable<Employee> GetEmployees() {
foreach (var employee in database.GetAllEmployees()) {
yield return employee;
}
}
Private Iterator Function GetEmployees() As IEnumerable(Of Employee)
For Each employee In database.GetAllEmployees()
Yield employee
Next employee
End Function
PDF生成ロジックをtry-catchブロックでラップして、エラーを優雅に処理します。
try
{
var pdf = Renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
catch (IronPdf.Exceptions.PdfException ex)
{
Console.WriteLine($"PDF Error: {ex.Message}");
}
catch (Exception ex)
{
Console.WriteLine($"General Error: {ex.Message}");
}
try
{
var pdf = Renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
catch (IronPdf.Exceptions.PdfException ex)
{
Console.WriteLine($"PDF Error: {ex.Message}");
}
catch (Exception ex)
{
Console.WriteLine($"General Error: {ex.Message}");
}
Try
Dim pdf = Renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
Catch ex As IronPdf.Exceptions.PdfException
Console.WriteLine($"PDF Error: {ex.Message}")
Catch ex As Exception
Console.WriteLine($"General Error: {ex.Message}")
End Try
エラーをログに記録し、ユーザーフレンドリーなフィードバックを提供することは、アプリケーションの堅牢性を大幅に向上させることができます。
C#のIEnumerableとの統合IronPDFプログラムによってプロフェッショナルなPDFを生成するための効率的で柔軟な方法を提供します。 IEnumerableを活用することで、データの変換やフォーマットを効率化できるだけでなく、IronPDFの豊富な機能セットを利用して高品質なドキュメントを生成することができます。 データレポートのエクスポート、請求書の作成、または個別化コンテンツの生成を行う場合でも、この組み合わせはスケーラビリティ、パフォーマンス、使いやすさを保証します。
私たちは開発者に、IronPDFのより高度な機能、例えばマルチメディアの埋め込みやPDFのセキュリティ強化を探索し、ドキュメント自動化のワークフローをさらに向上させることを推奨します。 追加の知見、チュートリアル、サポートについては、以下を参照してください。IronPDF ドキュメント.
10 の .NET API 製品 オフィス文書用