IRONSOFTWAREHOME
製品比較

PDFsharpに代わるPDFから画像への最良の代替案を探る

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

ほとんどのHTMLからPDFへのジョブは、同じ理由で失敗します:ユーザーがサインインした後でのみページが正しく表示されます。 IronPDFはChromiumエンジンを駆動しており、未認証のブラウザが見るもの、つまりログイン画面や空のシェルが、正しいクッキーを渡すまでは表示されます。 3つのAPIの部分がこれを解決します。CustomCookies辞書です。 ここにそれぞれのフィットする場所と適合するスニペットがあります。

ログインの背後で請求書と声明をレンダリングする

顧客の請求書はセッション保護されたルートにあり、アプリケーションが既にそのセッションを保持しています。 そのセッションIDをCustomCookiesを通じて直接渡します:

using IronPdf;
using System.Collections.Generic;

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.RequestContext = IronPdf.Rendering.RequestContexts.Global;
renderer.RenderingOptions.CustomCookies = new Dictionary<string, string>
{
    { "ASP.NET_SessionId", sessionId }
};

renderer.RenderUrlAsPdf("https://app.example.com/account/invoices/1042")
        .SaveAs("invoice-1042.pdf");

基本認証またはWindows認証の場合は、代わりにApplyCookiesを利用してください。 指定された資格情報でURLにサインインし、生成されたクッキーをグローバルコンテキストにキャプチャし、その後のレンダリングで再利用します。

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.RequestContext = IronPdf.Rendering.RequestContexts.Global;

var credentials = new ChromeHttpLoginCredentials
{
    NetworkUsername = "svc_reports",
    NetworkPassword = "your_password"
};

string uri = "https://app.example.com/account/invoices/1042";
renderer.ApplyCookies(uri, credentials);

renderer.RenderUrlAsPdf(uri).SaveAs("invoice-1042.pdf");

トークンベースおよびサードパーティ認証

現代のアプリは、単純なHTTP資格情報にほとんど寄りかかりません。 JWT、OAuth、またはSAMLで認証し、結果をクッキーに保存することがよくあります。 CustomCookiesは任意のキーと値のペアを受け入れるので、ベアラートークンやアイデンティティプロバイダのクッキーを直接投入できます:

renderer.RenderingOptions.CustomCookies = new Dictionary<string, string>
{
    { "auth_token", jwt },
    { "refresh_token", refreshToken }
};

パーソナライズおよびローカライズされたドキュメント

クッキーはしばしばロケール、通貨、または機能フラグの状態を運びます。 それらを転送すると、その特定のユーザーが見るものと一致するPDFが正しい言語と通貨で表示されます。

renderer.RenderingOptions.CustomCookies = new Dictionary<string, string>
{
    { "locale", "en-AU" },
    { "currency", "AUD" },
    { "feature_newLayout", "on" }
};

同一セッションを共有するバッチ生成

同じ認証済みユーザーのために連続して多くのPDFを生成するには、Globalに設定してください。 ブラウザの状態(クッキーを含む)はレンダリング間で保持されるので、1回だけ認証するだけで、各ドキュメントごとに認証する必要がありません。

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.RequestContext = IronPdf.Rendering.RequestContexts.Global;
renderer.RenderingOptions.CustomCookies = new Dictionary<string, string>
{
    { "ASP.NET_SessionId", sessionId }
};

foreach (var id in invoiceIds)
{
    renderer.RenderUrlAsPdf($"https://app.example.com/invoices/{id}")
            .SaveAs($"invoice-{id}.pdf");
}

クッキー漏れなしの同時レンダリング

反対のシナリオも同様に重要です。 多くの異なるユーザーのために一度にサービスをレンダリングするには、Isolatedコンテキストが必要です。これにより各レンダーにはクリーンな状態が与えられ、あるユーザーのセッションが他のユーザーのドキュメントに漏れるのを防ぎます。 各スレッドに独自のレンダラーを与えます。

using System.Threading.Tasks;

Parallel.ForEach(jobs, job =>
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.RequestContext = IronPdf.Rendering.RequestContexts.Isolated;
    renderer.RenderingOptions.CustomCookies = new Dictionary<string, string>
    {
        { "ASP.NET_SessionId", job.SessionId }
    };

    renderer.RenderUrlAsPdf(job.Url).SaveAs(job.OutputPath);
});

方法をジョブに一致させる

基本HTTP認証、Windows認証、および単純なセッションには標準クッキー (ApplyCookies) を使用してください。 トークン、マルチパラメータセッション、サードパーティプロバイダ、および保存された設定にはCustomCookiesを利用してください。 レンダー間で状態を共有するためにIsolatedを選んでください; ApplyCookiesが呼び出されるとグローバルに切り替わります。

ほとんどの失敗は、期限切れのトークン、不一致のクッキードメイン、HTTPS URLでのセキュアクッキーの取り扱い、およびクロスオリジンリクエストでのSameSiteポリシーの周りに集中しています。 レンダリングの前にクッキーの有効性を確認し、セッションを持続させる必要がある場合にはGlobalを頼りにしてください。

クッキーが全作業の時

クッキーはPDF生成において例外ではありません。 それらが正しければ、使用可能なドキュメントを届けることができ、 誤っていたら、ログインフォームのスクリーンショットを届けることになってしまいます。

Curtis Chau
テクニカルライター

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

...
詳しく読む

関連する記事

Key in blue circle

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

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

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日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。