IRONSOFTWAREHOME
IRONPDFの使用

VB.NETでPDFをTIFFに変換する (開発者ガイド)

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

IronPDF のプロフェッショナル レンダリング エンジンと Azure の柔軟なクラウド インフラストラクチャを組み合わせると、Azure PDF の生成が簡単になります。 このガイドでは、HTML 変換から複雑なドキュメント操作まですべてを処理する、本番環境対応の PDF ジェネレーターを構築、展開、調整する方法を説明します。

クラウドベースの信頼性の高いPDFジェネレーターを構築することは、独自の課題を提示します。 サンドボックスの制限、メモリの制限、分散システムの複雑さなどにより、多くの開発者は本番環境に対応したソリューションを見つけるのに苦労しています。 ここでAzureIronPDF がうまく連携します。IronPDFは、基本的な機能を維持しながら、ワークロードに合わせて拡張できるプロフェッショナルなPDF 生成を提供します。

このガイドでは、請求書やレポートを生成する場合や、Web コンテンツを PDF に変換する場合など、信頼性の高い Azure PDF ジェネレーターを構築する方法を説明します。 パフォーマンスとコストを調整しながら、単純なHTML 変換から複雑なドキュメント操作まですべてを処理します。

無料のIronPDFトライアルを開始し、手順に従ってクラウド PDF ソリューションを構築してください。

優れたAzure PDFジェネレーターの特徴とは?

すべての PDF ソリューションがクラウド環境で適切に動作するわけではありません。 実稼働対応の Azure PDF ジェネレーターは、基本的なドキュメント作成を超えた重要な要件を満たす必要があります。 Azure Functions のデプロイ オプションを理解することで、成功が保証されます。

クラウド PDF 生成においてパフォーマンスが重要な理由

パフォーマンスとスケーラビリティがソリューションの成功を決定します。 ジェネレーターは、ボトルネックなしで同時リクエストを処理し、ピーク時に自動的にスケーリングし、複雑なドキュメントで一貫した応答時間を維持する必要があります。 サーバーレス アーキテクチャのニュアンスを理解しているクラウド環境向けに構築されたライブラリを選択します。

考慮すべき Azure 固有の制約は何ですか?

Azure のプラットフォームには特定の考慮事項があります。 アプリサービス サンドボックスでは Win32/グラフィックス API が制限されており、デスクトップ グラフィックス スタックを使用するライブラリは失敗する可能性があります。 消費プランのメモリ制約により、大きなドキュメントでは障害が発生します。 分散型の性質により、効率的なステートレス操作が必要になります。 Azure デプロイの詳細なトラブルシューティングについては、完全なトラブルシューティング ドキュメントを参照してください。

必須のエンタープライズ機能はどれですか?

エンタープライズ アプリケーションでは、HTML 変換以上のものが必要です。 最新の PDF ジェネレーターは、 JavaScriptレンダリングをサポートし、複雑な CSS を処理し、暗号化デジタル署名などのセキュリティ機能を提供する必要があります。 IronPDF はChrome ベースのレンダリング エンジンでこれらの問題に対処しており、Azure での展開に最適です。

Azure アプリサービスs と Azure Functions の違いは何ですか?

Azure アプリサービスs と Azure Functions はどちらもクラウド アプリケーションをホストしますが、目的は異なります。 適切なものを選択すると、アーキテクチャ、コスト モデル、展開アプローチに影響します。

Azure アプリサービスs をどのように選択しますか?

Azure アプリサービスs は、 Web アプリ、REST API、モバイル バックエンドの完全に管理されたホスティングを提供します。 永続的なリソースを提供し、長時間実行されるプロセスをサポートし、組み込みのスケーリング、デプロイメント スロット、CI/CD 統合を備えています。 これらの機能により、継続的に実行されるアプリケーションに最適です。

Azure Functions がより良い選択であると判断するにはどうすればよいでしょうか?

Azure Functions は、イベント ドリブンの短命タスクにサーバーレス コンピューティングを提供します。 関数はトリガー(HTTPリクエスト、タイマー、またはメッセージキュー)された場合にのみ実行され、実行時間に対してのみ課金されます。バックグラウンドジョブ、データ処理、自動化スクリプト、そしてホストを常時実行することなくマイクロサービスを実行するのに最適です。

