フッターコンテンツにスキップ
IRONPDFの使用

.NETでPDFファイルをマージする方法

IronPDF は、書式設定、CSS、 JavaScriptを保持する Chrome ベースのレンダリング エンジンを使用して、 ASP.NET Coreで HTML から PDF へのシームレスな変換を可能にします。これは、最新の Web アプリケーションで請求書、レポート、ダウンロード可能なドキュメントを生成するために不可欠です。

動的な HTML を PDF ドキュメントに変換することは、最新のASP.NETアプリケーションの基本要件です。 請求書を生成する場合、レポートを作成する場合、ダウンロード可能なファイルを作成する場合など、HTML コンテンツをプロフェッショナルな PDF に変換することは、洗練されたユーザー エクスペリエンスを提供するために不可欠です。

IronPDF は、HTML フォーマット、CSS スタイル、およびJavaScript機能を結果のドキュメントに完全に保持する強力なChrome ベースのレンダリング エンジンを提供することで、この変換プロセスを簡素化します。 このチュートリアルでは、 IronPDFライブラリを使用してASP.NET Coreアプリケーションで HTML を PDF に変換する効果的な方法について説明します。

なぜ開発者はHTMLからPDFへの変換が必要なのですか?

ASP.NET Coreアプリケーションは、ユーザーが PDF としてダウンロード、共有、またはアーカイブする必要がある動的な HTML コンテンツを生成することがよくあります。 HTMLをPDFに変換することには、単にウェブページを保存したりスクリーンショットを撮ったりすることに比べていくつかの重要な利点があります。

PDF では、すべてのデバイスとプラットフォームで一貫した書式が維持されるため、Windows、Mac、モバイル デバイスのいずれで請求書を表示しても同じ外観になります。 デジタル署名セキュリティ設定、またはプロフェッショナルな印刷を必要とするドキュメントに最適です。 サーバー側での変換により、ユーザーは特定のソフトウェアをインストールする必要がなくなり、最終出力をより適切に制御できるようになります。

一般的な使用例には、ダッシュボード データからの財務レポートの生成、注文情報からダウンロード可能な請求書の作成、 QR コード付きのチケットやパスの作成、フォーム送信の永久記録への変換などがあります。 サーバー上で変換を処理することで、ユーザーのブラウザやデバイスの機能に関係なく、一貫した結果が得られます。 PDF/A アーカイブ形式により、ドキュメントの長期保存が保証され、 PDF 圧縮によりファイル サイズが縮小され、効率的な保存と転送が可能になります。

このサーバーサイドのアプローチは、DevOpsエンジニアにとってコンテナ化されたデプロイメントCI/CDパイプラインとシームレスに統合され、異なる環境での信頼性の高いPDF生成を保証します。 パフォーマンス最適化機能により、本番環境でのリソースの効率的な利用が可能になります。 Azure デプロイ ガイドAWS Lambda 統合では、プラットフォーム固有の最適化戦略が提供されます。

IronPDFのインストールはどのように機能しますか?

ASP.NET CoreプロジェクトでIronPDFを始めるのは簡単です。 このライブラリは、 .NET Core 2.0 以降と.NET 5、6、7、8 をサポートしており、すべての最新のASP.NET Coreアプリケーションと互換性があります。 コンテナ化された環境の場合、 IronPDF は公式の Docker サポートを提供します。 インストールの概要では、すべての展開シナリオがカバーされています。

最も速いインストール方法は何ですか?

IronPDF をプロジェクトに追加する最も簡単な方法は、Visual Studio のNuGetパッケージ マネージャーを使用することです。 ソリューションエクスプローラーでプロジェクトを右クリックし、"NuGetパッケージの管理"を選択し、IronPDFを検索します。 最新バージョンをインストールしてプロジェクトに追加します。 詳細なインストール手順については、 IronPDFインストール ガイドを参照してください。 代替方法としては、 Windows インストーラーまたは高度なNuGet構成の使用があります。

Install-Package IronPdf

コンテナ化されたデプロイメントの場合、初期デプロイメント サイズを削減するIronPdf.Slim パッケージを使用します。

dotnet add package IronPdf.Slim

このアプローチは、パッケージ サイズの制約が重要なAWS Lambda デプロイメントまたはAzure Functionsに役立ちます。 ネイティブ エンジンとリモート エンジンの比較は、最適な展開戦略を選択するのに役立ちます。

どの名前空間が必要ですか?

インストール後、PDF生成で作業するC#ファイルにIronPDF名前空間を追加します。

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

このインポート文は、HTML変換用のChromePdfRendererクラスを含むIronPDFのすべての機能にアクセスを提供し、出力をカスタマイズするためのさまざまな設定オプションを含みます。 API リファレンスには、利用可能なすべてのクラスとメソッドに関する包括的なドキュメントが提供されています。

どのような構成オプションを設定すればよいですか?

ほとんどのASP.NET Coreアプリケーションでは、追加の設定なしでインストール直後にIronPDFが機能します。 ただし、Startup.csファイルでグローバルオプションを設定できます。

// Optional: Configure IronPDF settings
Installation.TempFolderPath = @"C:\Temp\IronPdf\";
Installation.LinuxAndDockerDependenciesAutoConfig = true;

// Configure license key for production
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Optional: Configure IronPDF settings
Installation.TempFolderPath = @"C:\Temp\IronPdf\";
Installation.LinuxAndDockerDependenciesAutoConfig = true;

// Configure license key for production
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Optional: Configure IronPDF settings
Installation.TempFolderPath = "C:\Temp\IronPdf\"
Installation.LinuxAndDockerDependenciesAutoConfig = True

