IRONSOFTWAREHOME

C&#35でのPDFレンダリング用プロキシサーバーの設定方法

Curtis Chau
Curtis Chau
Updated: 2026年6月4日

IronPDFでのプロキシ設定は、IronPDF のプロパティではなく、RenderHtmlAsPdf() のオーバーロードでの メソッドパラメータです。 この区別は重要です。RenderHtmlAsPdf() はプロキシパラメータをまったく持たないため、企業プロキシの背後でライブURLをレンダリングする際には異なる戦略が必要です。 null(デフォルト)を渡すと、IronPDFは直接接続します。

このガイドでは、本番環境で遭遇するすべてのプロキシシナリオをカバーします:直接プロキシ文字列、認証された企業プロキシ、RenderUrlAsPdf の回避策、Dockerコンテナ設定、CI/CDパイプライン統合、SSLインターセプトおよびNTLM認証の一般的なトラブルシューティングパターン。

30日間の無料トライアルを開始して、環境でのプロキシ設定のテストを行ってください。

クイックスタート: プロキシを介してPDFをレンダリング

IronPDFのオプションパラメータ proxy は、企業プロキシの背後に配信されたライブウェブページを変換するのに役立ちます。 このコードスニペットを使用して迅速に開始してください。

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2このコード スニペットをコピーして実行します。

    using IronPdf;
    
    var renderer = new ChromePdfRenderer();
    
    // Proxy is the third parameter — not a render option
    PdfDocument pdf = renderer.RenderHtmlAsPdf(
        "<h1>Hello from behind the proxy</h1>",
        baseUrlOrPath: null,
        proxy: "http://proxy.co/rp.local:8080"
    );
    pdf.SaveAs("proxied-output.pdf");
    C#
  3. 3実際の環境でテストするためにデプロイする

    今日プロジェクトで IronPDF を使い始めましょう無料トライアル
    arrow pointer

最小のワークフロー (3つのステップ)

  1. NuGet経由でIronPDFをインストールします:Install-Package IronPdf
  2. プロキシ文字列をRenderHtmlAsPdf の第3パラメータとして渡します
  3. フォーマット:認証プロキシ用のhttp(s)://host:port または http(s)://user:pass@host:port

RenderHtmlAsPdf にプロキシをどのように渡しますか?

Proxy バラメータは4つのメソッドシグネチャのオプションのstringです。

// Instance methods
PdfDocument RenderHtmlAsPdf(string Html, string BaseUrlOrPath, string Proxy = null)
PdfDocument RenderHtmlAsPdf(string Html, Uri BaseUrl = null, string Proxy = null)

// Static methods
PdfDocument StaticRenderHtmlAsPdf(string Html, ChromePdfRenderOptions Options = null, string Proxy = null)
PdfDocument StaticRenderHtmlAsPdf(string Html, string BaseUrlOrPath, ChromePdfRenderOptions Options = null, string Proxy = null)

このパラメータがnull(デフォルト)の場合、IronPDFのChromiumエンジンは外部リソースに直接接続します - スタイルシート、画像、フォント、HTML内で参照されるJavaScriptファイル。 プロキシ文字列を提供すると、レンダリングエンジンからのすべてのHTTP/HTTPSリクエストがそのプロキシを経由しています。

using IronPdf;

var renderer = new ChromePdfRenderer();

// Direct connection (default — no proxy)
var pdfDirect = renderer.RenderHtmlAsPdf("<h1>Direct</h1>");

// Through an unauthenticated proxy
var pdfProxied = renderer.RenderHtmlAsPdf(
    "<h1>Proxied</h1>",
    baseUrlOrPath: null,
    proxy: "http://squid.internal:3128"
);

// Using the Uri overload
var pdfUri = renderer.RenderHtmlAsPdf(
    "<h1>Proxied via Uri overload</h1>",
    baseUrl: new Uri("https://assets.example.com/"),
    proxy: "https://proxy.corp.local:8443"
);

プロキシ文字列はhttp:// および https:// スキームの両方をサポートします。 プロキシ自体があなたのアプリケーションとプロキシサーバー間の接続のTLS暗号化を必要とする場合は、https:// を使用します。 ここでのスキームは、最終リソースではなくプロキシ接続を指します - http:// プロキシはなおもCONNECTトンネリングを通じてhttps:// リソースを取得できます。

