フッターコンテンツにスキップ
製品比較

IronPDF対Accusoft PDF Viewer: HTMLからPDFに最適なC#ライブラリはどれか?

IronPDFと Accusoft PDF Viewer はどちらも.NETでHTML を PDF に変換します。 IronPDFは、分かりやすい構文、クラウドに依存しないローカル処理、そして無制限の変換機能を699ドルから提供しています。一方、Accusoftはインターネット接続が必要で、トランザクションごとに料金が発生します。

## IronPDFとAccusoft PDF Viewerの比較
  • HTMLをPDFに変換
  • PDFのヘッダーとフッターの設定
  • PDFを画像ファイルに変換
  • ライセンス、無料トライアルオプションなどを比較する

概要

IronPDFとは何ですか? どのように機能しますか?

IronPDFは、開発者がHTML 文字列Web ページURLなどのソースから PDF ファイルを作成できるようにするC# HTML から PDF へのライブラリです。 また、透かしブックマークヘッダーとフッターなどのプロパティを設定することもできます。 さらに、開発者は、画像から PDF への変換を使用して、複数の PDF ファイルを 1 つに結合したり、 PDF ページを画像に変換したり、その逆を行ったりすることができます。

IronPDF は開発には無料で、ライブ プロジェクト向けに30 日間の展開トライアルを提供しています。 開発者がすぐに作業を開始できるように、完全なドキュメントコード例API リファレンスを提供します。

Developers can download a file project from this link.

What Is Accusoft PrizmDoc Viewer and How Does It Work?

PrizmDoc Viewer はPDF ファイルを操作し、リモートで他の形式に変換する REST API です。 PrizmDoc は、100 を超えるさまざまなファイル形式を PDF に変換したり、PDF をPNG、JPGTIFF 、SVG に変換したりできます。 また、アプリケーションに対してさまざまな電子署名オプションも提供します。

How Do IronPDF and PrizmDoc Viewer Compare?

IronPDF `PrizmDoc` Viewer
Work with [PDF files programmatically](/how-to/csharp-parse-pdf/). プログラム的にPDFファイルを扱う。
Supports [.NET Core](/docs/) with [Windows](/get-started/windows/), [Mac](/get-started/macos/), or [Linux](/get-started/linux/). Windows、Mac、またはLinuxを使用する.NET Coreをサポートします。
[Works Locally](/get-started/installation-overview/) Sends Documents to a [remote server](/get-started/ironpdfengine/).
Work with or without [Asynchronous Programming](/how-to/async/). Must use Asynchronous Programming with `System.Threading.Tasks`.
Works offline once [installed](/get-started/installation-overview/). Requires internet connection for `PrizmDoc` server requests.
Provides many [predefined functions](/features/). いくつかの定義済みの機能を提供します。
Often requires [minimal lines of code](/tutorials/html-to-pdf/). 多くのコード行を必要とすることがよくあります。
[無制限 conversions](/licensing/) per project in each license. クラウド ホスト ライセンスのトランザクションは制限されています。
[Free for development](/get-started/quickstart/) without time limits. トライアルでの取引はわずか300件です。

両方のライブラリをインストールしてコードを比較してみましょう。


ステップ1:インストール

私 for .NETプロジェクトにIronPDFをインストールする方法は?

プロジェクトにIronPDFをインストールするには 2 つの方法があり、方法に違いはありません。 IronPDF は、 Azure デプロイメントAWS LambdaDocker コンテナーBlazorアプリケーションなど、さまざまな環境をサポートしています。

IronPDFをダウンロードするにはどのような方法がありますか?

IronPDF.dll をダウンロードし、その参照をプロジェクトに追加します。 開発者は、システム全体のインストールにWindows インストーラーを使用することもできます。 この後、名前空間IronPDF は次のようにアクセスできるようになります。

using IronPdf;
using IronPdf;
$vbLabelText   $csharpLabel

これで、開発者はレンダリング、 PDF ドキュメント操作セキュリティ機能用のChromePdfRendererを含むIronPDFの提供されている機能とクラスに簡単にアクセスできるようになりました。

NuGetパッケージ マネージャー経由でIronPDFをインストールするにはどうすればよいですか?


How Do I Install PrizmDoc Viewer from Accusoft?

PrizmDoc ビューアーには、RESTful API として動作する PrizmDoc Server と呼ばれるサーバー側コンポーネントと、API にリクエストを送信して応答を受信するクライアント プロジェクトの 2 つの部分があります。 外部依存性なしでローカルで動作するIronPDFとは異なり、PrizmDoc ではクラウドベースの操作にネットワーク接続が必要です。

How Can I Access the PrizmDoc Server?

PrizmDoc サーバーは、ドキュメントとともに基本情報をリクエスト (入力) として受信し、ドキュメントをPDF ファイルに変換し、変換された PDF ファイルをレスポンス (出力) として送り返すサーバー側アプリケーションです。 これは製品の技術的な中核を成す、ドキュメント処理および変換エンジンです。開発者は、同じプログラミング構造と技術を持つ2つの異なる方法でこれを利用できます。

  1. セルフホスト:

    このオプションでは、サーバーを用意する必要があります。 PrizmDoc Server をダウンロードしてインストールします。 Windows に PrizmDoc Server をインストールする方法の詳細については、こちらをご覧ください

    注:パフォーマンスを向上させるには、最低 32 GB の RAM と 4 コアの CPU が必要です。 対照的に、 IronPDF のシステム要件ははるかに控えめです。

  2. クラウドホスト:

    クラウドベースのサービスなのでサーバーを用意する必要がありません。 このオプションを使用するには、アカウントを作成し、ホームページの API Key メニューから API key をコピーします。

まず、C# コンソール アプリケーションで WebClient() を使用して Accusoft server と直接対話し、PrizmDoc ビューアーを操作してドキュメントを PDF ファイルに変換するための基本構造を調べてみましょう。

注:次の例は、PrizmDoc が PDF ファイルを概念的にどのように処理するかを示しています。 長いので、この例は飛ばして直接比較に進んでください

Accusoft の作業構造はどのように機能しますか?

この例では、myWebpage.htmlsample.pdf に変換します。 IronPDF の簡単な HTML から PDF への変換とは異なり、PrizmDoc では複数の API 呼び出しが必要です。

注意: Newtonsoft.Json ライブラリをインストールし、プロジェクトに参照する必要があります。

まず、次のライブラリをプロジェクトに追加します。

using System;
using System.IO;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq; // Install Newtonsoft.Json via NuGet Package Manager
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq; // Install Newtonsoft.Json via NuGet Package Manager
$vbLabelText   $csharpLabel

次に、パブリック変数 Accusoft API Key を作成し、そこに API キーを貼り付けます。

static string ApiKey = "Your-API-KEY";
static string ApiKey = "Your-API-KEY";
$vbLabelText   $csharpLabel

PrizmDoc ビューアを使用して PDF ファイルを処理するには、次の 3 つの手順があります。

  1. PrizmDoc サーバーにファイルをアップロードします。
  2. アップロードされたファイルを変換します。
  3. PrizmDoc サーバーから変換されたファイルをダウンロードします。

個別の関数が各ステップを処理します。

