Ghostscript GPL vs IronPDF:技術比較ガイド
HTMLからPDFを生成するEnterpriseアプリケーションは、通常、直接インターネットに接続できないセキュリティが強化されたネットワーク内で実行されます。 問題はレンダー時に発生します:請求書やレポートテンプレートが外部CDNにホストされているロゴ、Webフォント、スタイルシートを参照し、会社のネットワーク内ではそれらのリクエストが無音で失敗します。 ドキュメントはスタイルが適用されず、画像が壊れ、フォントが欠けた状態で出力されます。 レンダリングエンジンを会社のプロキシを通じてルーティングすることでこれを解決でき、IronPDFはそのレンダー呼び出しで直接プロキシを受け入れます。
ビジネス問題
財務、医療、保険のアプリはWebテンプレートからクライアントドキュメントを生成します。 これらのテンプレートは外部アセットを取得しますが、サーバーはファイアウォールとプロキシの背後にあります。 プロキシ設定なしでは、エンジンはアセットにアクセスできず、そのために出力が壊れて見えます。 多くのこれらの環境では認証されたプロキシも実行されており、これには資格情報が必要になります。
ソリューション
プロキシはRenderHtmlAsPdfメソッドのパラメータであり、レンダーオプションのプロパティではありません。 プロキシ文字列を渡すことで、エンジンからのすべてのアセットリクエストをそのプロキシを通じてルーティングします。
using IronPdf;
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(
htmlContent,
baseUrlOrPath: @"C:\templates\assets\",
proxy: "http://proxy.co/rp.local:8080"
);
pdf.SaveAs("report.pdf");
認証されたプロキシの場合、資格情報はプロキシURLに含めます。 パスワード内の特殊文字はパーセントエンコードする必要があります。
string encoded = Uri.EscapeDataString("P@ssw0rd!");
string proxy = $"http://svc-account:{encoded}@proxy.co/rp.local:8080";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent, baseUrlOrPath: null, proxy: proxy);
プロキシの背後での内部URLのレンダリング
URLレンダーメソッドはプロキシパラメータを受け入れません。 実際のパターンはプロキシに設定されたHttpClientを使ってHTMLを取得し、そのHTMLをレンダリングすることで、参照されたアセットもプロキシを通じてルーティングされます。
using System.Net;
using System.Net.Http;
var webProxy = new WebProxy("http://proxy.co/rp.local:8080")
{
Credentials = new NetworkCredential("svc-account", "P@ssw0rd!")
};
var handler = new HttpClientHandler { Proxy = webProxy, UseProxy = true };
using var httpClient = new HttpClient(handler);
string html = await httpClient.GetStringAsync("https://dashboard.internal.co/rp/report");
PdfDocument pdf = renderer.RenderHtmlAsPdf(html, baseUrlOrPath: null, proxy: "http://proxy.co/rp.local:8080");
計画すべきポイント
- プロキシ認証はページ認証ではありません: プロキシURLの資格情報はプロキシに対して認証を行い、ウェブサイトのログイン資格情報とは異なります。
- スキームはプロキシホップを指します:
https://リソースを依然として取得できるため、スキームの選択はアプリからプロキシへの接続にTLSが必要かどうかに関します。 - コンテナおよびパイプライン: DockerデプロイおよびCIビルドエージェントは通常イグレスがなく、同じプロキシ設定が適用されます。
結果
1つのパラメータで、チームは認証された環境やコンテナを含む企業プロキシの背後で実行されるアプリケーションから完全にスタイリングされたブランド化されたPDFを取得します。 詳細な設定情報はプロキシガイドに記載されています。

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