' Configure license key for production
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

これらの構成オプションは、 WindowsLinux 、または Docker コンテナーのいずれで実行されているかに関係なく、特定のホスティング環境に合わせてIronPDF を最適化するのに役立ちます。 競合を防ぐため、スクリプト ファイルとアプリケーション ファイルが同じディレクトリを共有しないようにしてください。 ライセンス キー ガイドでは適切なライセンス構成について説明しており、展開の問題のトラブルシューティングは一般的な問題の解決に役立ちます。

実稼働環境では、PDF 生成サービスを監視するためにヘルスチェック エンドポイントを追加することを検討してください。

// Add health checks for monitoring
services.AddHealthChecks()
    .AddCheck("pdf-service", () =>
    {
        try
        {
            var renderer = new ChromePdfRenderer();
            var test = renderer.RenderHtmlAsPdf("<p>Health Check</p>");
            return HealthCheckResult.Healthy();
        }
        catch (Exception ex)
        {
            return HealthCheckResult.Unhealthy(ex.Message);
        }
    });
// Add health checks for monitoring
services.AddHealthChecks()
    .AddCheck("pdf-service", () =>
    {
        try
        {
            var renderer = new ChromePdfRenderer();
            var test = renderer.RenderHtmlAsPdf("<p>Health Check</p>");
            return HealthCheckResult.Healthy();
        }
        catch (Exception ex)
        {
            return HealthCheckResult.Unhealthy(ex.Message);
        }
    });
' Add health checks for monitoring
services.AddHealthChecks() _
    .AddCheck("pdf-service", Function() 
        Try
            Dim renderer = New ChromePdfRenderer()
            Dim test = renderer.RenderHtmlAsPdf("<p>Health Check</p>")
            Return HealthCheckResult.Healthy()
        Catch ex As Exception
            Return HealthCheckResult.Unhealthy(ex.Message)
        End Try
    End Function)
$vbLabelText   $csharpLabel

Kubernetes デプロイメントの場合、サービスの可用性を確保するために準備プローブと稼働プローブを実装します。 パフォーマンス アシスタンス ガイドでは、追加の最適化戦略が提供されます。

HTML 文字列を PDF に変換するにはどうすればよいですか?

IronPDFの最も基本的な操作は、 HTML 文字列を PDF ドキュメントに直接変換することです。 このアプローチは、 ASP.NETアプリケーションで HTML コンテンツを動的に構築する場合やテンプレートを操作する場合に最適です。 包括的なチュートリアルでは、高度なシナリオをカバーしています。

// Create a PDF converter instance
var renderer = new ChromePdfRenderer();
// Convert HTML string to PDF document
var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " + DateTime.Now + "</p>");
// Save the resultant PDF document to a file
pdf.SaveAs("report.pdf");
// Create a PDF converter instance
var renderer = new ChromePdfRenderer();
// Convert HTML string to PDF document
var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " + DateTime.Now + "</p>");
// Save the resultant PDF document to a file
pdf.SaveAs("report.pdf");
' Create a PDF converter instance
Dim renderer = New ChromePdfRenderer()
' Convert HTML string to PDF document
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " & DateTime.Now & "</p>")
' Save the resultant PDF document to a file
pdf.SaveAs("report.pdf")
$vbLabelText   $csharpLabel

このコードは新しいChromePdfRendererインスタンスを作成し、HTMLコンテンツをレンダリングするためにChromiumエンジンを使用します。 PdfDocumentオブジェクトを返します。 その後、このドキュメントをディスクに保存したり、バイト配列としてユーザーに直接ストリーミングしたりできます。 ChromePdfRenderer クラスとその機能について詳しく学びます。 PDF 作成ガイドでは、追加の作成方法が提供されています。

同時実行性の高い本番環境では、適切なリソース管理を実装します。

// Implement using statement for proper disposal
using (var renderer = new ChromePdfRenderer())
{
    // Configure for optimal performance
    renderer.RenderingOptions.CreatePdfFormsFromHtml = false;
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    renderer.RenderingOptions.PrintHtmlBackgrounds = true;

    var pdf = renderer.RenderHtmlAsPdf(htmlContent);

    // Use memory stream for better resource management
    using (var ms = new MemoryStream())
    {
        pdf.SaveAs(ms);
        return ms.ToArray();
    }
}
// Implement using statement for proper disposal
using (var renderer = new ChromePdfRenderer())
{
    // Configure for optimal performance
    renderer.RenderingOptions.CreatePdfFormsFromHtml = false;
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    renderer.RenderingOptions.PrintHtmlBackgrounds = true;

    var pdf = renderer.RenderHtmlAsPdf(htmlContent);

    // Use memory stream for better resource management
    using (var ms = new MemoryStream())
    {
        pdf.SaveAs(ms);
        return ms.ToArray();
    }
}
Imports IronPdf
Imports System.IO

' Implement Using block for proper disposal
Using renderer As New ChromePdfRenderer()
    ' Configure for optimal performance
    renderer.RenderingOptions.CreatePdfFormsFromHtml = False
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
    renderer.RenderingOptions.PrintHtmlBackgrounds = True

    Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)

    ' Use memory stream for better resource management
    Using ms As New MemoryStream()
        pdf.SaveAs(ms)
        Return ms.ToArray()
    End Using
End Using
$vbLabelText   $csharpLabel

メモリ ストリーム ガイドでは、効率的なメモリ内 PDF 処理について説明します。 非同期操作の場合は、非同期レンダリング メソッドを使用してスループットを向上させます。

CSS と画像はどのように処理されるのでしょうか?