static void Main(string[] args)
{
    //---Upload file to Server---
    JObject uploadResults = UploadToServer("myWebpage.html").Result;
    string fileID = (string)uploadResults.SelectToken("fileId");
    string affinityToken = (string)uploadResults.SelectToken("affinityToken");

    //---Convert the uploaded file to PDF---
    JObject convertResults = Convert(affinityToken, fileID).Result;
    string processId = (string)convertResults.SelectToken("processId");
    affinityToken = (string)convertResults.SelectToken("affinityToken");

    //---Check the status that conversion is completed---
    JObject convertStatusResults = ConvertStatus(processId, affinityToken).Result;
    string convertStatus = (string)convertStatusResults.SelectToken("state");

    //---Continuously checking whether conversion completed---
    while (!(convertStatus.Equals("complete")))
    {
        System.Threading.Thread.Sleep(30000);
        convertStatusResults = ConvertStatus(processId, affinityToken).Result;
        convertStatus = (string)convertStatusResults.SelectToken("state");
    }

    //---Download the converted file from server---
    string newFileID = (string)convertStatusResults.SelectToken("output.results[0].fileId");
    DownloadFromServer(affinityToken, newFileID, "sample.pdf").Wait();

    Console.WriteLine("PDF file created successfully...!");
    Console.ReadKey();
}
static void Main(string[] args)
{
    //---Upload file to Server---
    JObject uploadResults = UploadToServer("myWebpage.html").Result;
    string fileID = (string)uploadResults.SelectToken("fileId");
    string affinityToken = (string)uploadResults.SelectToken("affinityToken");

    //---Convert the uploaded file to PDF---
    JObject convertResults = Convert(affinityToken, fileID).Result;
    string processId = (string)convertResults.SelectToken("processId");
    affinityToken = (string)convertResults.SelectToken("affinityToken");

    //---Check the status that conversion is completed---
    JObject convertStatusResults = ConvertStatus(processId, affinityToken).Result;
    string convertStatus = (string)convertStatusResults.SelectToken("state");

    //---Continuously checking whether conversion completed---
    while (!(convertStatus.Equals("complete")))
    {
        System.Threading.Thread.Sleep(30000);
        convertStatusResults = ConvertStatus(processId, affinityToken).Result;
        convertStatus = (string)convertStatusResults.SelectToken("state");
    }

    //---Download the converted file from server---
    string newFileID = (string)convertStatusResults.SelectToken("output.results[0].fileId");
    DownloadFromServer(affinityToken, newFileID, "sample.pdf").Wait();

    Console.WriteLine("PDF file created successfully...!");
    Console.ReadKey();
}
$vbLabelText   $csharpLabel

1. サーバーへのファイルのアップロード:

public static async Task<JObject> UploadToServer(string fileToUpload)
{
    FileInfo input = new FileInfo(fileToUpload);
    if (input == null)
    {
        throw new ArgumentException("Missing parameter input", nameof(input));
    }
    var fileName = input.Name;
    var endpoint = new Uri("___PROTECTED_URL_123___");
    using (var client = new WebClient())
    {
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Content-Type", "application/octet-stream");
        using (var reader = new BinaryReader(input.OpenRead()))
        {
            var data = reader.ReadBytes((int)reader.BaseStream.Length);
            var results = await client.UploadDataTaskAsync(endpoint, "POST", data);
            string getResult = Encoding.ASCII.GetString(results);
            return JObject.Parse(getResult);
        }
    }
}
public static async Task<JObject> UploadToServer(string fileToUpload)
{
    FileInfo input = new FileInfo(fileToUpload);
    if (input == null)
    {
        throw new ArgumentException("Missing parameter input", nameof(input));
    }
    var fileName = input.Name;
    var endpoint = new Uri("___PROTECTED_URL_123___");
    using (var client = new WebClient())
    {
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Content-Type", "application/octet-stream");
        using (var reader = new BinaryReader(input.OpenRead()))
        {
            var data = reader.ReadBytes((int)reader.BaseStream.Length);
            var results = await client.UploadDataTaskAsync(endpoint, "POST", data);
            string getResult = Encoding.ASCII.GetString(results);
            return JObject.Parse(getResult);
        }
    }
}
$vbLabelText   $csharpLabel

2. アップロードされたファイルをPDFに変換:

public static async Task<JObject> Convert(string affinityToken, string fileID)
{
    var endpoint = new Uri("___PROTECTED_URL_124___");
    using (var client = new WebClient())
    {
        client.Headers.Add("Content-Type", "application/json");
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Accusoft-Affinity-Token", affinityToken);
        JObject myJson =
            new JObject(
                new JProperty("input",
                    new JObject(
                        new JProperty("sources",
                            new JArray(
                                new JObject(
                                    new JProperty("fileId", fileID)
                                )
                            )
                        ),
                        new JProperty("dest",
                            new JObject(
                                new JProperty("format", "pdf")
                            )
                        )
                    )
                )
            );
        string results = await client.UploadStringTaskAsync(endpoint, "POST", myJson.ToString());
        return JObject.Parse(results);
    }
}
public static async Task<JObject> Convert(string affinityToken, string fileID)
{
    var endpoint = new Uri("___PROTECTED_URL_124___");
    using (var client = new WebClient())
    {
        client.Headers.Add("Content-Type", "application/json");
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Accusoft-Affinity-Token", affinityToken);
        JObject myJson =
            new JObject(
                new JProperty("input",
                    new JObject(
                        new JProperty("sources",
                            new JArray(
                                new JObject(
                                    new JProperty("fileId", fileID)
                                )
                            )
                        ),
                        new JProperty("dest",
                            new JObject(
                                new JProperty("format", "pdf")
                            )
                        )
                    )
                )
            );
        string results = await client.UploadStringTaskAsync(endpoint, "POST", myJson.ToString());
        return JObject.Parse(results);
    }
}
$vbLabelText   $csharpLabel

次の JSON は、myJson オブジェクトの結果の値です。

{
  "input": {
    "sources": 
    [
      {"fileId": "Auto Generated FileId Value"}
    ],
    "dest": {
      "format": "pdf"
    }
  }
}

変換が完了しているか状態を確認

public static async Task<JObject> ConvertStatus(string processId, string affinityToken)
{
    string endpoint = "___PROTECTED_URL_125___" + processId;
    using (var client = new WebClient())
    {
        client.BaseAddress = endpoint;
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Accusoft-Affinity-Token", affinityToken);
        string results = await client.DownloadStringTaskAsync(endpoint);
        return JObject.Parse(results);
    }
}
public static async Task<JObject> ConvertStatus(string processId, string affinityToken)
{
    string endpoint = "___PROTECTED_URL_125___" + processId;
    using (var client = new WebClient())
    {
        client.BaseAddress = endpoint;
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Accusoft-Affinity-Token", affinityToken);
        string results = await client.DownloadStringTaskAsync(endpoint);
        return JObject.Parse(results);
    }
}
$vbLabelText   $csharpLabel

3. サーバーから変換されたファイルをダウンロードする

public static async Task DownloadFromServer(string affinityToken, string fileId, string outfile)
{
    var endpoint = new Uri("___PROTECTED_URL_126___" + fileId);

    using (var client = new WebClient())
    {
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Accusoft-Affinity-Token", affinityToken);
        FileInfo output = new FileInfo(outfile);

        using (var writeStream = output.Create())
        {
            var results = await client.DownloadDataTaskAsync(endpoint);
            await writeStream.WriteAsync(results, 0, results.Length);
        }
    }
}
public static async Task DownloadFromServer(string affinityToken, string fileId, string outfile)
{
    var endpoint = new Uri("___PROTECTED_URL_126___" + fileId);

    using (var client = new WebClient())
    {
        client.Headers.Add("acs-api-key", ApiKey);
        client.Headers.Add("Accusoft-Affinity-Token", affinityToken);
        FileInfo output = new FileInfo(outfile);

        using (var writeStream = output.Create())
        {
            var results = await client.DownloadDataTaskAsync(endpoint);
            await writeStream.WriteAsync(results, 0, results.Length);
        }
    }
}
$vbLabelText   $csharpLabel

