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

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:インストール

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

How Can I Access the `PrizmDoc` Server?

PrizmDoc Server は、ドキュメントの基本情報をリクエスト (入力) として受信し、ドキュメントを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 Viewer を操作してドキュメントを 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 Viewer を使用して 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.`PrizmDocServer`SDK?

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

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

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

    _コードブロック10

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

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

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

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

ハウツーチュートリアル

コード例における IronPDF とPrizmDoc Viewer の比較

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


IronPDF とPrizmDoc Viewer を使用して 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&gt;debugフォルダーに保存します。 IronPDF は、入力ソースとしてHTML 文字列URL 、さらにはHTML を含む ZIP ファイルもサポートします。

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

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

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

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

PrizmDoc Viewer のインストール セクションでは、 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 Viewer の使い方について詳しくはこちらをご覧ください

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

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


IronPDF とPrizmDoc Viewer を使用して画像を 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 Viewer を使用して同じタスクを実行し、生成された PDF ファイルを調べてみましょう。

PrizmDoc Viewer はどのようにして画像を 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.pdfC.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.pdfC.pdfを結合したsample.pdfファイルを作成します。 IronPDF は、PDF 間でのページの追加とコピー、およびPDF の分割もサポートしています。

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

PrizmDoc Viewer はどのようにして 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.pdfC.pdfファイルを結合したsample.pdfファイルも作成します。


IronPDF とPrizmDoc Viewer を使用して 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
  • ヘッダーの右側に日時を設定
  • フッターの右側にある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 Viewer がヘッダーとフッターをどのように処理するかを示します。

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

PrizmDoc Viewer は、ヘッダーとフッターを処理するための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 Viewer を使用して 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 Viewer はどのようにして 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 Viewer と比較すると、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 Viewerと比較した主な利点:

  • 変換なしでの直接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 Viewer のライセンス オプションとは何ですか?

What Is the Cost of Self-Hosted `PrizmDoc`?

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

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

How Much Does Cloud-Based `PrizmDoc` Cost?

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

用語:

Transactionとは、 PrizmDoc Viewer サーバーにリクエストを送信し、出力 (結果のドキュメント) を受信することを指します。

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

取引件数 プリペイドバケット 毎月 年間
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<\/S>

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<\/S>

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ボットを作成したりして、技術に対する愛情と創造性を組み合わせています。