静的メソッドのバリエーションは同じプロキシパラメータを受け入れます。これは、コンソールアプリケーションやユニットテストでの一度限りのレンダリングに便利です。

// Static render with proxy — no renderer instance needed
var pdf = ChromePdfRenderer.StaticRenderHtmlAsPdf(
    "<h1>Static render through proxy</h1>",
    options: null,
    proxy: "http://proxy.corp.local:8080"
);

重要: Proxy のプロパティはありません。 そこに探さないでください。 プロキシはRenderHtmlAsPdf および FromHtml オーバーロードでのメソッドパラメータです。

企業プロキシで認証するには?

ほとんどの企業プロキシは認証情報を必要とします。 プロキシURLにhttp(s)://username:password@host:port フォーマットを使用して直接埋め込みます:

using IronPdf;

var renderer = new ChromePdfRenderer();

string proxyWithAuth = "http://svc-account:P%40ssw0rd%21@proxy.corp.local:8080";

PdfDocument pdf = renderer.RenderHtmlAsPdf(
    htmlContent,
    baseUrlOrPath: @"C:\templates\assets\",
    proxy: proxyWithAuth
);
pdf.SaveAs("report.pdf");

パスワード内の特殊文字をURLエンコードします。 あなたのパスワードが/、または他の予約されたURI文字を含んでいる場合、それらはパーセントエンコードされる必要があります。 一般的なエンコード:

文字エンコード
@%40
#%23
:%3A
/%2F
!%21
%%25

プログラム的にパスワードをエンコードするにはUri.EscapeDataString() を使用します:

string rawPassword = "P@ssw0rd!";
string encoded = Uri.EscapeDataString(rawPassword); // "P%40ssw0rd%21"
string proxy = $"http://svc-account:{encoded}@proxy.co/rp.local:8080";

プロキシ認証とウェブページ認証を混同しないでください。 ChromeHttpLoginCredentials.NetworkUsername および NetworkPassword プロパティはレンダリングされるウェブページ(NTLM/Negotiateを使用したウェブサイト)に対して認証を行いますが、プロキシサーバーに対してではありません。 プロキシ認証の場合、認証情報は上記のようにプロキシURL文字列に入れます。

プロキシの背後にあるURLをレンダリングするには?

RenderUrlToPdf はプロキシパラメータを受け入れません。 これは意図的なAPIデザインの選択であり、NavigateUrl はChromiumをURLにナビゲートし、そのナビゲーションのプロキシ設定はHTMLレンダリング中のリソースローディングとは異なる方法で処理されます。

推奨される回避策:RenderHtmlAsPdfにHTMLストリングを渡します(これにより参照されたアセット - 画像、CSS、フォント - もプロキシ経由でルーティングされます)。

using IronPdf;
using System.Net;
using System.Net.Http;

// Step 1: Configure HttpClient with the corporate proxy
var proxy = new WebProxy("http://proxy.corp.local:8080")
{
    Credentials = new NetworkCredential("svc-account", "P@ssw0rd!")
};

var handler = new HttpClientHandler { Proxy = proxy, UseProxy = true };
using var httpClient = new HttpClient(handler);

// Step 2: Fetch the HTML from the target URL
string targetUrl = "https://dashboard.internal.corp/quarterly-report";
string html = await httpClient.GetStringAsync(targetUrl);

// Step 3: Render the fetched HTML, with the proxy for asset loading
var renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf(
    html,
    baseUrlOrPath: targetUrl,  // Resolves relative asset paths against the original URL
    proxy: "http://svc-account:P%40ssw0rd%21@proxy.corp.local:8080"
);
pdf.SaveAs("quarterly-report.pdf");

<link href="/css/styles.css">)が正しく解決されるようにします。 このproxyパラメータは、レンダリング中にそれらのアセットリクエストがプロキシを経由してルーティングされることを保証します。

このパターンは認証後のページにも有効です - 適切なクッキーやヘッダーでHttpClientを設定してから、認証されたHTMLをIronPDFに渡します。 HTTPリクエストヘッダー ハウツーは、認証されたリクエストのためのヘッダー構成をカバーしています。