上記の例ではかなりの労力が必要です。 ワークロードを最小限に抑えるために、Accusoft は、PrizmDoc Server REST API のラッパーであるAccusoft.PrizmDocServerSDKという.NETライブラリを導入しました。 このライブラリを.NETプロジェクトにインストールして使用する方法を調べてみましょう。

How Do I Install Accusoft.PrizmDocServerSDK?

ラッパーをインストールする方法は2つあります。

  • パッケージマネージャコンソールを使っている場合:

    パッケージ マネージャー コンソールを使用する場合は、次のコマンドを実行します。

    _コードブロック10

  • ソリューションのパッケージの管理:

    NuGetパッケージ マネージャー GUI を使用する場合は、検索バーで Accusoft.PrizmDocServerSDK を参照してインストールします。

これで、開発者は Accusoft.PrizmDocServer 名前空間に簡単にアクセスして使用できるようになります。

using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer;
$vbLabelText   $csharpLabel

ハウツーチュートリアル

コード例において、 IronPDFと PrizmDoc ビューアはどのように比較されますか?

両方のコンポーネントの導入とインストールを確認した後、両方を操作してみましょう。 次のユース ケースでは、両方のコンポーネントを使用した実装を示し、プログラミング構造を理解し、プロジェクト要件に最適なものを判断するのに役立ちます。


IronPDFと PrizmDoc ビューアを使用して HTML を PDF に変換するにはどうすればいいですか?

この比較のために、myWebPage.html という名前の Web ページをPDF ファイルに変換し、ターゲットの場所に保存してみましょう。 IronPDF のChrome レンダリング エンジンは、 CSSJavaScriptWeb フォントを完全にサポートし、ピクセル単位の完璧な変換を実現します。

IronPDF はどのようにして HTML を PDF に変換するのでしょうか?

using IronPdf;

static void Main(string[] args)
{
    // Create rendering converter
    var converter = new ChromePdfRenderer();
    // Render HTML file to PDF
    using var PDF = converter.RenderHTMLFileAsPdf("myWebPage.html");
    // Save to target location
    PDF.SaveAs("sample.pdf");
}
using IronPdf;

static void Main(string[] args)
{
    // Create rendering converter
    var converter = new ChromePdfRenderer();
    // Render HTML file to PDF
    using var PDF = converter.RenderHTMLFileAsPdf("myWebPage.html");
    // Save to target location
    PDF.SaveAs("sample.pdf");
}
$vbLabelText   $csharpLabel

上記のコードは、sample.pdf ファイルを作成し、プロジェクトのbin>debugフォルダーに保存します。 IronPDF は、入力ソースとしてHTML 文字列URL 、さらにはHTML を含む ZIP ファイルもサポートします。

開発者は、次のように任意のパスを指定することもできます: PDF.SaveAs("E:/sample.pdf"); または、クラウド展開用にメモリ ストリームに保存します。

IronPDFを使用して PDF ファイルを処理する方法の詳細については、こちらをご覧ください

ここで、比較のために、PrizmDoc Viewer を使用して同じタスクを実行してみましょう。

PrizmDoc ビューアはどのようにして HTML を PDF に変換するのでしょうか?

PrizmDoc ビューアのインストール セクションでは、Accusoft API Key の取得について説明しました。 使い方は次のとおりです。

まず、PrizmDoc サーバーにリクエストを送信し、応答を受信します。 このプロセスには時間がかかるため、非同期プログラミングが必要になります。 IronPDF はパフォーマンス向上のために非同期メソッドもサポートしています。

注意: PrizmDoc Viewer のクラウド サービスを使用して PDF ファイルを作成する場合は、システムがインターネットに接続されていることを確認してください。

using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    ChromePdfRenderer().GetAwaiter().GetResult();
}

private static async Task ChromePdfRenderer()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_127___", "Your-API-KEY");
    // Specify HTML file and convert it to a PDF.
    ConversionResult result = await prizmDocServer.ConvertToPdfAsync("myWebPage.html");
    // Save PDF file to the target location
    await result.RemoteWorkFile.SaveAsync("sample.pdf");
}
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    ChromePdfRenderer().GetAwaiter().GetResult();
}

private static async Task ChromePdfRenderer()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_127___", "Your-API-KEY");
    // Specify HTML file and convert it to a PDF.
    ConversionResult result = await prizmDocServer.ConvertToPdfAsync("myWebPage.html");
    // Save PDF file to the target location
    await result.RemoteWorkFile.SaveAsync("sample.pdf");
}
$vbLabelText   $csharpLabel

PrizmDoc ビューアーの操作の詳細については、こちらをご覧ください

より簡単な HTML から PDF への変換を提供するライブラリはどれですか?

これらの例は、 IronPDFシンプルな PDF ファイル作成方法を提供し、時間を短縮できることを示しています。IronPDFには、カスタム用紙サイズ余白ビューポート設定など、出力を微調整するためのレンダリングオプションも用意されています。


IronPDFと PrizmDoc ビューアを使用して画像を PDF に変換するにはどうすればよいですか?

この比較では、プロジェクトの debug フォルダーにある画像から PDF ファイルを作成する方法を示します。 開発者はIronPDFから始めます。

IronPDF はどのようにして画像を PDF に変換するのでしょうか?

using IronPdf;

static void Main(string[] args)
{
    // Specify the image to be converted
    using var converted = ImageToPdfConverter.ImageToPdf("google.png");
    // Save PDF file to the target location
    converted.SaveAs("sample.pdf");
}
using IronPdf;

static void Main(string[] args)
{
    // Specify the image to be converted
    using var converted = ImageToPdfConverter.ImageToPdf("google.png");
    // Save PDF file to the target location
    converted.SaveAs("sample.pdf");
}
$vbLabelText   $csharpLabel

IronPDF は、マルチフレーム TIFF 変換Azure Blob Storage からの画像の埋め込みBase64 画像の埋め込みもサポートしています。

出力:

このスクリーンショットは、上記のコードを使用して新しく作成された PDF ファイル sample.pdf を示しています。

Google ロゴを白い背景の中央に表示した PDF ドキュメント。IronPDF の画像から PDF への変換機能を示しています。

IronPDFを使用して画像から PDF ファイルを作成するのは簡単です。 ここで、PrizmDoc ビューアーを使用して同じタスクを実行し、生成された PDF ファイルを調べてみましょう。

PrizmDoc ビューアはどのようにして画像を PDF に変換するのでしょうか?

using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    ImageToPDF().GetAwaiter().GetResult();
}

private static async Task ImageToPDF()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_128___", "Your-API-KEY");
    // Specify the image to be converted
    ConversionResult results = await prizmDocServer.ConvertToPdfAsync("google.png");
    // Save PDF file to the target location
    await results.RemoteWorkFile.SaveAsync("sample.pdf");
}
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    ImageToPDF().GetAwaiter().GetResult();
}

private static async Task ImageToPDF()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_128___", "Your-API-KEY");
    // Specify the image to be converted
    ConversionResult results = await prizmDocServer.ConvertToPdfAsync("google.png");
    // Save PDF file to the target location
    await results.RemoteWorkFile.SaveAsync("sample.pdf");
}
$vbLabelText   $csharpLabel

出力:このスクリーンショットは、上記のコードから新しく作成された PDF ファイル sample.pdf を示しています。

PDF viewer displaying the Google logo on a gray background, showing `PrizmDoc`'s image conversion result

