C# での PDF レンダリングに向けたプロキシサーバーの設定方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDFにおけるプロキシ設定はRenderHtmlAsPdf()のオーバーロードにおけるメソッドパラメータであり、@@--CODE-185--@@のプロパティではありません。 この違いが重要なのは、RenderHtmlAsPdf()にはプロキシパラメータが一切ないため、企業プロキシの背後にあるライブURLをレンダリングする必要がある場合、異なる戦略が必要になるからです。 null(デフォルト)を指定すると、IronPDFは直接接続します。

このガイドでは、本番環境で遭遇するあらゆるプロキシのシナリオを網羅しています。直接プロキシ文字列、認証が必要な企業プロキシ、RenderUrlAsPdfの回避策、Dockerコンテナの設定、CI/CDパイプラインとの統合、そしてSSLインターセプトやNTLM認証に関する一般的なトラブルシューティングパターンについて解説します。

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

クイックスタート: プロキシ経由でのPDFレンダリング

IronPDFのオプションパラメータproxyを使用すると、企業のプロキシ経由で配信されるライブWebページを変換することができます。 このコードスニペットを使用して、すぐに使い始めましょう。

  1. IronPDF をNuGetパッケージマネージャでインストール

    PM > Install-Package IronPdf
  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");
  3. 実際の環境でテストするためにデプロイする

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

    arrow pointer

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

  1. NuGet 経由で IronPDF をインストールする: Install-Package IronPdf
  2. プロキシ文字列を 3 番目のパラメータとして RenderHtmlAsPdf に渡します
  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)
// 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)
' Instance methods
Function RenderHtmlAsPdf(Html As String, BaseUrlOrPath As String, Optional Proxy As String = Nothing) As PdfDocument
End Function

Function RenderHtmlAsPdf(Html As String, Optional BaseUrl As Uri = Nothing, Optional Proxy As String = Nothing) As PdfDocument
End Function

' Static methods
Shared Function StaticRenderHtmlAsPdf(Html As String, Optional Options As ChromePdfRenderOptions = Nothing, Optional Proxy As String = Nothing) As PdfDocument
End Function

Shared Function StaticRenderHtmlAsPdf(Html As String, BaseUrlOrPath As String, Optional Options As ChromePdfRenderOptions = Nothing, Optional Proxy As String = Nothing) As PdfDocument
End Function
$vbLabelText   $csharpLabel

このパラメータが 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.co/rp.local:8443"
);
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.co/rp.local:8443"
);
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

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

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

' Using the Uri overload
Dim pdfUri = renderer.RenderHtmlAsPdf(
    "<h1>Proxied via Uri overload</h1>",
    baseUrl:=New Uri("https://assets.example.com/"),
    proxy:="https://proxy.co/rp.local:8443"
)
$vbLabelText   $csharpLabel

プロキシ文字列は、http:// および https:// の両方の形式に対応しています。 アプリケーションとプロキシサーバー間の接続にプロキシ側で TLS 暗号化が必要な場合は、https:// を使用してください。 ここでの"スキーム"とは、最終的なリソースではなくプロキシ接続を指します。https://リソースを取得することができます。

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

// Static render with proxy — no renderer instance needed
var pdf = ChromePdfRenderer.StaticRenderHtmlAsPdf(
    "<h1>Static render through proxy</h1>",
    options: null,
    proxy: "http://proxy.co/rp.local:8080"
);
// Static render with proxy — no renderer instance needed
var pdf = ChromePdfRenderer.StaticRenderHtmlAsPdf(
    "<h1>Static render through proxy</h1>",
    options: null,
    proxy: "http://proxy.co/rp.local:8080"
);
' Static render with proxy — no renderer instance needed
Dim pdf = ChromePdfRenderer.StaticRenderHtmlAsPdf(
    "<h1>Static render through proxy</h1>",
    options:=Nothing,
    proxy:="http://proxy.co/rp.local:8080"
)
$vbLabelText   $csharpLabel

重要: ChromePdfRenderOptions には Proxy プロパティは存在しません。 そこを探さないでください。 このプロキシは、RenderHtmlAsPdf および FromHtml のオーバーロードにおけるメソッドパラメータに限定されます。

企業プロキシでの認証方法は?

ほとんどのEnterprise向けプロキシでは、認証情報が必要です。 これらを http(s)://username:password@host:port 形式を使用して、プロキシ URL に直接埋め込みます:

using IronPdf;

var renderer = new ChromePdfRenderer();

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

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

var renderer = new ChromePdfRenderer();

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

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

Dim renderer As New ChromePdfRenderer()

Dim proxyWithAuth As String = "http://svc-account:P%40ssw0rd%21@proxy.co/rp.local:8080"

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(
    htmlContent,
    baseUrlOrPath: "C:\templates\assets\",
    proxy:=proxyWithAuth
)
pdf.SaveAs("report.pdf")
$vbLabelText   $csharpLabel

パスワード内の特殊文字は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";
string rawPassword = "P@ssw0rd!";
string encoded = Uri.EscapeDataString(rawPassword); // "P%40ssw0rd%21"
string proxy = $"http://svc-account:{encoded}@proxy.co/rp.local:8080";
Imports System