ページがJavaScriptに依存してレンダリングされる場合(SPAs、Reactダッシュボード、Angularアプリ)、取得したHTMLには初期のシェルしか含まれず、HttpClient取得中にクライアント側レンダリングは実行されません。 その場合、システムレベルのRenderHtmlAsPdf()に渡します。

私のお気に入りのこの種のライブラリはIronPDFです。PDFファイルの迅速で効率的な操作が可能です。また、PDF/A形式へのエクスポートやPDF文書へのデジタル署名といった多くの貴重な機能も備えています。

Milan Jovanovic

Microsoft MVP

ケーススタディを見る

IronOCRのおかげで私たちは年間$40,000を手作業の処理から節約し、生産性を向上させ、高影響のタスクにリソースを充てることができます。非常にお勧めします。

Brent Matzelle

最高技術責任者, OPYN

ケーススタディを見る

IronSuiteは私たちの業務において重要な役割を果たしています。これらは、フロアプランの作成や在庫管理の改善を含め、ビジネス全体の効率を向上させるツールです。

David Jones

リードソフトウェアエンジニア、Agorus Build

ケーススタディを見る

Dockerコンテナでプロキシをどのように設定しますか?

コンテナ化された環境では、メソッドごとのパラメータよりもシステムレベルのプロキシ設定を好むことがあります。 IronPDFのChromiumエンジンは、Linuxコンテナがアウトバウンドトラフィックルーティングに使用する標準のHTTP_PROXY および HTTPS_PROXY 環境変数を尊重します。

これらをDockerfileに設定します:

FROM mcr.microsoft.com/dotnet/aspnet:8.0

# System-level proxy for all outbound HTTP/HTTPS traffic
ENV HTTP_PROXY=http://proxy.co/rp.local:8080
ENV HTTPS_PROXY=http://proxy.co/rp.local:8080
ENV NO_PROXY=localhost,127.0.0.1,.internal.co/rp

# Install IronPDF dependencies (fonts, etc.)
RUN apt-get update && apt-get install -y \
    libgdiplus \
    libc6-dev \
    fonts-liberation \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "MyApp.dll"]
Text

これらの環境変数が設定されている場合、プロキシパラメータなしでRenderHtmlAsPdfを呼び出すことができ、Chromiumはシステムレベルの設定を自動的に取得します:

// No proxy parameter needed — Chromium uses HTTP_PROXY env var
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

RenderHtmlAsPdf()は内部リソースにとって重要です。 それがないと、内部サービス(ローカルCSSサーバーやKubernetesクラスター内で実行されている画像CDNなど)へのリクエストが不必要にプロキシを経由します。 プロキシをバイパスすべきホスト名とドメインをカンマで区切ります。

一般トラフィックに対するシステムレベルのプロキシと特定のレンダーに異なるプロキシが必要な場合、メソッドパラメータが環境変数より優先されます。 必要な場合に、レンダーごとの制御を提供します。

CI/CDパイプラインでのプロキシの取り扱い方法は?

企業ネットワーク内のCI/CDランナーはプロキシの後ろに位置することがよくあります。 ビルド変数またはシークレットとしてプロキシURLを渡してください。認証情報をソース管理にハードコードしないでください。

GitHub Actions:

jobs:
  generate-pdf:
    runs-on: ubuntu-latest
    env:
      HTTP_PROXY: ${{secrets.CORP_PROXY_URL}}
      HTTPS_PROXY: ${{secrets.CORP_PROXY_URL}}
    steps:
      - uses: actions/checkout@v4
      - run: dotnet build
      - run: dotnet test
Text

Azure DevOps:

variables:
  - group: proxy-settings  # Contains PROXY_URL secret

steps:
  - script: |
      export HTTP_PROXY=$(PROXY_URL)
      export HTTPS_PROXY=$(PROXY_URL)
      dotnet run --project PdfGenerator
    displayName: 'Generate PDFs behind proxy'
Text

Jenkins(宣言型パイプライン):

environment {
    HTTP_PROXY  = credentials('corp-proxy-url')
    HTTPS_PROXY = credentials('corp-proxy-url')
}
Text

いずれのケースでも、Chromiumは環境変数を自動的に読みます。 明示的な制御を希望する場合は、環境からプロキシURLを読み取り、それをメソッドパラメータとして渡します:

string? proxy = Environment.GetEnvironmentVariable("HTTPS_PROXY");
var pdf = renderer.RenderHtmlAsPdf(html, baseUrlOrPath: null, proxy: proxy);

プロキシの問題をどのようにトラブルシューティングしますか?

タイムアウトエラー: 企業のプロキシはレイテンシを追加します。 レンダリングのタイムアウトを60秒のデフォルトから増やします:

renderer.RenderingOptions.Timeout = 120; // seconds

これはRenderTimeoutプロパティです - これは、Chromiumがページロードとリソース取得を結合して待機する時間を制御します。 プロキシがリクエストごとに5–10秒のレイテンシを追加し、ページが20以上の外部リソースをロードする場合、60秒では不十分な可能性があります。

SSLインターセプション(MITMプロキシ): 多くの企業プロキシは、企業のルートCA証明書を使用してHTTPSトラフィックを復号化および再暗号化します。 Chromiumはデフォルトで企業CAを信頼しないため、これらの接続を拒否します。 2つの解決策:

  1. コンテナまたはホストの信頼されたルートストアに企業CA証明書をインストールする。 Linux上で:update-ca-certificatesを実行します。
  2. 開発時のみ、証明書の検証を無効にできます - ただし、これを本番環境で行わないでください。 常に適切な証明書をインストールするのが安全なアプローチです。

NTLM認証:インラインのuser:pass@hostフォーマットはベーシックおよびダイジェストプロキシ認証をサポートします。 NTLM(Windows中心の企業で一般的)は、プロキシURL文字列ではサポートされていません。 回避策として、CNTLMのようなローカルでNTLM-to-Basicフォワーディングプロキシをホストまたはサイドカーコンテナとして実行します。 NTLMクレデンシャルでCNTLMを設定し、IronPDFをhttp://localhost:3128(CNTLMのデフォルトポート)に指示します。

空白のPDFまたはアセットが欠けている: PDFはレンダリングされますが、画像やCSSが不足している場合、プロキシがブロックするか、異なるプロキシパスが必要なリソースをHTMLが参照しています。 プロキシを通じてbaseUrlOrPathパラメータが正しく解決することを確認し、プロキシのアクセスログを403または407の応答で確認します。

ローカルアセットのためのプロキシバイパス: HTMLがローカルアセット(バンドルされた画像、インラインCSS)とリモートリソース(CDNフォント、外部スクリプト)を混在している場合、プロキシはリモートリクエストのみを処理する必要があります。 ファイルシステムアセットとしてbaseUrlOrPathをローカルディレクトリに設定し、ネットワークリクエストの処理だけをプロキシに任せます。 これにより、ローカルファイル読み込みが不必要にプロキシを経由することを避けられます。

接続の診断: あなたのプロキシ文字列がIronPDFで使用する前に正しいかを確認するために、まず簡単なHttpClientリクエストでテストしてください:

var proxy = new WebProxy("http://proxy.co/rp.local:8080");
var handler = new HttpClientHandler { Proxy = proxy, UseProxy = true };
using var client = new HttpClient(handler);

var response = await client.GetAsync("https://httpbin.org/ip");
Console.WriteLine(await response.Content.ReadAsStringAsync());
// Should return the proxy's external IP, not your machine's IP
C#

これが成功するがIronPDFが失敗する場合、問題はSSLインターセプションまたはプロキシとChromiumのCONNECTトンネリング間のプロトコルミスマッチの可能性があります。 プロキシがHTTPSリソースのためのHTTP CONNECTをサポートしているか確認してください - トンネリングを許可するために明示的な構成を必要とするプロキシもあります。

次のステップ

IronPDFにおけるプロキシサポートはRenderHtmlAsPdf()のメソッドパラメータです - プロキシ文字列を渡すとChromiumエンジンはすべてのHTTPトラフィックをそれにルーティングします。 HTTPS_PROXY 環境変数がコード変更なしでインフラレベルのコントロールを提供します。

Webページ認証(プロキシ認証とは異なる)のためのログインと認証ハウツー、カスタムヘッダーのためのHTTPリクエストヘッダーガイド、およびタイムアウトやパフォーマンスチューニングのためのレンダリングオプションリファレンスを探索してください。

ライセンスオプションを見る $999から。 ChromePdfRenderer APIリファレンスはすべてのメソッドオーバーロードをドキュメント化し、ChromePdfRenderOptionsリファレンスはすべての設定可能なプロパティをカバーしています。 RenderUrlAsPdf() ProxyAddress ChromePdfRenderOptions RenderHtmlAsPdf StaticRenderHtmlAsPdf RenderUrlAsPdf HttpClient WebProxy RenderHtmlAsPdf() ```yaml

Kubernetesポッド仕様

スペック: コンテナ:

  • 名前: pdf-generator イメージ: myregistry/pdf-service:latest env:
    • 名称: HTTP_PROXY valueFrom configMapKeyRef: name: proxy-config key: http-proxy
    • 名称: HTTPS_PROXY valueFrom configMapKeyRef: name: proxy-config https-proxy
    • 名称: NO_PROXY value: "localhost,127.0.0.1,.internal.co/rp" ``` ChromePdfRenderOptions.Timeout

よくある質問

PDFレンダリングのためにC#でプロキシサーバーを設定するにはどうすればよいですか?

C#でPDFレンダリングのプロキシサーバーを設定するためには、IronPDFのRenderHtmlAsPdfメソッドを呼び出す際に、プロキシパラメータを使用します。これにより、Webリソースにアクセスするためのプロキシ設定を指定できます。

IronPDFでプロキシを使用する目的は何ですか?

IronPDFでプロキシを使用することにより、ファイアウォールや企業ネットワークの背後にある、インターネットアクセスが制限された環境でのPDFレンダリング時にネットワークリクエストを管理できます。

IronPDFは認証付きプロキシを扱えますか?

はい、IronPDFは認証付きプロキシを扱うことができます。必要な認証情報をプロキシ設定と共にC#コード内で提供する必要があります。

IronPDFはDockerコンテナ内でプロキシと一緒に使用できますか?

はい、IronPDFはDockerコンテナ内でプロキシと一緒に使用するよう設定できます。Docker環境変数を正確に設定し、プロキシ設定を渡すことを確認してください。

IronPDFのプロキシ問題をどのようにトラブルシューティングしますか?

IronPDFのプロキシ問題をトラブルシューティングするには、プロキシ設定を確認し、認証情報が正しいことを確認し、ネットワークへのアクセス性を検証します。ログにエラーメッセージがあれば、それを確認し問題の特定に役立ててください。

IronPDFはプロキシ設定と共にCI/CDパイプラインで使用できますか?

はい、IronPDFはプロキシ設定と共にCI/CDパイプラインに統合できます。PDFレンダリング処理中に必要なプロキシ設定を渡すようにビルド環境を設定することを確認してください。

企業環境でIronPDFにプロキシを使用する利点は何ですか?

企業環境でIronPDFにプロキシを使用することは、セキュリティを向上させ、インターネットアクセスを制御し、帯域幅の使用を管理するのに役立ち、組織のITポリシーに準拠しやすくします。

What environment variables should be set for system-level proxy configurations?

For system-level proxy configurations, set the `HTTP_PROXY` and `HTTPS_PROXY` environment variables for general outbound traffic routing in environments like Docker or CI/CD pipelines.

How do you ensure internal resources bypass the proxy in IronPDF?

You can set the `NO_PROXY` environment variable to list domains or hostnames that should bypass the proxy, ensuring internal resources like local CSS servers or image CDNs aren't routed through the proxy unnecessarily.

What are the typical issues when rendering PDFs through a proxy in IronPDF, and how can they be resolved?

Typical issues include timeout errors due to latency, SSL interception requiring corporate root CA certificates, and NTLM authentication needing a local forwarding proxy like CNTLM. Solutions vary but generally include adjusting timeouts, installing certificates properly, and ensuring correct proxy credentials formatting.

Curtis Chau
テクニカルライター

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

...
詳しく読む

準備はできましたか?

Nuget Downloads 21,105,021バージョン:2026.9リリースされたばかり

あなたの無料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から

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 Iron Suite
無料のライブデモを予約する
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から