画像から PDF への変換に必要なコードが少ないライブラリはどれですか?

IronPDFに必要なのは 2 行のコードだけです。 対照的に、PrizmDoc サーバーを使用すると、非同期プログラミングでより多くのコード行が必要になります。 IronPDFからの出力では、使用可能なフルページのドキュメントも自動的に提供されます。 IronPDF は、画像の配置複数の画像の変換用の追加オプションを提供します。


IronPDFと PrizmDoc Viewer を使用して複数の PDF ファイルを結合するにはどうすればよいですか?

この比較では、A.pdfB.pdf、および C.pdf という名前の 3 つの PDF ファイルが存在すると仮定します。 タスクはそれらを 1 つの PDF ファイルに結合することです。 両方のコンポーネントがこのタスクを実行できます。 まず、例ではIronPDFを使用してこれを実行する方法を示します。

IronPDF はどのようにして PDF ファイルを結合するのでしょうか?

using IronPdf;
using System.Collections.Generic;

static void Main(string[] args)
{
    // Create rendering converter  
    var Renderer = new IronPdf.ChromePdfRenderer();
    // Create a list of pdf files
    var PDFs = new List<PdfDocument>();
    PDFs.Add(PdfDocument.FromFile("A.pdf"));
    PDFs.Add(PdfDocument.FromFile("B.pdf"));
    PDFs.Add(PdfDocument.FromFile("C.pdf"));
    // Merge the list of pdf file
    using PdfDocument PDF = PdfDocument.Merge(PDFs);
    // Save merged file to the target location
    PDF.SaveAs("sample.pdf");

    foreach(var pdf in PDFs)
    {
        pdf.Dispose();
    }
}
using IronPdf;
using System.Collections.Generic;

static void Main(string[] args)
{
    // Create rendering converter  
    var Renderer = new IronPdf.ChromePdfRenderer();
    // Create a list of pdf files
    var PDFs = new List<PdfDocument>();
    PDFs.Add(PdfDocument.FromFile("A.pdf"));
    PDFs.Add(PdfDocument.FromFile("B.pdf"));
    PDFs.Add(PdfDocument.FromFile("C.pdf"));
    // Merge the list of pdf file
    using PdfDocument PDF = PdfDocument.Merge(PDFs);
    // Save merged file to the target location
    PDF.SaveAs("sample.pdf");

    foreach(var pdf in PDFs)
    {
        pdf.Dispose();
    }
}
$vbLabelText   $csharpLabel

上記のコードは、A.pdfB.pdf、および C.pdf を結合した sample.pdf ファイルを作成します。 IronPDF は、PDF 間でのページの追加とコピー、およびPDF の分割もサポートしています。

ここで、PrizmDoc Viewer を使用して同じタスクを実行してみましょう。

PrizmDoc ビューアは PDF ファイルをどのように結合しますか?

using System.Threading.Tasks;
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    PdfMerge().GetAwaiter().GetResult();
}

private static async Task PdfMerge()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_129___", "Your-API-KEY");
    // Pass the list of pdf files to PrizmDoc Server
    ConversionResult result = await prizmDocServer.CombineToPdfAsync(
        new []
        {
            new ConversionSourceDocument("A.pdf"),
            new ConversionSourceDocument("B.pdf"),
            new ConversionSourceDocument("C.pdf"),
        });
    // Save merged file to the target location
    await result.RemoteWorkFile.SaveAsync("sample.pdf");
}
using System.Threading.Tasks;
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    PdfMerge().GetAwaiter().GetResult();
}

private static async Task PdfMerge()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_129___", "Your-API-KEY");
    // Pass the list of pdf files to PrizmDoc Server
    ConversionResult result = await prizmDocServer.CombineToPdfAsync(
        new []
        {
            new ConversionSourceDocument("A.pdf"),
            new ConversionSourceDocument("B.pdf"),
            new ConversionSourceDocument("C.pdf"),
        });
    // Save merged file to the target location
    await result.RemoteWorkFile.SaveAsync("sample.pdf");
}
$vbLabelText   $csharpLabel

上記のコードは、A.pdfB.pdf、および C.pdf ファイルを結合した sample.pdf ファイルも作成します。


IronPDFと PrizmDoc ビューアを使用して PDF にヘッダーとフッターを追加するにはどうすればよいですか?

この比較では、次の HTML と CSS を持つ、myWebPage.html という名前の単純な WebPage が存在すると仮定します。

<html>
<head>
    <style>
        li {
            font-size: x-large;
            color: rgba(156, 89, 13, 0.897);
            list-style: square;
        }
    </style>
</head>
<body>
    <h1 style="text-align: center;">Hello World..!</h1>
    <h1>Main Menu</h1>
    <ul>
        <li>SubMenu 1</li>
        <li>SubMenu 2</li>
        <li>SubMenu 3</li>
        <li>SubMenu 4</li>
        <li>SubMenu 5</li>
    </ul>
</body>
</html>
<html>
<head>
    <style>
        li {
            font-size: x-large;
            color: rgba(156, 89, 13, 0.897);
            list-style: square;
        }
    </style>
</head>
<body>
    <h1 style="text-align: center;">Hello World..!</h1>
    <h1>Main Menu</h1>
    <ul>
        <li>SubMenu 1</li>
        <li>SubMenu 2</li>
        <li>SubMenu 3</li>
        <li>SubMenu 4</li>
        <li>SubMenu 5</li>
    </ul>
</body>
</html>
HTML

目標は、この WebPage を次のヘッダーとフッターのプロパティを持つ PDF ファイルに変換することです。

  • ヘッダーの左側に Page Title
  • ヘッダーの右側に DateTime
  • フッターの右側にある Page Number of Total Pages

まず、 IronPDF がヘッダーとフッターをどのように処理するかを見てみましょう。

IronPDF はPDF のヘッダーとフッターをどのように処理しますか?

PDF ファイルのヘッダーとフッターを処理するために、 IronPDF は、次のように使用できる ChromePdfRenderer クラスに RenderingOptions というプロパティを提供します。

  • ヘッダー:

    _コードブロック19

  • フッター:

    _コードブロック20

TextHeaderFooter() を初期化するときに、次のプロパティを設定できます。

  • CenterTextヘッダーまたはフッターの中央にテキストを印刷します
  • LeftTextヘッダーまたはフッターの左側にテキストを印刷します
  • RightTextヘッダーまたはフッターの右側にテキストを印刷します
  • DrawDividerLineはページコンテンツとヘッダーまたはフッターを区切る線を描画します
  • FontFamilyヘッダーまたはフッターのフォントファミリを指定します
  • FontSizeヘッダーまたはフッターのフォントサイズを指定します *間隔は、ページコンテンツとヘッダーまたはフッターの間のスペースを調整します

次の定義済み属性は、ヘッダーまたはフッターのコンテンツを設定するのに役立ちます。 これらは中括弧 { } で記述されます:

  • {page}はヘッダーまたはフッターに現在のページ番号を印刷します
  • {total-pages}はヘッダーまたはフッターの合計ページ数を出力します
  • {url}はレンダリングされたページのURLを出力します
  • {date}はヘッダーまたはフッターに現在の日付を出力します
  • {time}はヘッダーまたはフッターに現在の時刻を表示します
  • {html-title}はレンダリングされたウェブページのタイトルをヘッダーまたはフッターに出力します。
  • {pdf-title}はヘッダーまたはフッターに文書のタイトルを印刷します

IronPDFを使用してヘッダーとフッターを操作する方法の詳細については、こちらをご覧ください。 IronPDF は、より複雑なデザインのためのHTML ヘッダーとフッターもサポートしています。