IronPDF はCSS スタイルを完全にサポートしており、さまざまなソースから画像を埋め込むことができます。 コンバーターは、さまざまなタグや画像 URLなど、すべての要素を完全な忠実度で処理します。 SVG グラフィック サポートにより、ベクター画像が完璧にレンダリングされます。

var html = @"
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        .highlight { background-color: #f1c40f; padding: 5px; }
    </style>
    <h1>Monthly Report</h1>
    <p>This HTML document includes <span class='highlight'>highlighted text</span> and styling.</p>
    <img src='data:image/png;base64,iVBORw0KGgoAAAANS...' alt='Logo' />";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
var html = @"
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        .highlight { background-color: #f1c40f; padding: 5px; }
    </style>
    <h1>Monthly Report</h1>
    <p>This HTML document includes <span class='highlight'>highlighted text</span> and styling.</p>
    <img src='data:image/png;base64,iVBORw0KGgoAAAANS...' alt='Logo' />";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
Dim html As String = "
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        .highlight { background-color: #f1c40f; padding: 5px; }
    </style>
    <h1>Monthly Report</h1>
    <p>This HTML document includes <span class='highlight'>highlighted text</span> and styling.</p>
    <img src='data:image/png;base64,iVBORw0KGgoAAAANS...' alt='Logo' />"
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
$vbLabelText   $csharpLabel

レンダラーは、インライン スタイル、CSS ファイル、さらにはbase64 でエンコードされた画像も処理します。 これにより、フレックスボックスやグリッド レイアウトなどの最新の CSS3 機能を含む、HTML コンテンツの正確な外観がページで維持されます。 変換では、空白ページが生成されることなく、すべてのタグとスタイルが保持されます。 Google Fontsを含むWeb フォントとアイコン フォントが完全にサポートされています。

コンテナ化された環境では、外部リソースがアクセス可能または埋め込まれていることを確認します。

// Configure base URL for resource loading
renderer.RenderingOptions.BaseUrl = new Uri("___PROTECTED_URL_105___");

// Or embed resources using data URIs for self-contained PDFs
var htmlWithEmbeddedResources = @"
    <style>
        @font-face {
            font-family: 'CustomFont';
            src: url(data:font/woff2;base64,...) format('woff2');
        }
    </style>";
// Configure base URL for resource loading
renderer.RenderingOptions.BaseUrl = new Uri("___PROTECTED_URL_105___");

// Or embed resources using data URIs for self-contained PDFs
var htmlWithEmbeddedResources = @"
    <style>
        @font-face {
            font-family: 'CustomFont';
            src: url(data:font/woff2;base64,...) format('woff2');
        }
    </style>";
' Configure base URL for resource loading
renderer.RenderingOptions.BaseUrl = New Uri("___PROTECTED_URL_105___")

' Or embed resources using data URIs for self-contained PDFs
Dim htmlWithEmbeddedResources As String = "
    <style>
        @font-face {
            font-family: 'CustomFont';
            src: url(data:font/woff2;base64,...) format('woff2');
        }
    </style>"
$vbLabelText   $csharpLabel

ベース URL ガイドでは、適切なアセット参照戦略について説明します。 国際言語のサポートについては、適切な UTF-8 エンコードを確保してください。

ASP.NET Coreビューを PDF に変換するにはどうすればよいですか?

ASP.NET Coreビュー全体を PDF に変換することは、特に既存のテンプレートに基づいてレポートを生成する場合によく行われます。 IronPDF は、単一ページまたは複数ページのどちらを扱う場合でも、このシナリオに対していくつかのアプローチを提供します。 CSHTML から PDF へのチュートリアルでは、フレームワーク固有の実装について説明します。

MVC ビューを変換するにはどうすればよいですか?

ASP.NET Coreコントローラーで、ビューを HTML にレンダリングし、IronPDF の強力なレンダリング機能を使用して PDF に変換します。

[HttpGet]
public async Task<IActionResult> DownloadPdf()
{
    var invoiceModel = new InvoiceModel
    {
        InvoiceNumber = 12345,
        Date = DateTime.Now,
        CustomerName = "Acme Corporation",
        Items = new List<InvoiceItem>
        {
            new InvoiceItem { Description = "Service", Quantity = 1, Price = 100.0 }
        },
        Total = 100.0
    };
    // Render the view to HTML string
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);
    // Convert HTML to PDF
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    // Return PDF to browser
    var contentType = "application/pdf";
    var fileName = $"invoice_{DateTime.Now:yyyyMMdd}.pdf";
    return File(pdf.BinaryData, contentType, fileName);
}
private async Task<string> RenderViewToString(string viewName, object model)
{
    ViewData.Model = model;
    using (var writer = new StringWriter())
    {
        var viewResult = viewEngine.FindView(ControllerContext, viewName, false);
        var viewContext = new ViewContext(
            ControllerContext,
            viewResult.View,
            ViewData,
            TempData,
            writer,
            new HtmlHelperOptions()
        );
        await viewResult.View.RenderAsync(viewContext);
        return writer.GetStringBuilder().ToString();
    }
}
[HttpGet]
public async Task<IActionResult> DownloadPdf()
{
    var invoiceModel = new InvoiceModel
    {
        InvoiceNumber = 12345,
        Date = DateTime.Now,
        CustomerName = "Acme Corporation",
        Items = new List<InvoiceItem>
        {
            new InvoiceItem { Description = "Service", Quantity = 1, Price = 100.0 }
        },
        Total = 100.0
    };
    // Render the view to HTML string
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);
    // Convert HTML to PDF
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    // Return PDF to browser
    var contentType = "application/pdf";
    var fileName = $"invoice_{DateTime.Now:yyyyMMdd}.pdf";
    return File(pdf.BinaryData, contentType, fileName);
}
private async Task<string> RenderViewToString(string viewName, object model)
{
    ViewData.Model = model;
    using (var writer = new StringWriter())
    {
        var viewResult = viewEngine.FindView(ControllerContext, viewName, false);
        var viewContext = new ViewContext(
            ControllerContext,
            viewResult.View,
            ViewData,
            TempData,
            writer,
            new HtmlHelperOptions()
        );
        await viewResult.View.RenderAsync(viewContext);
        return writer.GetStringBuilder().ToString();
    }
}
Imports System
Imports System.Collections.Generic
Imports System.IO
Imports System.Threading.Tasks
Imports Microsoft.AspNetCore.Mvc

<HttpGet>
Public Async Function DownloadPdf() As Task(Of IActionResult)
    Dim invoiceModel = New InvoiceModel With {
        .InvoiceNumber = 12345,
        .Date = DateTime.Now,
        .CustomerName = "Acme Corporation",
        .Items = New List(Of InvoiceItem) From {
            New InvoiceItem With {.Description = "Service", .Quantity = 1, .Price = 100.0}
        },
        .Total = 100.0
    }
    ' Render the view to HTML string
    Dim htmlContent = Await RenderViewToString("Invoice", invoiceModel)
    ' Convert HTML to PDF
    Dim renderer = New ChromePdfRenderer()
    Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
    ' Return PDF to browser
    Dim contentType = "application/pdf"
    Dim fileName = $"invoice_{DateTime.Now:yyyyMMdd}.pdf"
    Return File(pdf.BinaryData, contentType, fileName)
End Function

Private Async Function RenderViewToString(viewName As String, model As Object) As Task(Of String)
    ViewData.Model = model
    Using writer = New StringWriter()
        Dim viewResult = viewEngine.FindView(ControllerContext, viewName, False)
        Dim viewContext = New ViewContext(
            ControllerContext,
            viewResult.View,
            ViewData,
            TempData,
            writer,
            New HtmlHelperOptions()
        )
        Await viewResult.View.RenderAsync(viewContext)
        Return writer.GetStringBuilder().ToString()
    End Using
End Function
$vbLabelText   $csharpLabel

この方法では、まずRazorビューを HTML 文字列にレンダリングし、次にそれを PDF に変換します。 PDF は適切なファイル名でファイルのダウンロードとしてユーザーのブラウザに返されます。 これは、 ASPX ファイルと最新のRazorビューの両方でシームレスに動作します。 Razor Pagesの場合は、専用のレンダリング方法を使用します。 MVC フレームワーク ガイドでは、古いバージョンのASP.NETについて説明します。

実稼働環境では、サーバーの負荷を軽減するためにキャッシュを実装します。

private readonly IMemoryCache _cache;

[HttpGet]
public async Task<IActionResult> DownloadCachedPdf(int invoiceId)
{
    var cacheKey = $"invoice_pdf_{invoiceId}";

    if (!_cache.TryGetValue(cacheKey, out byte[] pdfBytes))
    {
        // Generate PDF if not cached
        var htmlContent = await RenderViewToString("Invoice", model);
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdfBytes = pdf.BinaryData;

        // Cache for 1 hour
        _cache.Set(cacheKey, pdfBytes, TimeSpan.FromHours(1));
    }

    return File(pdfBytes, "application/pdf", $"invoice_{invoiceId}.pdf");
}
private readonly IMemoryCache _cache;

[HttpGet]
public async Task<IActionResult> DownloadCachedPdf(int invoiceId)
{
    var cacheKey = $"invoice_pdf_{invoiceId}";

    if (!_cache.TryGetValue(cacheKey, out byte[] pdfBytes))
    {
        // Generate PDF if not cached
        var htmlContent = await RenderViewToString("Invoice", model);
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdfBytes = pdf.BinaryData;

        // Cache for 1 hour
        _cache.Set(cacheKey, pdfBytes, TimeSpan.FromHours(1));
    }

    return File(pdfBytes, "application/pdf", $"invoice_{invoiceId}.pdf");
}
Imports System
Imports System.Threading.Tasks
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.Extensions.Caching.Memory

Private ReadOnly _cache As IMemoryCache

<HttpGet>
Public Async Function DownloadCachedPdf(invoiceId As Integer) As Task(Of IActionResult)
    Dim cacheKey = $"invoice_pdf_{invoiceId}"
    Dim pdfBytes As Byte() = Nothing

    If Not _cache.TryGetValue(cacheKey, pdfBytes) Then
        ' Generate PDF if not cached
        Dim htmlContent = Await RenderViewToString("Invoice", model)
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
        pdfBytes = pdf.BinaryData

        ' Cache for 1 hour
        _cache.Set(cacheKey, pdfBytes, TimeSpan.FromHours(1))
    End If

    Return File(pdfBytes, "application/pdf", $"invoice_{invoiceId}.pdf")
End Function
$vbLabelText   $csharpLabel

ヘッドレス レンダリング ガイドでは、バックグラウンド サービスに最適な GUI コンテキストなしで PDF を生成する方法を説明します。

外部 URL を変換できますか?

既存の Web ページの場合は、 IronPDFを使用して任意のURL を直接 PDF に変換します。 HTTP または HTTPS アドレスを入力するだけです。

[HttpGet]
public IActionResult GeneratePdfFromUrl()
{
    var renderer = new ChromePdfRenderer();
    // Convert a specified URL to PDF document
    var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_106___");
    // Stream the PDF file to the browser
    return File(pdf.BinaryData, "application/pdf", "invoice.pdf");
}
[HttpGet]
public IActionResult GeneratePdfFromUrl()
{
    var renderer = new ChromePdfRenderer();
    // Convert a specified URL to PDF document
    var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_106___");
    // Stream the PDF file to the browser
    return File(pdf.BinaryData, "application/pdf", "invoice.pdf");
}
<HttpGet>
Public Function GeneratePdfFromUrl() As IActionResult
    Dim renderer = New ChromePdfRenderer()
    ' Convert a specified URL to PDF document
    Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_106___")
    ' Stream the PDF file to the browser
    Return File(pdf.BinaryData, "application/pdf", "invoice.pdf")
End Function
$vbLabelText   $csharpLabel

この方法は、既に適切にフォーマットされた Web ページがあり、それをダウンロード可能な PDF として提供したい場合に適しています。 ライブラリは、スタイルシート、スクリプト、画像などのすべての外部リソースを処理し、完全なレンダリングを保証します。 コンバーターは、無効な URL に遭遇した場合、適切な HTTP ステータス コードを返します。 JavaScript を多用するページの場合は、適切なレンダリング遅延を構成します。

コンテナ化された環境では、ネットワーク設定を適切に構成します。

// Configure for Docker/Kubernetes environments
renderer.RenderingOptions.Timeout = 60000; // 60 second timeout
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor = new WaitFor()
{
    RenderDelay = 500, // Wait 500ms after page load
    NetworkIdle = IronPdf.Engines.Chrome.NetworkIdle.NetworkIdle2
};
// Configure for Docker/Kubernetes environments
renderer.RenderingOptions.Timeout = 60000; // 60 second timeout
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor = new WaitFor()
{
    RenderDelay = 500, // Wait 500ms after page load
    NetworkIdle = IronPdf.Engines.Chrome.NetworkIdle.NetworkIdle2
};
' Configure for Docker/Kubernetes environments
renderer.RenderingOptions.Timeout = 60000 ' 60 second timeout
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitFor = New WaitFor() With {
    .RenderDelay = 500, ' Wait 500ms after page load
    .NetworkIdle = IronPdf.Engines.Chrome.NetworkIdle.NetworkIdle2
}
$vbLabelText   $csharpLabel

レンダリング オプション ガイドには、包括的な構成の詳細が記載されています。 WebGL コンテンツの場合は、GPU アクセラレーションを有効にします。

認証されたページをどのように処理しますか?

.NETフォーム認証またはその他のセキュリティ メカニズムを使用して認証されたページを変換する場合は、ユーザー セッションを維持するために Cookie またはヘッダーを渡します。 これにより、変換中にログイン画面へのリダイレクトが防止されます。

var renderer = new ChromePdfRenderer();
// Set cookies for authenticated requests with user database credentials
renderer.RenderingOptions.CustomCookies.Add("auth_token", Request.Cookies["auth_token"]);
// Convert protected web pages to PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_107___");
var renderer = new ChromePdfRenderer();
// Set cookies for authenticated requests with user database credentials
renderer.RenderingOptions.CustomCookies.Add("auth_token", Request.Cookies["auth_token"]);
// Convert protected web pages to PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_107___");
Dim renderer As New ChromePdfRenderer()
' Set cookies for authenticated requests with user database credentials
renderer.RenderingOptions.CustomCookies.Add("auth_token", Request.Cookies("auth_token"))
' Convert protected web pages to PDF
Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_107___")
$vbLabelText   $csharpLabel

これにより、セキュリティを維持しながら、保護されたコンテンツを PDF に変換できるようになります。 変換プロセスでは、アプリケーションの基本認証とフォーム認証が尊重され、機密文書への不正アクセスが防止されます。 必要に応じて、基本認証シナリオのためにユーザー名とパスワードの引数を渡すこともできます。 Cookie 管理ガイドでは、高度な Cookie 処理について説明します。 Kerberos認証の場合は、適切な資格情報を設定します。

マイクロサービス アーキテクチャの場合は、サービス間認証を検討してください。

// Add service authentication headers
renderer.RenderingOptions.ExtraHttpHeaders.Add("X-Service-Token", GetServiceToken());
renderer.RenderingOptions.ExtraHttpHeaders.Add("X-Request-ID", Activity.Current?.Id);

// Configure for internal service mesh
renderer.RenderingOptions.BaseUrl = new Uri("___PROTECTED_URL_108___");
// Add service authentication headers
renderer.RenderingOptions.ExtraHttpHeaders.Add("X-Service-Token", GetServiceToken());
renderer.RenderingOptions.ExtraHttpHeaders.Add("X-Request-ID", Activity.Current?.Id);

// Configure for internal service mesh
renderer.RenderingOptions.BaseUrl = new Uri("___PROTECTED_URL_108___");
' Add service authentication headers
renderer.RenderingOptions.ExtraHttpHeaders.Add("X-Service-Token", GetServiceToken())
renderer.RenderingOptions.ExtraHttpHeaders.Add("X-Request-ID", Activity.Current?.Id)

' Configure for internal service mesh
renderer.RenderingOptions.BaseUrl = New Uri("___PROTECTED_URL_108___")
$vbLabelText   $csharpLabel

PDF 出力をカスタマイズするにはどうすればいいですか?

IronPDF は、HTML からドキュメントを生成する方法を制御するための広範なカスタマイズ オプションを提供します。 これらの設定は、ページレイアウトと書式設定の特定の要件を満たすプロフェッショナルな PDF を作成するのに役立ちます。 レンダリング設定の例は、実用的な実装を示しています。

ページレイアウトを制御するにはどうすればいいですか?

var renderer = new ChromePdfRenderer();
// Set default page size for PDF pages
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
// Control page width and margins for the resultant PDF document
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
var renderer = new ChromePdfRenderer();
// Set default page size for PDF pages
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
// Control page width and margins for the resultant PDF document
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
Dim renderer As New ChromePdfRenderer()
' Set default page size for PDF pages
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
' Control page width and margins for the resultant PDF document
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20
$vbLabelText   $csharpLabel

これらの設定は、ページの物理的なレイアウトを制御します。 標準の用紙サイズを選択したり、カスタム寸法を定義したり、縦向きまたは横向きを設定したり、デザイン要件に合わせて余白を調整したりできます。 グラフィック テンプレート システムにより、すべてのページで一貫したスタイルが確保されます。 ページ区切りの場合は、CSS プロパティを使用してコンテンツの流れを制御します。

レスポンシブデザインの考慮事項:

// Configure viewport for mobile-friendly PDFs
renderer.RenderingOptions.ViewportWidth = 1024;
renderer.RenderingOptions.ViewportHeight = 768;
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.FitToPaperMode = FitToPaperModes.Zoom;
renderer.RenderingOptions.Zoom = 100;
// Configure viewport for mobile-friendly PDFs
renderer.RenderingOptions.ViewportWidth = 1024;
renderer.RenderingOptions.ViewportHeight = 768;
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.FitToPaperMode = FitToPaperModes.Zoom;
renderer.RenderingOptions.Zoom = 100;
' Configure viewport for mobile-friendly PDFs
renderer.RenderingOptions.ViewportWidth = 1024
renderer.RenderingOptions.ViewportHeight = 768
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
renderer.RenderingOptions.FitToPaperMode = FitToPaperModes.Zoom
renderer.RenderingOptions.Zoom = 100
$vbLabelText   $csharpLabel

ビューポート設定ガイドでは、様々なコンテンツタイプに最適な設定について説明しています。グレースケール出力の場合は、適切なレンダリングオプションを有効にしてください。

ヘッダーとフッターを追加するにはどうすればよいですか?

一貫したヘッダーとフッターを追加すると、ドキュメントのプロフェッショナルな外観が向上します。

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align: center'>Company Report</div>",
    MaxHeight = 20
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align: center'>Page {page} of {total-pages}</div>",
    MaxHeight = 20
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align: center'>Company Report</div>",
    MaxHeight = 20
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align: center'>Page {page} of {total-pages}</div>",
    MaxHeight = 20
};
Imports System

renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
    .HtmlFragment = "<div style='text-align: center'>Company Report</div>",
    .MaxHeight = 20
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
    .HtmlFragment = "<div style='text-align: center'>Page {page} of {total-pages}</div>",
    .MaxHeight = 20
}
$vbLabelText   $csharpLabel

ヘッダーとフッターは、すべてのページのページ番号、日付、その他の動的コンテンツ用の特別なプレースホルダーを使用して HTML 形式をサポートします。 次のコードは、生成されたドキュメントにプロフェッショナルなヘッダーを追加する方法を示しています。 HTML ヘッダー ガイドには、高度な書式設定オプションが表示されます。 テキストのみのヘッダーの場合は、よりシンプルな API メソッドを使用します。

動的コンテンツを含む高度なヘッダー/フッター構成の場合:

// Create dynamic headers with metadata
var headerHtml = $@"
    <div style='display: flex; justify-content: space-between; font-size: 10px;'>
        <span>Generated: {DateTime.UtcNow:yyyy-MM-dd HH:mm} UTC</span>
        <span>Environment: {Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}</span>
    </div>";

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = headerHtml,
    MaxHeight = 30,
    DrawDividerLine = true
};
// Create dynamic headers with metadata
var headerHtml = $@"
    <div style='display: flex; justify-content: space-between; font-size: 10px;'>
        <span>Generated: {DateTime.UtcNow:yyyy-MM-dd HH:mm} UTC</span>
        <span>Environment: {Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}</span>
    </div>";

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = headerHtml,
    MaxHeight = 30,
    DrawDividerLine = true
};
' Create dynamic headers with metadata
Dim headerHtml = $"
    <div style='display: flex; justify-content: space-between; font-size: 10px;'>
        <span>Generated: {DateTime.UtcNow:yyyy-MM-dd HH:mm} UTC</span>
        <span>Environment: {Environment.GetEnvironmentVariable(""ASPNETCORE_ENVIRONMENT"")}</span>
    </div>"

renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
    .HtmlFragment = headerHtml,
    .MaxHeight = 30,
    .DrawDividerLine = True
}
$vbLabelText   $csharpLabel

特定のページのヘッダー ガイドでは、条件付きヘッダー/フッターの適用方法を説明します。

Docker デプロイメントのベストプラクティスとは何ですか?

コンテナ化された環境にIronPDFを展開するには、最適なパフォーマンスと信頼性を確保するための特別な考慮が必要です。 以下は本番環境対応の Dockerfile の例です。

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

# Install IronPDF Linux dependencies
RUN apt-get update && apt-get install -y \
    libgdiplus \
    libx11-6 \
    libxcomposite1 \
    libxdamage1 \
    libxext6 \
    libxfixes3 \
    libxrandr2 \
    libxrender1 \
    libxtst6 \
    fonts-liberation \
    libnss3 \
    libatk-bridge2.0-0 \
    libdrm2 \
    libxkbcommon0 \
    libgbm1 \
    libasound2 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY ["YourProject.csproj", "."]
RUN dotnet restore
COPY . .
RUN dotnet build -c Release -o /app/build

FROM build AS publish
RUN dotnet publish -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .

# Set IronPDF temp folder for container environment
ENV IRONPDF_TEMP_FOLDER=/tmp/ironpdf