Dim rawPassword As String = "P@ssw0rd!"
Dim encoded As String = Uri.EscapeDataString(rawPassword) ' "P%40ssw0rd%21"
Dim proxy As String = $"http://svc-account:{encoded}@proxy.co/rp.local:8080"
$vbLabelText   $csharpLabel

プロキシ認証とWebページ認証を混同しないでください。NetworkPasswordプロパティは、プロキシサーバーに対してではなく、レンダリングされるWebページに対して認証を行います(WebサイトとのNTLM/Negotiate)。 プロキシ認証の場合、認証情報は上記のようにプロキシURLの文字列内に記述します。

プロキシ経由のURLはどのようにレンダリングしますか?

RenderUrlToPdf は proxy パラメータを受け付けません。 これは意図的なAPI設計上の選択です。NavigateUrlはChromiumを特定のURLへ移動させますが、その移動時のプロキシ設定は、HTMLレンダリング中のリソース読み込み時とは異なる方法で処理されます。

推奨される回避策:HttpClientHttpProxy で設定して HTML を自身で取得し、その HTML 文字列を proxy パラメータ付きで RenderHtmlAsPdf に渡します(これにより、参照されるアセット(画像、CSS、フォントなど)もプロキシ経由でルーティングされます)。

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

// Step 1: Configure HttpClient with the corporate proxy
var proxy = new WebProxy("http://proxy.co/rp.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.co/rp/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.co/rp.local:8080"
);
pdf.SaveAs("quarterly-report.pdf");
using IronPdf;
using System.Net;
using System.Net.Http;

// Step 1: Configure HttpClient with the corporate proxy
var proxy = new WebProxy("http://proxy.co/rp.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.co/rp/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.co/rp.local:8080"
);
pdf.SaveAs("quarterly-report.pdf");
Imports IronPdf
Imports System.Net
Imports System.Net.Http

' Step 1: Configure HttpClient with the corporate proxy
Dim proxy As New WebProxy("http://proxy.co/rp.local:8080") With {
    .Credentials = New NetworkCredential("svc-account", "P@ssw0rd!")
}

Dim handler As New HttpClientHandler With {
    .Proxy = proxy,
    .UseProxy = True
}

Using httpClient As New HttpClient(handler)
    ' Step 2: Fetch the HTML from the target URL
    Dim targetUrl As String = "https://dashboard.internal.co/rp/quarterly-report"
    Dim html As String = Await httpClient.GetStringAsync(targetUrl)

    ' Step 3: Render the fetched HTML, with the proxy for asset loading
    Dim renderer As New ChromePdfRenderer()

    Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(
        html,
        baseUrlOrPath:=targetUrl,  ' Resolves relative asset paths against the original URL
        proxy:="http://svc-account:P%40ssw0rd%21@proxy.co/rp.local:8080"
    )
    pdf.SaveAs("quarterly-report.pdf")
End Using
$vbLabelText   $csharpLabel

baseUrlOrPath パラメータには元のターゲット URL が設定されており、これにより取得された HTML 内の相対パス(<link href="/css/styles.css">)が正しく解決されます。 proxy パラメータは、レンダリング中にこれらのアセットリクエストがプロキシを経由するようにします。

この手法は、認証が必要なページでも機能します。取得前に HttpClient を適切なクッキーまたはヘッダーで設定し、認証済みの HTML を IronPDF に渡してください。 HTTPリクエストヘッダー解説では、認証済みリクエストのヘッダー設定について説明しています。

ページがレンダリングに JavaScript に依存している場合(SPA、React ダッシュボード、Angular アプリなど)、取得される HTML には初期のシェル部分のみが含まれます。HttpClient フェッチ中は、クライアントサイドレンダリングは実行されません。 そのような場合、2つの選択肢があります。システムレベルの HTTPS_PROXY 環境変数を設定し(詳細は次のセクション)、RenderUrlAsPdf() が OS レベルでプロキシを経由するようにするか、ヘッドレスブラウザを使用して完全にレンダリングされた HTML を取得してから RenderHtmlAsPdf() に渡すかのいずれかです。

Dockerコンテナでプロキシを設定するにはどうすればよいですか?

コンテナ化された環境では、メソッドごとのパラメータ設定よりも、システムレベルのプロキシ設定を好む場合があります。 IronPDFのChromiumエンジンは、Linuxコンテナがアウトバウンドトラフィックのルーティングに使用する標準の環境変数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"]

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

// No proxy parameter needed — Chromium uses HTTP_PROXY env var
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// No proxy parameter needed — Chromium uses HTTP_PROXY env var
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
' No proxy parameter needed — Chromium uses HTTP_PROXY env var
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
$vbLabelText   $csharpLabel