この例では、ユースケースを実装し、上記のプロパティの使用方法を示す次の例を示します。

using IronPdf;

static void Main(string[] args)
{
    // Create rendering converter
    var converter = new ChromePdfRenderer();
    // Setting Header properties
    converter.RenderingOptions.TextHeader = new TextHeaderFooter()
    {
        DrawDividerLine = true,
        LeftText = "Page Title",
        RightText = "{date} {time}",
        FontSize = 13
    };
    // Setting footer properties
    converter.RenderingOptions.TextFooter = new TextHeaderFooter()
    {
        RightText = "Page {page} of {total-pages}",
        FontSize = 12
    };
    // Specify the file to be converted
    using var PDF = converter.RenderHTMLFileAsPdf("myWebPage.html");
    // Save to target location
    PDF.SaveAs("sample.pdf");
}
using IronPdf;

static void Main(string[] args)
{
    // Create rendering converter
    var converter = new ChromePdfRenderer();
    // Setting Header properties
    converter.RenderingOptions.TextHeader = new TextHeaderFooter()
    {
        DrawDividerLine = true,
        LeftText = "Page Title",
        RightText = "{date} {time}",
        FontSize = 13
    };
    // Setting footer properties
    converter.RenderingOptions.TextFooter = new TextHeaderFooter()
    {
        RightText = "Page {page} of {total-pages}",
        FontSize = 12
    };
    // Specify the file to be converted
    using var PDF = converter.RenderHTMLFileAsPdf("myWebPage.html");
    // Save to target location
    PDF.SaveAs("sample.pdf");
}
$vbLabelText   $csharpLabel

出力:上記のコードによって新しく作成された PDF ファイル sample.pdf のスクリーンショット:

Iron Hdr Ftr related to IronPDF はPDF のヘッダーとフッターをどのように処理しますか?

IronPDFを使用してヘッダーとフッターを操作する場合、PDF ファイルを作成するときに直感的な言語が使用されます。 ここで、この例では、PrizmDoc ビューアがヘッダーとフッターをどのように処理するかを示します。

PrizmDoc ビューアは PDF のヘッダーとフッターをどのように処理しますか?

PrizmDoc ビューアは、次のプロパティを持つヘッダーとフッターを処理するための HeaderFooterOptions クラスを提供します。

行はヘッダーとフッターの行を指定します。各行には次のプロパティがあります。 ヘッダーまたはフッター行の左側にテキストを印刷します 中央 ヘッダーまたはフッター行の中央にテキストを印刷します はヘッダーまたはフッター行の右側にテキストを印刷します

  • FontFamilyヘッダーまたはフッターテキストのフォントファミリを指定します
  • FontSizeヘッダーまたはフッターのテキストのフォントサイズを指定します
  • ヘッダーまたはフッターのテキストの色を指定する

PrizmDoc サーバーを使用して PDF ページのヘッダーとフッターを設定する方法の詳細をご覧ください

この例では、上記のプロパティを使用してユースケースを実装する方法を示しています。

using System.Threading.Tasks;
using System.Collections.Generic;
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    SetHeaderFooter().GetAwaiter().GetResult();
}

private static async Task SetHeaderFooter()
{
    // Instantiate PrizmDocServerClient object with Header and footer properties
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_130___", "Your-API-KEY");

    ConversionResult result = await prizmDocServer.ConvertToPdfAsync(
        "myWebPage.html",
        header: new HeaderFooterOptions
        {
            Lines = new List<HeaderFooterLine>
            {
                new HeaderFooterLine { Left = "Page Title", Right = DateTime.Now.ToString() }
            },
        },
        footer: new HeaderFooterOptions
        {
            Lines = new List<HeaderFooterLine>
            {
                new HeaderFooterLine { Right = "Page {{pageNumber}} of {{pageCount}}" },
            },
        });

    // Save to the target location
    await result.RemoteWorkFile.SaveAsync("sample.pdf");
}
using System.Threading.Tasks;
using System.Collections.Generic;
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    SetHeaderFooter().GetAwaiter().GetResult();
}

private static async Task SetHeaderFooter()
{
    // Instantiate PrizmDocServerClient object with Header and footer properties
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_130___", "Your-API-KEY");

    ConversionResult result = await prizmDocServer.ConvertToPdfAsync(
        "myWebPage.html",
        header: new HeaderFooterOptions
        {
            Lines = new List<HeaderFooterLine>
            {
                new HeaderFooterLine { Left = "Page Title", Right = DateTime.Now.ToString() }
            },
        },
        footer: new HeaderFooterOptions
        {
            Lines = new List<HeaderFooterLine>
            {
                new HeaderFooterLine { Right = "Page {{pageNumber}} of {{pageCount}}" },
            },
        });

    // Save to the target location
    await result.RemoteWorkFile.SaveAsync("sample.pdf");
}
$vbLabelText   $csharpLabel

出力:

上記のコードによって新しく作成された PDF ファイルのスクリーンショット:

PDF with header showing 'Page Title' and timestamp, comparing `PrizmDoc`'s header/footer implementation

ヘッダーとフッターに対してより柔軟性を提供するライブラリはどれですか?

IronPDF は、PrizmDoc Viewer と比較して、シンプルなプログラミング構造でヘッダーとフッターのプロパティを設定するためのより多くの機能を提供します。 IronPDFで生成されたPDFファイルは、PrizmDoc Viewerで生成されたファイルよりも読みやすく、見た目も美しくなっています。IronPDFはページ番号改ページもサポートしており、ドキュメント管理の効率化に貢献しています。


IronPDFと PrizmDoc ビューアを使用して PDF ページを画像に変換するにはどうすればいいですか?

この比較のために、2 ページの Sample_PDF.pdf という名前の単純な PDF ファイルがあると仮定します。

ページ1 ページ2
Lorem ipsum テキストと標準のビューア コントロールを備えたサンプル PDF の 1 ページ目を表示する PDF ビューア
Lorem ipsum テキストとナビゲーション コントロールを含むサンプル PDF の 2 ページ目を表示する PDF ビューアー

タスクは各ページのイメージを作成することです。 まず、この例ではIronPDFを使用してこれを実行する方法を確認します。

IronPDF はどのようにして PDF ページを画像に変換するのでしょうか?

using IronPdf;

static void Main(string[] args)
{
    // Specify file to be converted
    var pdf = PdfDocument.FromFile("Sample_PDF.pdf");
    // Save images to the target location
    pdf.RasterizeToImageFiles("image_*.png");
}
using IronPdf;

static void Main(string[] args)
{
    // Specify file to be converted
    var pdf = PdfDocument.FromFile("Sample_PDF.pdf");
    // Save images to the target location
    pdf.RasterizeToImageFiles("image_*.png");
}
$vbLabelText   $csharpLabel

IronPDF は、メモリ ストリームへの画像の保存や、JPEG、TIFF などのさまざまな画像形式の保存もサポートしています。

出力:

上記のコードは、次の 2 つの .png イメージを作成します。

ページ1イメージ ページ2 イメージ
PDF の 1 ページ目から生成された PNG 画像。クリアテキスト レンダリングで Virtual Mechanics チュートリアルのコンテンツを表示しています。
PDF の 2 ページ目から生成された PNG 画像。IronPDF のラスタライズ品質でテキスト コンテンツの続きが表示されています。

IronPDFを使用して PDF ページの画像を作成するのは簡単です。 ここで、PrizmDoc Viewer を使用して同じタスクを実行してみましょう。

PrizmDoc ビューアはどのようにして PDF ページを画像に変換するのでしょうか?