ENTRYPOINT ["dotnet", "YourProject.dll"]

Docker 統合ガイドには、完全なデプロイメント手順が記載されています。 コンテナのサイズを最小限に抑えるには、マルチステージ ビルドを使用します。 Linux 導入ガイドでは、プラットフォーム固有の依存関係について説明します。

Kubernetes デプロイメントの場合、適切なリソース制限を構成します。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: pdf-service
spec:
  replicas: 3
  template:
    spec:
      containers:
      - name: pdf-generator
        image: your-registry/pdf-service:latest
        resources:
          requests:
            memory: "512Mi"
            cpu: "500m"
          limits:
            memory: "2Gi"
            cpu: "2000m"
        env:
        - name: IRONPDF_LICENSE_KEY
          valueFrom:
            secretKeyRef:
              name: ironpdf-license
              key: key
        livenessProbe:
          httpGet:
            path: /health
            port: 80
          initialDelaySeconds: 30
          periodSeconds: 10
apiVersion: apps/v1
kind: Deployment
metadata:
  name: pdf-service
spec:
  replicas: 3
  template:
    spec:
      containers:
      - name: pdf-generator
        image: your-registry/pdf-service:latest
        resources:
          requests:
            memory: "512Mi"
            cpu: "500m"
          limits:
            memory: "2Gi"
            cpu: "2000m"
        env:
        - name: IRONPDF_LICENSE_KEY
          valueFrom:
            secretKeyRef:
              name: ironpdf-license
              key: key
        livenessProbe:
          httpGet:
            path: /health
            port: 80
          initialDelaySeconds: 30
          periodSeconds: 10