PDF生成のためのAzureホスティングオプション
特徴アプリサービスAzure Functions
課金モデル月額固定実行ごと
アイドルコスト常に請求されるアイドリング時のゼロ
コールドスタートリスク最小限はい(消費プラン)
長時間実行されるPDFサポートされていますタイムアウト制限が適用されます
カスタムコンテナサポートされていますプレミアム/専用のみ

Azure Functions にIronPDFをインストールするにはどうすればよいでしょうか?

Azure Functions でIronPDFをセットアップするには、適切なパッケージを選択する必要があります。 ライブラリは、Windows 環境と Linux 環境向けのオプションを提供します。 適切なパッケージを選択すると、最適なパフォーマンスが保証され、互換性の問題を回避できます。

どのIronPDFパッケージをインストールする必要がありますか?

Windows ベースの Azure Functions の場合は、 NuGetで入手できる標準のIronPDFパッケージを使用します。 Linuxコンテナの場合、IronPdf.Linux を使用し、パッケージからのデプロイメントを実行することで、コールドスタートを迅速にします。

# NuGet Package Manager (Windows / アプリサービス)
Install-Package IronPdf

# .NET CLI (cross-platform)
dotnet add package IronPdf
SHELL
# Linux / container deployments
Install-Package IronPdf.Linux

# .NET CLI alternative
dotnet add package IronPdf.Linux
SHELL

Azure Functions 用にIronPDFを構成するにはどうすればよいですか?

以下は、トップレベルのステートメントを使用して.NET 10 用に適切に構成された PDF 生成を処理する完全な Azure 関数です。

using IronPdf;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Http;
using Microsoft.Extensions.Logging;
using System.Net;

// Configure IronPDF once at startup
License.LicenseKey = Environment.GetEnvironmentVariable("IronPdfLicenseKey") ?? string.Empty;
Installation.LinuxAndDockerDependenciesAutoConfig = true;
Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
Installation.CustomDeploymentDirectory = "/tmp";

var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults()
    .Build();

host.Run();

// Azure Function class
public class PdfGeneratorFunction
{
    private readonly ILogger _logger;

    public PdfGeneratorFunction(ILoggerFactory loggerFactory)
    {
        _logger = loggerFactory.CreateLogger<PdfGeneratorFunction>();
    }

    [Function("GeneratePdf")]
    public async Task<HttpResponseData> Run(
        [HttpTrigger(AuthorizationLevel.Function, "post", Route = "generate-pdf")] HttpRequestData req)
    {
        string htmlContent = await req.ReadAsStringAsync() ?? string.Empty;
        var response = req.CreateResponse(HttpStatusCode.OK);

        if (string.IsNullOrWhiteSpace(htmlContent))
        {
            response.StatusCode = HttpStatusCode.BadRequest;
            await response.WriteStringAsync("HTML content is required.");
            return response;
        }

        try
        {
            var renderer = new ChromePdfRenderer
            {
                RenderingOptions = new ChromePdfRenderOptions
                {
                    MarginTop = 10,
                    MarginBottom = 10,
                    MarginLeft = 10,
                    MarginRight = 10,
                    EnableJavaScript = true
                }
            };

            using var pdf = renderer.RenderHtmlAsPdf(htmlContent);
            response.Headers.Add("Content-Type", "application/pdf");
            await response.WriteBytesAsync(pdf.BinaryData);
            _logger.LogInformation("Generated PDF with {PageCount} pages.", pdf.PageCount);
            return response;
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error generating PDF.");
            response.StatusCode = HttpStatusCode.InternalServerError;
            await response.WriteStringAsync($"PDF generation failed: {ex.Message}");
            return response;
        }
    }
}

これらの構成設定が重要なのはなぜですか?

構成設定により、Azure のデプロイが成功します。 LinuxAndDockerDependenciesAutoConfig はChrome依存関係を正しく設定し、GPUモードを無効にすることでサーバーレスレンダリング問題を防ぎます。 Azure Functionsの制限された環境での書き込みアクセスを提供するために、デプロイメントディレクトリを /tmp に設定することが、多くの"アクセス拒否"エラーの一般的な原因です。

例の出力PDFファイル

Azure Functionで生成された月次レポートPDF。売上指標、地域データ表、会社のハイライトが、プロフェッショナルな緑のヘッダーとともに表示されます。

PDF 生成にはどの Azure ホスティング レベルを選択すべきですか?

IronPDFを使用した PDF 生成には、軽いワークロードよりも多くのコンピューティングとグラフィック サポートが必要です。 Microsoft とIronPDF はどちらも、GDI+ の制限、共有コンピューティングの制限、およびメモリ不足のため、Free、Shared、および Consumption 層を避けることを推奨しています。

IronPDFに推奨される Azure 層
ティアGDI+サポートPDFに適しています注意事項
無料 / 共有なしなし制限付きサンドボックス
消費(機能)制限あり制限ありメモリ上限が適用されます
ベーシック / スタンダードはいはい最低限の推奨
プレミアム / 隔離はいはい(ベスト)フル機能アクセス

大容量のワークロードの場合、Premium または Isolated レベルでは、専用のコンピューティング、VNET 統合が提供され、コールド スタートの遅延はありません。これらはすべて、PDF のスループットと信頼性を直接向上させる要素です。

Azure Functions を使用してサーバーレス PDF API を構築する方法

Azure Functions を使用してサーバーレス PDF API を構築すると、自動スケーリング、従量課金制、最小限のインフラストラクチャ管理が実現します。 以下の関数は、オプションのセキュリティ設定を含む JSON リクエストを受け入れ、PDF バイト ストリームを返します。

制作 PDF API をどのように構成しますか?

using IronPdf;
using IronPdf.Editing;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Http;
using System.Net;
using System.Text.Json;

public class PdfApiFunction
{
    private static readonly ChromePdfRenderer Renderer = new ChromePdfRenderer
    {
        RenderingOptions = new ChromePdfRenderOptions
        {
            PaperSize = IronPdf.Rendering.PdfPaperSize.A4,
            PrintHtmlBackgrounds = true,
            CreatePdfFormsFromHtml = true,
            CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
        }
    };

    [Function("ConvertUrlToPdf")]
    public async Task<HttpResponseData> ConvertUrl(
        [HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequestData req)
    {
        var body = await req.ReadAsStringAsync() ?? "{}";
        var request = JsonSerializer.Deserialize<ConvertUrlRequest>(body);

        if (string.IsNullOrEmpty(request?.Url))
        {
            var bad = req.CreateResponse(HttpStatusCode.BadRequest);
            await bad.WriteStringAsync("URL is required.");
            return bad;
        }

        using var pdf = Renderer.RenderUrlAsPdf(request.Url);

        if (request.AddWatermark)
        {
            pdf.ApplyWatermark(
                "<h2>CONFIDENTIAL</h2>",
                30,
                VerticalAlignment.Middle,
                HorizontalAlignment.Center);
        }

        if (request.ProtectWithPassword && !string.IsNullOrEmpty(request.Password))
        {
            pdf.SecuritySettings.UserPassword = request.Password;
            pdf.SecuritySettings.AllowUserCopyPasteContent = false;
        }

        var response = req.CreateResponse(HttpStatusCode.OK);
        response.Headers.Add("Content-Type", "application/pdf");
        await response.WriteBytesAsync(pdf.BinaryData);
        return response;
    }
}

public class ConvertUrlRequest
{
    public string Url { get; set; } = string.Empty;
    public bool AddWatermark { get; set; }
    public bool ProtectWithPassword { get; set; }
    public string Password { get; set; } = string.Empty;
}

この構造により、明確な分離を維持しながら柔軟性が確保されます。 この関数は JSON リクエストを受け入れ、エラー処理で処理し、オプションのセキュリティを備えた PDF を返します。 透かしを追加したり、パスワード保護を実装したり、デジタル署名を適用したりできます。

プロダクションPDF生成のベストプラクティスは何ですか?

実稼働 PDF の生成には、パフォーマンス、信頼性、およびリソース管理に細心の注意を払う必要があります。 これらのベスト プラクティスにより、同時リクエスト全体で実際の条件下で最適なパフォーマンスが保証されます。

メモリとリソースをどのように管理しますか?

同時リクエストではメモリ管理が重要になります。 常にPDFオブジェクトをusingステートメントを使用して破棄してください。 大きなドキュメントの場合は、PDF 全体をメモリに読み込むのではなく、出力をストリーミングします。 トラフィックの急増時にメモリが枯渇するのを防ぐために、リクエスト スロットリングを実装します。

using IronPdf;
using Microsoft.Extensions.Logging;

public static class PdfProductionService
{
    // Limit concurrent PDF operations to avoid memory exhaustion
    private static readonly SemaphoreSlim Throttle = new SemaphoreSlim(5);

    public static async Task<byte[]> GeneratePdfAsync(string html, ILogger log)
    {
        await Throttle.WaitAsync();
        try
        {
            using var renderer = new ChromePdfRenderer
            {
                RenderingOptions = new ChromePdfRenderOptions
                {
                    Timeout = 60,
                    UseMarginsOnHeaderAndFooter = UseMargins.None
                }
            };

            renderer.RenderingOptions.WaitFor.RenderDelay(1000);
            using var pdf = renderer.RenderHtmlAsPdf(html);

            log.LogInformation(
                "PDF generated: {Pages} pages, {Bytes} bytes",
                pdf.PageCount,
                pdf.BinaryData.Length);

            return pdf.BinaryData;
        }
        finally
        {
            Throttle.Release();
        }
    }
}

PDF 生成の健全性をどのように監視しますか?

モニタリングにより、PDF ジェネレーターの状態を可視化できます。 Application Insights を使用して、生成時間、障害率、リソース消費量を追跡します。 エラーの増加や応答の低下などの異常に対してアラートを設定します。 トラブルシューティングのために各リクエストの詳細情報をログに記録します。

using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;

// Track custom metrics using Application Insights
var telemetry = new TelemetryClient(TelemetryConfiguration.CreateDefault());

var sw = System.Diagnostics.Stopwatch.StartNew();
var pdfBytes = await PdfProductionService.GeneratePdfAsync(html, logger);
sw.Stop();

telemetry.TrackMetric("PdfGenerationTimeMs", sw.Elapsed.TotalMilliseconds);
telemetry.TrackMetric("PdfFileSizeBytes", pdfBytes.Length);

Azure で高度な PDF 機能をどのように処理しますか?

IronPDF の高度な機能により、PDF ジェネレーターは基本的な作成機能を超えて拡張されます。 これらの機能は Azure で完全にサポートされており、プロフェッショナルなドキュメント処理ワークフローを実現します。

暗号化と権限を使用して PDF をどのように保護しますか?

IronPDF は、きめ細かなドキュメント制御のためにパスワード保護と権限管理をサポートしています。 PDF の権限とパスワード機能は AES-256 暗号化を適用します。

using IronPdf;

// Load or generate the PDF
using var pdf = new ChromePdfRenderer().RenderHtmlAsPdf("<h1>Secure Report</h1>");

// Apply password protection
pdf.SecuritySettings.UserPassword = "view-password";
pdf.SecuritySettings.OwnerPassword = "admin-password";

// Restrict permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;

pdf.SaveAs("azure-secure-report.pdf");

暗号化とデジタル署名を組み合わせて、否認不可能で改ざん防止機能を備えた文書を作成できます。

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

動的なページ番号とカスタム透かしを含むヘッダーとフッターの追加は、Azure でも他 for .NET環境と同じように機能します。

using IronPdf;

using var pdf = new ChromePdfRenderer().RenderHtmlAsPdf("<h1>Monthly Report</h1><p>Report content goes here.</p>");

// Add dynamic header with page numbers
var header = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right;font-size:10px'>Page {page} of {total-pages}</div>",
    Height = 15
};
pdf.AddHTMLHeaders(header);

// Apply a draft watermark when needed
pdf.ApplyWatermark(
    "<h1 style='color:gray;opacity:0.3'>DRAFT</h1>",
    45,
    IronPdf.Editing.VerticalAlignment.Middle,
    IronPdf.Editing.HorizontalAlignment.Center);

pdf.SaveAs("report-with-header.pdf");

また、PDFを結合または分割し、テキストを抽出し、PDFを画像に変換し、PDFフォームで作業することもできます。

どのような一般的なエラーに注意する必要がありますか?

適切にセットアップした場合でも、PDF ジェネレーターを Azure にデプロイするときに特定の問題が発生することがよくあります。 これらの問題を理解することで、貴重なトラブルシューティングの時間を節約できます。

"アクセス拒否"エラーが発生するのはなぜですか?

IronPDF が一時ファイルを書き込めない場合、 "パスへのアクセスが拒否されました"というエラーが発生します。 書き込みアクセスを確保するためにInstallation.CustomDeploymentDirectory = "/tmp"を設定してください。 パッケージからの実行デプロイメントを使用する場合は、/home/site/wwwrootがそのモードでは読み取り専用であるため、アプリには別の書き込み可能なパスがあることを確認してください。

タイムアウトとレンダリングの問題をどのように解決しますか?

複雑なドキュメントのレンダリングが Azure の関数のタイムアウトを超えると、タイムアウト例外が発生します。 レンダラーのタイムアウトを増やしたり、JavaScript を多用するページにレンダリング遅延を追加したり、大きなジョブを永続的なタスク キューにオフロードしたりします。

**フォント レンダリングの問題は、**フォントが見つからないか正しくないという形で現れます。 Base64 エンコードを使用してフォントを埋め込んだり、Azure がネイティブでサポートする Web セーフ フォントを使用したり、コンテナー デプロイに切り替えてフォントを完全に制御したりできます。

PDF 生成中にメモリ例外が発生する原因は何ですか?

メモリ例外は、 PDF 生成のメモリ集約型の性質により発生します。 一般的な問題としては、大規模なリクエストや同時リクエスト中に発生するメモリ不足例外などがあります。

ベストプラクティスは次のとおりです。

  • PdfDocument オブジェクトはすぐにusingステートメントを使用して破棄します。
  • プロダクションサービスの例に示されたように、SemaphoreSlimで同時リクエストを制限します。
  • 大きなPDFには、バイト配列全体を読み込むのではなく、ストリームベースの出力を使用します。
  • メモリ割り当てを予測可能にするために、消費プランからプレミアムまたは専用プランにアップグレードします。

Azure PDF ジェネレーターをどのようにデプロイおよび監視しますか?

堅実な展開戦略により、PDF ジェネレーターは安定し、監視可能になり、更新も容易になります。 次のプラクティスは、Azure アプリサービス または Azure Functions のどちらを対象とする場合でも適用されます。

どのような展開のベストプラクティスに従う必要がありますか?

*自動化された CI/CD: Azure DevOps またはGitHub Actions を使用して、繰り返し実行可能で監査可能なデプロイメントを実現します。 *ライセンス キー: IronPDFライセンスをソース管理や環境変数ではなく Azure Key Vault に保存します。

  • 書き込み可能パス: アプリケーションの開始時にIronPDFのテンポラリフォルダ(Linuxコンテナの場合は/tmp)を設定します。
  • パッケージ選択: コンテナベースのデプロイメントにはIronPdf.Linuxを使用します; Windows アプリサービスには標準のIronPdfパッケージを使用します。

監視とメトリクスをどのように設定しますか?

Application InsightsはAzure Functionsとアプリサービスに直接統合されています。PDF生成イベントごとにカスタムメトリクスを追跡するためにTelemetryClientを使用してください:

using Microsoft.ApplicationInsights;

var telemetryClient = new TelemetryClient();
telemetryClient.TrackMetric("PdfGenerationTimeMs", generationTime.TotalMilliseconds);
telemetryClient.TrackMetric("PdfPageCount", pdfPageCount);
telemetryClient.TrackMetric("PdfFileSizeBytes", fileSizeBytes);

Azure ポータルでメトリック ベースのアラートを設定すると、生成時間が許容可能なしきい値を超えた場合やエラー率が急上昇した場合に通知されます。

今すぐ Azure PDF Generation を開始するにはどうすればよいですか?

これで、適切な Azure 層の選択と正しいNuGetパッケージのインストールから、クラウド環境向けのレンダラーの構成、セキュリティ、監視、リソース調整の追加まで、運用対応の Azure PDF ジェネレーターを構築するための全体像が把握できました。

Azure のクラウド インフラストラクチャと IronPDF の Chrome ベースのレンダリング エンジンを組み合わせることで、ニーズに合わせて拡張できる PDF プラットフォームが実現します。 1 時間あたりに数個のドキュメントを処理する場合でも、数千個のドキュメントを処理する場合でも、ジェネレーターは予測可能なコストで一貫したパフォーマンスを維持します。

まずIronPDF の機能の概要から始めて、利用可能な機能の全範囲を理解し、次に API の詳細についてはドキュメントを参照してください。 展開の準備ができたら、ドキュメントごとの料金なしでフル機能をテストできる無料試用ライセンスを有効化してください。 ライセンス オプションを確認して、運用ワークロードに適したプランを選択します。

追加のドキュメント処理オプションについては、IronPDF NuGetインストールガイドと全体のIron Software製品スイートを探ってみてください。

最初のステップ:
arrow pointer
Curtis Chau
テクニカルライター

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

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から