using System.Linq;
using System.Collections.Generic;
using System.Threading.Tasks;
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    PdfToImage().GetAwaiter().GetResult();
}

private static async Task PdfToImage()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_131___", "Your-API-KEY");
    // Convert PDF file to images
    IEnumerable<ConversionResult> results = await prizmDocServer.ConvertAsync("Sample_PDF.pdf", DestinationFileFormat.Png);

    // Save each image.
    for (int i = 0; i < results.Count(); i++)
    {
        await results.ElementAt(i).RemoteWorkFile.SaveAsync($"page-{i + 1}.png");
    }
}
using System.Linq;
using System.Collections.Generic;
using System.Threading.Tasks;
using Accusoft.PrizmDocServer;
using Accusoft.PrizmDocServer.Conversion;

static void Main(string[] args)
{
    PdfToImage().GetAwaiter().GetResult();
}

private static async Task PdfToImage()
{
    // Instantiate PrizmDocServerClient object
    var prizmDocServer = new PrizmDocServerClient("___PROTECTED_URL_131___", "Your-API-KEY");
    // Convert PDF file to images
    IEnumerable<ConversionResult> results = await prizmDocServer.ConvertAsync("Sample_PDF.pdf", DestinationFileFormat.Png);

    // Save each image.
    for (int i = 0; i < results.Count(); i++)
    {
        await results.ElementAt(i).RemoteWorkFile.SaveAsync($"page-{i + 1}.png");
    }
}
$vbLabelText   $csharpLabel

出力:

上記のコードは、次の 2 つの .png イメージも作成します。

ページ1 ページ2
PNG image generated from PDF page 1 using `PrizmDoc`'s conversion service with sample text content
PNG image generated from PDF page 2 showing `PrizmDoc`'s image conversion output quality

PDF から画像への変換を簡単にするライブラリはどれですか?

PrizmDoc ビューアと比較すると、 IronPDFを使用すると、開発者はページを反復処理しなくても、最小限のコード行で各ページのイメージを簡単に作成できます。


Bootstrap 5 データ テーブルをIronPDFで使用できますか?

IronPDF のChrome V8 レンダリング エンジンはBootstrap 5 データ テーブルを強力にサポートし、開発者が複雑な表形式レイアウトを備えたプロフェッショナルなPDF レポートを生成できるようにします。 この例では、グラデーション ヘッダー、ステータス バッジ、ページ区切りコントロール、および概要メトリックを示します。これらの機能は、PrizmDoc などの従来の PDF ビューアに対する IronPDF の利点を強調しています。 IronPDF は、フレックスボックス レイアウトグラデーションレスポンシブ デザインなどの最新の CSS 機能を完全にサポートしています。

using IronPdf;

var renderer = new ChromePdfRenderer();