YAML

ランタイム フォルダー ガイドでは、コンテナー内の依存関係の管理について説明します。 Red Hat Enterprise Linuxの場合、追加の構成が必要になる場合があります。

本番環境への展開のベストプラクティスは何ですか?

HTML を PDF に変換するときに最適なパフォーマンスと品質を確保するには、次の実証済みのプラクティスに従ってください。 トラフィック量の多いシナリオでリソースをより効率的に利用するために、非同期処理の実装を検討してください。 並列処理ガイドでは、同時 PDF 生成テクニックについて説明します。

PDF を生成する前に、必ず最初にブラウザで HTML レンダリングをテストして、スタイルとレイアウトを確認してください。 相対パスでは変換中に問題が発生する可能性があるため、可能な場合は外部リソースに絶対 URL を使用してください。 複雑でJavaScript を多用するページの場合は、レンダリング遅延を追加して、完全な読み込みを確実に実行します。 サーバーの負荷を軽減するために、頻繁に生成されるドキュメントのキャッシュを実装することを検討してください。 ASP.NET Core のベスト プラクティスの詳細については、Microsoft の公式ドキュメントを参照してください。 ピクセルパーフェクトなレンダリング ガイドにより、最適な出力品質が保証されます。

実稼働環境にデプロイする場合は、適切な一時フォルダー パスを構成し、ホスティング環境に必要な依存関係がインストールされていることを確認します (特にLinux デプロイの場合)。 競合を防ぐため、スクリプトと変換ロジックを同じディレクトリに配置しないようにしてください。 一般的な展開シナリオについては、トラブルシューティング ガイドを確認してください。 直接HTMLコンテンツを処理する場合、入力がURLでないことを常に確認して予期しない挙動を避けてください。 初期のレンダリング最適化ガイドでは、一般的なパフォーマンスのボトルネックを解決します。

高パフォーマンスのシナリオでは、接続プールとリソース管理を実装します。

public class PdfGeneratorService : IDisposable
{
    private readonly SemaphoreSlim _semaphore;
    private readonly ILogger<PdfGeneratorService> _logger;

    public PdfGeneratorService(ILogger<PdfGeneratorService> logger)
    {
        _logger = logger;
        // Limit concurrent PDF generations
        _semaphore = new SemaphoreSlim(Environment.ProcessorCount * 2);
    }

    public async Task<byte[]> GeneratePdfAsync(string html)
    {
        await _semaphore.WaitAsync();
        try
        {
            using (var renderer = new ChromePdfRenderer())
            {
                var pdf = await Task.Run(() => renderer.RenderHtmlAsPdf(html));
                return pdf.BinaryData;
            }
        }
        finally
        {
            _semaphore.Release();
        }
    }

    public void Dispose()
    {
        _semaphore?.Dispose();
    }
}
public class PdfGeneratorService : IDisposable
{
    private readonly SemaphoreSlim _semaphore;
    private readonly ILogger<PdfGeneratorService> _logger;

    public PdfGeneratorService(ILogger<PdfGeneratorService> logger)
    {
        _logger = logger;
        // Limit concurrent PDF generations
        _semaphore = new SemaphoreSlim(Environment.ProcessorCount * 2);
    }

    public async Task<byte[]> GeneratePdfAsync(string html)
    {
        await _semaphore.WaitAsync();
        try
        {
            using (var renderer = new ChromePdfRenderer())
            {
                var pdf = await Task.Run(() => renderer.RenderHtmlAsPdf(html));
                return pdf.BinaryData;
            }
        }
        finally
        {
            _semaphore.Release();
        }
    }

    public void Dispose()
    {
        _semaphore?.Dispose();
    }
}
Imports System
Imports System.Threading
Imports System.Threading.Tasks
Imports Microsoft.Extensions.Logging