RenderHtmlAsPdf() は社内リソースにとって重要です。 そうしないと、内部サービス(Kubernetesクラスタ内で稼働しているローカルCSSサーバーや画像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
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
YAML

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'
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'
YAML

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

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

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

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



Dim proxy As String = Environment.GetEnvironmentVariable("HTTPS_PROXY")
Dim pdf = renderer.RenderHtmlAsPdf(html, baseUrlOrPath:=Nothing, proxy:=proxy)
$vbLabelText   $csharpLabel

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

タイムアウトエラー:企業のプロキシがレイテンシを引き起こします。 デフォルトの60秒からレンダリングタイムアウトを延長します:

renderer.RenderingOptions.Timeout = 120; // seconds
renderer.RenderingOptions.Timeout = 120; // seconds
renderer.RenderingOptions.Timeout = 120 ' seconds
$vbLabelText   $csharpLabel

これは RenderTimeout プロパティです。これは、Chromium がページの読み込みとリソースの取得を合わせて待機する時間を制御します。 プロキシがリクエストごとに5~10秒の遅延を生じさせ、ページが20以上の外部リソースを読み込む場合、60秒では不十分な可能性があります。

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

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

NTLM認証:インラインの user:pass@host 形式は、Basic および Digest プロキシ認証をサポートしています。 プロキシURL文字列を介したNTLM(Windows中心のEnterpriseで一般的)はサポートされていません。 回避策として、ホスト上で、あるいはサイドカーコンテナとして、CNTLMのようなローカルのNTLM-to-Basic転送プロキシを実行します。 CNTLMをNTLM認証情報で設定し、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.Co/ntent.ReadAsStringAsync());
// Should return the proxy's external IP, not your machine's IP
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.Co/ntent.ReadAsStringAsync());
// Should return the proxy's external IP, not your machine's IP
Imports System.Net.Http
Imports System.Net

Dim proxy As New WebProxy("http://proxy.co/rp.local:8080")
Dim handler As New HttpClientHandler With {.Proxy = proxy, .UseProxy = True}
Using client As New HttpClient(handler)
    Dim 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
End Using
$vbLabelText   $csharpLabel

これで解決してもIronPDFが依然として動作しない場合は、SSLの傍受、またはプロキシとChromiumのCONNECTトンネリング間のプロトコル不一致が原因である可能性が高いです。 プロキシがHTTPSリソースに対してHTTP CONNECTをサポートしているか確認してください。一部のプロキシでは、トンネリングを許可するために明示的な設定が必要です。

今後の手順

IronPDFにおけるプロキシのサポートは、RenderHtmlAsPdf()のメソッドパラメータとして実装されています。プロキシ文字列を渡すと、ChromiumエンジンはすべてのHTTPトラフィックをそのプロキシ経由でルーティングします。 RenderUrlAsPdf() のシナリオでは、まず HttpClientWebProxy を使用して HTML を取得します。 コンテナおよびCI/CDについては、システムレベルの HTTPS_PROXY 環境変数を使用することで、コードを変更することなくインフラストラクチャレベルでの制御が可能になります。

Webページ認証(プロキシ認証とは異なります)に関するログインおよび認証の手順、カスタムヘッダーに関するHTTPリクエストヘッダーガイド、タイムアウトやパフォーマンス調整に関するレンダリングオプションのリファレンスをご覧ください。

$999 からライセンスオプションをご覧くださいChromePdfRenderer API リファレンスにはすべてのメソッドのオーバーロードが記載されており、ChromePdfRenderOptions リファレンスには設定可能なすべてのプロパティが網羅されています。 RenderUrlAsPdf() ProxyAddress ChromePdfRenderOptions RenderHtmlAsPdf StaticRenderHtmlAsPdf RenderUrlAsPdf HttpClient WebProxy RenderHtmlAsPdf() ```yaml

仕様: コンテナ:

  • name: pdf-generator 画像: myregistry/pdf-service:latest env:
    • name: HTTP_PROXY valueFrom: configMapKeyRef: name: proxy-config key: http-proxy
    • name: HTTPS_PROXY valueFrom: configMapKeyRef: name: proxy-config key: https-proxy
    • name: NO_PROXY value: "localhost,127.0.0.1,.internal.co/rp" <a href="https://ironpdf.com/object-reference/api/IronPdf.ChromePdfRenderOptions.html">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ポリシーに準拠しやすくします。

Darrius Serrant
フルスタックソフトウェアエンジニア(WebOps)

Darrius Serrantは、マイアミ大学でコンピュータサイエンスの学士号を取得し、Iron SoftwareでフルスタックWebOpsマーケティングエンジニアとして働いています。若い頃からコーディングに惹かれ、コンピューティングを神秘的かつアクセス可能なものとし、創造性と問題解決のための完璧な媒体と考えていました。

Iron Softwareでは、新しいものを創造することと、複雑なコンセプトをより理解しやすくすることを楽しんでいます。Resident Developerの一人として、次世代に専門知識を共有するために、学生を教えることにも志願しました。

Darriusにとって、その仕事は価値があり、実際の影響があるため、満足感があります。

準備はできましたか?
Nuget ダウンロード 19,014,616 | バージョン: 2026.5 just released
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronPdf
サンプルを実行するHTML が PDF に変換されるのを確認します。