string dataTableReport = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_132___ rel='stylesheet'>
    <style>
        .table-header {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 30px;
            border-radius: 10px 10px 0 0;
        }
        .table-container {
            background: white;
            border-radius: 0 0 10px 10px;
            box-shadow: 0 10px 30px rgba(0,0,0,0.1);
            overflow: hidden;
        }
        .table th {
            background: #f8f9fa;
            font-weight: 600;
            text-transform: uppercase;
            font-size: 0.85rem;
            letter-spacing: 0.5px;
        }
        .status-badge {
            padding: 0.35em 0.65em;
            border-radius: 0.25rem;
            font-weight: 600;
            font-size: 0.75rem;
        }
        .trend-positive { color: #198754; font-weight: 700; }
        .trend-negative { color: #dc3545; font-weight: 700; }
        @media print {
            .table-container { page-break-inside: avoid; }
        }
    </style>
</head>
<body class='bg-light'>
    <div class='container py-5'>
        <div class='table-container'>
            <div class='table-header'>
                <div class='row align-items-center'>
                    <div class='col-md-8'>
                        <h2 class='mb-2'>Sales Performance Report</h2>
                        <p class='mb-0 opacity-75'>Q4 2024 Regional Analysis</p>
                    </div>
                    <div class='col-md-4 text-end'>
                        <div class='btn-group btn-group-sm'>
                            <button class='btn btn-light'>Export</button>
                            <button class='btn btn-light'>Filter</button>
                            <button class='btn btn-light'>Sort</button>
                        </div>
                    </div>
                </div>
            </div>

            <div class='p-4'>
                <div class='row mb-3'>
                    <div class='col-md-4'>
                        <input type='text' class='form-control form-control-sm' placeholder='Search regions...'>
                    </div>
                    <div class='col-md-8 text-end'>
                        <span class='text-muted small'>Showing 1-10 of 48 results</span>
                    </div>
                </div>

                <div class='table-responsive'>
                    <table class='table table-hover align-middle'>
                        <thead>
                            <tr>
                                <th>Region</th>
                                <th>Revenue</th>
                                <th>Units Sold</th>
                                <th>Growth</th>
                                <th>Status</th>
                                <th>Action</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td>
                                    <strong>North America</strong><br>
                                    <small class='text-muted'>USA, Canada, Mexico</small>
                                </td>
                                <td>$4,280,000</td>
                                <td>12,450</td>
                                <td><span class='trend-positive'>↑ 18.5%</span></td>
                                <td><span class='status-badge bg-success text-white'>Exceeding</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Europe</strong><br>
                                    <small class='text-muted'>EU, UK, Switzerland</small>
                                </td>
                                <td>$3,65万</td>
                                <td>10,890</td>
                                <td><span class='trend-positive'>↑ 12.3%</span></td>
                                <td><span class='status-badge bg-success text-white'>On Track</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Asia Pacific</strong><br>
                                    <small class='text-muted'>Japan, Australia, Singapore</small>
                                </td>
                                <td>$2,940,000</td>
                                <td>8,320</td>
                                <td><span class='trend-positive'>↑ 24.7%</span></td>
                                <td><span class='status-badge bg-primary text-white'>Growing</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Latin America</strong><br>
                                    <small class='text-muted'>Brazil, Argentina, Chile</small>
                                </td>
                                <td>$1,580,000</td>
                                <td>4,670</td>
                                <td><span class='trend-positive'>↑ 8.9%</span></td>
                                <td><span class='status-badge bg-info text-white'>Stable</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Middle East</strong><br>
                                    <small class='text-muted'>UAE, Saudi Arabia, Israel</small>
                                </td>
                                <td>$980,000</td>
                                <td>2,890</td>
                                <td><span class='trend-negative'>↓ 3.2%</span></td>
                                <td><span class='status-badge bg-warning text-dark'>Review</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                        </tbody>
                        <tfoot class='table-light'>
                            <tr>
                                <td><strong>Total</strong></td>
                                <td><strong>$13,430,000</strong></td>
                                <td><strong>39,220</strong></td>
                                <td><strong class='trend-positive'>↑ 14.8%</strong></td>
                                <td colspan='2'></td>
                            </tr>
                        </tfoot>
                    </table>
                </div>

                <div class='d-flex justify-content-between align-items-center mt-4'>
                    <div>
                        <select class='form-select form-select-sm' style='width: auto; display: inline-block;'>
                            <option>10 per page</option>
                            <option>25 per page</option>
                            <option>50 per page</option>
                        </select>
                    </div>
                    <nav>
                        <ul class='pagination pagination-sm mb-0'>
                            <li class='page-item disabled'><a class='page-link' href='#'>Previous</a></li>
                            <li class='page-item active'><a class='page-link' href='#'>1</a></li>
                            <li class='page-item'><a class='page-link' href='#'>2</a></li>
                            <li class='page-item'><a class='page-link' href='#'>3</a></li>
                            <li class='page-item'><a class='page-link' href='#'>Next</a></li>
                        </ul>
                    </nav>
                </div>
            </div>
        </div>

        <div class='row g-3 mt-4'>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-primary mb-1'>$13.4M</h3>
                        <small class='text-muted'>Total Revenue</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-success mb-1'>39,220</h3>
                        <small class='text-muted'>Units Sold</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-info mb-1'>14.8%</h3>
                        <small class='text-muted'>Growth Rate</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-warning mb-1'>5</h3>
                        <small class='text-muted'>Active Regions</small>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(dataTableReport);
pdf.SaveAs("data-table-report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string dataTableReport = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_132___ rel='stylesheet'>
    <style>
        .table-header {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 30px;
            border-radius: 10px 10px 0 0;
        }
        .table-container {
            background: white;
            border-radius: 0 0 10px 10px;
            box-shadow: 0 10px 30px rgba(0,0,0,0.1);
            overflow: hidden;
        }
        .table th {
            background: #f8f9fa;
            font-weight: 600;
            text-transform: uppercase;
            font-size: 0.85rem;
            letter-spacing: 0.5px;
        }
        .status-badge {
            padding: 0.35em 0.65em;
            border-radius: 0.25rem;
            font-weight: 600;
            font-size: 0.75rem;
        }
        .trend-positive { color: #198754; font-weight: 700; }
        .trend-negative { color: #dc3545; font-weight: 700; }
        @media print {
            .table-container { page-break-inside: avoid; }
        }
    </style>
</head>
<body class='bg-light'>
    <div class='container py-5'>
        <div class='table-container'>
            <div class='table-header'>
                <div class='row align-items-center'>
                    <div class='col-md-8'>
                        <h2 class='mb-2'>Sales Performance Report</h2>
                        <p class='mb-0 opacity-75'>Q4 2024 Regional Analysis</p>
                    </div>
                    <div class='col-md-4 text-end'>
                        <div class='btn-group btn-group-sm'>
                            <button class='btn btn-light'>Export</button>
                            <button class='btn btn-light'>Filter</button>
                            <button class='btn btn-light'>Sort</button>
                        </div>
                    </div>
                </div>
            </div>

            <div class='p-4'>
                <div class='row mb-3'>
                    <div class='col-md-4'>
                        <input type='text' class='form-control form-control-sm' placeholder='Search regions...'>
                    </div>
                    <div class='col-md-8 text-end'>
                        <span class='text-muted small'>Showing 1-10 of 48 results</span>
                    </div>
                </div>

                <div class='table-responsive'>
                    <table class='table table-hover align-middle'>
                        <thead>
                            <tr>
                                <th>Region</th>
                                <th>Revenue</th>
                                <th>Units Sold</th>
                                <th>Growth</th>
                                <th>Status</th>
                                <th>Action</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td>
                                    <strong>North America</strong><br>
                                    <small class='text-muted'>USA, Canada, Mexico</small>
                                </td>
                                <td>$4,280,000</td>
                                <td>12,450</td>
                                <td><span class='trend-positive'>↑ 18.5%</span></td>
                                <td><span class='status-badge bg-success text-white'>Exceeding</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Europe</strong><br>
                                    <small class='text-muted'>EU, UK, Switzerland</small>
                                </td>
                                <td>$3,65万</td>
                                <td>10,890</td>
                                <td><span class='trend-positive'>↑ 12.3%</span></td>
                                <td><span class='status-badge bg-success text-white'>On Track</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Asia Pacific</strong><br>
                                    <small class='text-muted'>Japan, Australia, Singapore</small>
                                </td>
                                <td>$2,940,000</td>
                                <td>8,320</td>
                                <td><span class='trend-positive'>↑ 24.7%</span></td>
                                <td><span class='status-badge bg-primary text-white'>Growing</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Latin America</strong><br>
                                    <small class='text-muted'>Brazil, Argentina, Chile</small>
                                </td>
                                <td>$1,580,000</td>
                                <td>4,670</td>
                                <td><span class='trend-positive'>↑ 8.9%</span></td>
                                <td><span class='status-badge bg-info text-white'>Stable</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                            <tr>
                                <td>
                                    <strong>Middle East</strong><br>
                                    <small class='text-muted'>UAE, Saudi Arabia, Israel</small>
                                </td>
                                <td>$980,000</td>
                                <td>2,890</td>
                                <td><span class='trend-negative'>↓ 3.2%</span></td>
                                <td><span class='status-badge bg-warning text-dark'>Review</span></td>
                                <td><button class='btn btn-sm btn-outline-primary'>Details</button></td>
                            </tr>
                        </tbody>
                        <tfoot class='table-light'>
                            <tr>
                                <td><strong>Total</strong></td>
                                <td><strong>$13,430,000</strong></td>
                                <td><strong>39,220</strong></td>
                                <td><strong class='trend-positive'>↑ 14.8%</strong></td>
                                <td colspan='2'></td>
                            </tr>
                        </tfoot>
                    </table>
                </div>

                <div class='d-flex justify-content-between align-items-center mt-4'>
                    <div>
                        <select class='form-select form-select-sm' style='width: auto; display: inline-block;'>
                            <option>10 per page</option>
                            <option>25 per page</option>
                            <option>50 per page</option>
                        </select>
                    </div>
                    <nav>
                        <ul class='pagination pagination-sm mb-0'>
                            <li class='page-item disabled'><a class='page-link' href='#'>Previous</a></li>
                            <li class='page-item active'><a class='page-link' href='#'>1</a></li>
                            <li class='page-item'><a class='page-link' href='#'>2</a></li>
                            <li class='page-item'><a class='page-link' href='#'>3</a></li>
                            <li class='page-item'><a class='page-link' href='#'>Next</a></li>
                        </ul>
                    </nav>
                </div>
            </div>
        </div>

        <div class='row g-3 mt-4'>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-primary mb-1'>$13.4M</h3>
                        <small class='text-muted'>Total Revenue</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-success mb-1'>39,220</h3>
                        <small class='text-muted'>Units Sold</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-info mb-1'>14.8%</h3>
                        <small class='text-muted'>Growth Rate</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h3 class='text-warning mb-1'>5</h3>
                        <small class='text-muted'>Active Regions</small>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(dataTableReport);
pdf.SaveAs("data-table-report.pdf");
$vbLabelText   $csharpLabel

このコードは、グラデーションヘッダー、レスポンシブテーブル、ステータスバッジ、要約指標を備えた洗練されたデータテーブルレポートを生成します。 IronPDF の Chrome レンダリング エンジンは、テーブルのホバー効果、バッジの色、ページ区切りのコントロールなど、すべての Bootstrap スタイルを保持します。これは、従来の PDF ビューアを超える機能です。 このエンジンは、動的コンテンツ、カスタム フォントUTF-8 国際文字JavaScriptレンダリングもサポートしています。

PrizmDoc ビューアとの主な利点:

  • 変換なしでの直接HTML表のレンダリング
  • フルBootstrapコンポーネントのサポート
  • グラデーション背景と最新のCSS
  • 適切なページネーションを持つレスポンシブテーブルレイアウト -複雑なJavaScriptチャートのサポート -印刷メディアのCSS処理

Bootstrap PDF 生成の詳細については、完全なレンダリング ドキュメントを参照してください。 開発者は、 Angular から PDF への変換やその他のJavaScriptフレームワークのサポートも検討できます。## IronPDFと PrizmDoc Viewer のライセンス コストを比較するとどうなりますか?

両コンポーネントの技術構造と利用可能な機能を確認した後、ライセンスの価格を概説します。 開発者は予算の制約内で要件を満たすことを目指しているため、これは非常に重要です。

IronPDF のライセンス オプションは何ですか?

IronPDFライセンスは、1 人の開発者による 1 つのプロジェクトの場合、 $699から始まります。 IronPDF は、開発ライセンス、展開ライセンス、継続的なサポートと更新のための拡張オプションなど、柔軟なライセンス オプションを提供します。

複数のクライアントにサービスを提供する企業や代理店の開発者の場合、ライセンスは 699 ドルから始まり、チームの規模やプロジェクト数に応じて調整できます。 IronPDF は、ニーズの変化に応じてライセンスのアップグレード パスを提供します。

次のライセンスには 1 回限りの支払いが必要です。

開発者数 価格
1-5 $699
6-10 $799
11-20 $899
21-50 $1,199
無制限 $1,199
  • 複数の拠点を持つ企業の場合、ライセンスは1199ドルからとなります。
  • SaaSサービスの場合、ライセンスは1099ドルから
  • ロイヤリティフリーのOEM再配布の場合、ライセンスは1599ドルから

注:上記のすべてのライセンス パッケージには、1 年間のサポートとアップデートが含まれています。

IronPDFの利用可能なすべてのライセンス パッケージの詳細については、こちらをご覧ください。 開発者は、Web.configや環境変数など、さまざまな方法でライセンス キーを適用することもできます。

PrizmDoc ビューアのライセンス オプションとは何ですか?

What Is the Cost of Self-Hosted PrizmDoc?

自己管理型サーバーの場合、ライセンス価格は標準サポート付きで年間7,900 ドルです。

PrizmDoc ビューアーで利用可能なすべてのパッケージの詳細をご覧ください

How Much Does Cloud-Based PrizmDoc Cost?

このライセンスは、トランザクション数に基づいて拡張された PrizmDoc Viewer のクラウドベースのサービスをカバーします。

用語:

Transaction は、 PrizmDoc ビューア サーバーに要求を送信し、出力 (結果のドキュメント) を受信することを指します。

プリペイドバケット は、一度支払いをすると期限切れのないトランザクションを受け取ることを意味します。

取引件数 プリペイドバケット 毎月 年間
200 $18
1,000 $89
2,000 $119
6,000 $254 $169 1,859ドル(6,000トランザクション/月)
1万2000 $434 $289 3,179 ドル (1万2000 トランザクション/月)
2万5000 $699 $499 5,459ドル(2万5000 トランザクション/月)
5万 $1,199 $799 8,789ドル(5万 トランザクション/月)
10万 $1,199 $1,199 10,989ドル (10万トランザクション/月)
20万 $2,549 $1,699 19,188 ドル (20万 トランザクション/月)
30万 $3,299 $2,199 25,188ドル(月間30万件の取引)
40万 $4,049 $2,699 31,188ドル(40万 トランザクション/月)
50万 $4,799 $3,199 37,188 ドル (50万 トランザクション/月)

チュートリアル クイックアクセス

Html To Pdf Icon related to チュートリアル クイックアクセス
### C#IronPDFクイックスタート・ハンドブックを入手する

.NET用 PDF の開発を簡素化する無料の PDF リソース ガイドです。プロジェクトで C# および VB .NETで PDF を操作、編集、生成、保存するための一般的な機能と例のチュートリアルが含まれています。

ガイドのダウンロード
### IronPDF APIリファレンスを見る

IronPDF のすべての機能、クラス、メソッド フィールド、名前空間、列挙型の詳細を含む、 IronPDF C# ライブラリの API リファレンスを調べます。

APIリファレンスを見る
Documentation related to チュートリアル クイックアクセス

ご注意Accusoft の PrizmDoc Viewer は、それぞれの所有者の登録商標です。 このサイトは、Accusoft の PrizmDoc Viewer と提携、承認、または後援されていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

よくある質問

C# で HTML を PDF に変換するにはどうすればいいですか?

IronPDF の RenderHtmlAsPdf メソッドを使用して、HTML 文字列を PDF に変換できます。RenderHtmlFileAsPdf を使用して HTML ファイルを PDF に変換することもできます。

IronPDF を使用する利点は、PrizmDoc Viewer と比較してどのようなものですか?

IronPDF は、オフライン作業をサポートし、非同期プログラミングを必要としないシンプルなローカル PDF レンダリング ソリューションを提供します。対照的に、PrizmDoc Viewer は REST API を通じて動作し、リモートサーバーとのやり取りにインターネット接続を必要とします。

PDF ライブラリを使用して複数の PDF ドキュメントをマージできますか?

はい、IronPDF を使用して、MergePdf メソッドを使用して複数の PDF をマージし、ドキュメントをシームレスに結合できます。

IronPDF は、PDF から画像への変換をどのように処理しますか?

IronPDF は、組み込みメソッドを使用して PDF ページを画像に簡単に変換でき、他のソフトウェアと比較してスムーズなアプローチを提供します。

IronPDF のヘッダーとフッターのカスタマイズ オプションは何ですか?

IronPDF は、シンプルなプログラミング構造でヘッダーとフッターのプロパティを設定するための幅広い機能を提供し、ドキュメントを簡単にカスタマイズできます。

IronPDF はオフライン PDF 処理に適していますか?

はい、IronPDFはオフラインPDF処理をサポートしており、インターネット接続なしで作業できます。

IronPDF のライセンスの価格構造はどのようになっていますか?

IronPDF \u306e\u30e9\u30a4\u30bb\u30f3\u30b9\u306f\u30011 \u4eba\u306e\u958b\u767a\u8005\u306b\u3088\u308b\u5358\u4e00\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067 $699 \u304b\u3089\u59cb\u307e\u308a\u3001\u4f01\u696d\u3084 SaaS \u30b5\u30fc\u30d3\u30b9\u5411\u3051\u306b\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u63d0\u4f9b\u3057\u3001\u30b3\u30b9\u30c8\u52b9\u679c\u306e\u9ad8\u3044\u4e00\u56de\u6255\u3044\u306e\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002

IronPDF での開発は無料でできますか?

\u306f\u3044\u3001IronPDF \u306f\u958b\u767a\u306b\u7121\u5236\u9650\u3067\u7121\u6599\u3067\u63d0\u4f9b\u3055\u308c\u3066\u304a\u308a\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u516c\u958b\u3059\u308b\u305f\u3081\u306e 30 \u65e5\u9593\u306e\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u30c8\u30e9\u30a4\u30a2\u30eb\u304c\u3042\u308a\u307e\u3059\u3002

PrizmDoc Viewer は HTML から PDF への変換をどのように処理しますか?

PrizmDoc Viewer は、非同期プログラミングとリモートサーバーとのやり取りのためのインターネット接続を必要とする REST API を使用して HTML を PDF に変換します。

PrizmDoc Server をホストするためのシステム要件は何ですか?

Self-hosting PrizmDoc Server には、処理ニーズに対応するために最低 32 GB の RAM と 4 コアの CPU が必要です。

IronPDF は .NET 10 と完全に互換性がありますか?

はい。IronPDFは.NET 10(および.NET 9、8、7、6、.NET Core、.NET Standard、.NET Framework)をサポートしています。NuGet経由でインストールでき、Windows、Linux、macOSで動作します。また、Chromeベースのネイティブレンダラーを使用することで、.NET 10アプリケーションでピクセルパーフェクトなHTMLからPDFへのレンダリングを実現します。

カーティス・チャウ
テクニカルライター

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

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me