Public Class PdfGeneratorService
    Implements IDisposable

    Private ReadOnly _semaphore As SemaphoreSlim
    Private ReadOnly _logger As ILogger(Of PdfGeneratorService)

    Public Sub New(logger As ILogger(Of PdfGeneratorService))
        _logger = logger
        ' Limit concurrent PDF generations
        _semaphore = New SemaphoreSlim(Environment.ProcessorCount * 2)
    End Sub

    Public Async Function GeneratePdfAsync(html As String) As Task(Of Byte())
        Await _semaphore.WaitAsync()
        Try
            Using renderer As New ChromePdfRenderer()
                Dim pdf = Await Task.Run(Function() renderer.RenderHtmlAsPdf(html))
                Return pdf.BinaryData
            End Using
        Finally
            _semaphore.Release()
        End Try
    End Function

    Public Sub Dispose() Implements IDisposable.Dispose
        _semaphore?.Dispose()
    End Sub
End Class
$vbLabelText   $csharpLabel

マルチスレッド ガイドでは、高度な同時実行パターンについて説明します。 メモリ リークを防止するために、適切な廃棄パターンを実装します。

カスタム ログを使用してパフォーマンス メトリックを監視します。

// Configure logging for production monitoring
Installation.LoggingMode = IronPdf.Logging.LoggingModes.Custom;
Installation.CustomLogger = (level, message) =>
{
    _logger.Log(
        level == IronPdf.Logging.LogLevels.Error ? LogLevel.Error : LogLevel.Information,
        "IronPDF: {Message}",
        message
    );
};
// Configure logging for production monitoring
Installation.LoggingMode = IronPdf.Logging.LoggingModes.Custom;
Installation.CustomLogger = (level, message) =>
{
    _logger.Log(
        level == IronPdf.Logging.LogLevels.Error ? LogLevel.Error : LogLevel.Information,
        "IronPDF: {Message}",
        message
    );
};
' Configure logging for production monitoring
Installation.LoggingMode = IronPdf.Logging.LoggingModes.Custom
Installation.CustomLogger = Sub(level, message)
    _logger.Log(
        If(level = IronPdf.Logging.LogLevels.Error, LogLevel.Error, LogLevel.Information),
        "IronPDF: {Message}",
        message
    )
End Sub
$vbLabelText   $csharpLabel

Azure ログ ファイル ガイドAWS ログ管理では、クラウド固有のログ記録戦略について説明しています。 問題を迅速に解決するためにエンジニアリング サポート統合を実装します。

セキュリティを強化するには、 PDF 暗号化デジタル署名を実装します。 セキュリティ CVE ガイドは、一般的なセキュリティ上の懸念事項に対処します。 ユーザーがアップロードしたコンテンツのPDF サニタイズを検討してください。

HTML から PDF への変換を実装する準備はできていますか?

IronPDFを使用すると、 ASP.NET Coreアプリケーションで HTML を PDF に変換するのが簡単になります。 ライブラリのChrome ベースのレンダリングにより、正確な変換が保証されるとともに、プロフェッショナルなドキュメント生成のための広範なカスタマイズ オプションが提供されます。

HTML 文字列、URL、または完全な Web ページを扱う場合でも、 IronPDF は正確な書式設定、CSS スタイル、およびJavaScript の動作を保持します。 この .NET ベースのツールは、変換プロセス全体を効率的に処理します。 このライブラリのDocker サポートパフォーマンス最適化機能により、最新のコンテナ化されたデプロイメントとマイクロサービス アーキテクチャに最適です。

無料の30日間トライアルを開始するまたはデモを予約するために私たちのチームに連絡してください。

よくある質問

ASP.NETアプリケーションにおけるIronPDFの主な機能は何ですか?

IronPDFは、ASP.NETアプリケーションでHTMLコンテンツをプロフェッショナルなPDFドキュメントに変換するために使用されます。開発者が請求書を生成し、レポートを作成し、ダウンロード可能なPDFファイルを効率的に生成することを可能にします。

ASP.NETプロジェクトでHTMLをPDFに変換することが重要なのはなぜですか?

HTMLをPDFに変換することは、動的コンテンツをプロフェッショナルで共有可能なPDFドキュメント(請求書やレポートなど)に変換することで、洗練されたユーザーエクスペリエンスを提供するのに役立つため、ASP.NETプロジェクトでは重要です。

IronPDFはASP.NETで動的HTMLコンテンツを処理できますか?

はい、IronPDFは動的HTMLコンテンツを処理するように設計されており、動的なASP.NETウェブページやアプリケーションからPDFを生成するのに最適です。

ASP.NET における HTML から PDF への変換の一般的なユース ケースは何ですか?

一般的なユースケースには、請求書の生成、レポートの作成、ウェブアプリケーションからのダウンロード可能なPDFファイルの提供が含まれます。

IronPDFは、変換されたPDFドキュメントでスタイリングをサポートしていますか?

はい、IronPDFはCSSスタイリングをサポートしており、開発者が変換されたPDFドキュメントで元のHTMLコンテンツの外観を維持することができます。

IronPDFは、ASP.NETアプリケーションのユーザーエクスペリエンスをどのように改善しますか?

IronPDFは、開発者がそのASP.NETアプリケーションから直接高品質のPDFドキュメント(レポートや請求書など)を提供できるようにすることで、一貫性とプロフェッショナリズムを保証し、ユーザーエクスペリエンスを向上させます。

IronPDFでPDF生成の自動化は可能ですか?

はい、IronPDFはPDF生成の自動化を可能にし、開発者がそのASP.NETアプリケーション内でPDFドキュメントをプログラムで作成および管理することを可能にします。

Curtis Chau
テクニカルライター

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

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

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね