ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
PDFファイルをプログラム的に操作するための最適なコンポーネントを選択することは難しい作業かもしれませんが、最終的には時間と労力を節約することができます。 コードの必要な手順とチュートリアルを順に確認し、wkhtmltopdfおよびIronPDFの使用方法、システム互換性、およびライセンス構造を調査して、プロジェクトに最適な選択ができるようにします。
以下のチュートリアルをご覧ください。PDFファイルの作成方法、ヘッダーやフッターの実装などの定義済み機能の使用、ファイルの生成などについて説明しています。
IronPDFは、PDFファイルを操作するためのコンポーネントです。 Iron Software C#ライブラリ. 使用 IronPDF、簡単に PDFを作成 URLまたはHTML文字列によるファイルをプログラム的にヘッダー、フッター、ウォーターマーク、余白、その他のPDFファイルのプロパティを設定します。 IronPDFは、その評判の高い製品ライブラリ、明確なドキュメント、および自然言語で知られており、開発者プロジェクトに簡単に実装することができます。
wkhtmltopdf PDFファイルをレンダリングするためのC++ソフトウェアバイナリです。 URLまたはHTML文字列からPDFファイルを作成するために使用できます。 また、コマンドラインインターフェースを利用して、PDFファイルのヘッダー、フッター、余白、その他のプロパティを設定する方法も提供しています。 (CLI). ただし、これは .NET フレームワークで設計されていないため、.NET アプリケーションとの統合が難しいかもしれません。 (詳しく読むにはこちらの回避策をご覧ください。). 加えて、それは会社によって定期的なアップデートで一貫して維持されているわけではありません。 代わりに、それは元々作成された ヤコブ・トルエルセン および管理 アシシュ・クルカルニ数人の開発者。
どのコンポーネントがプロジェクトに最適か選択するために、wkhtmltopdfとIronPDFの両方を使用してPDFファイルを作成、編集、および管理する方法についてのコードサンプルとチュートリアルのガイドを提供します。 以下は、両リソースの機能と使いやすさについての簡単な概要です。
IronPDF | wkhtmltopdf |
---|---|
IronPDFはHTMLをPDFに変換します | wkhtmltopdf は HTML を PDF に変換します。 |
Windows、Linux、および macOS に対応 | Windows、Ubuntu、Amazon Linux、macOSをサポートします。 |
.NETフレームワークでC#を使用して設計された | C++で設計された |
動的リンクライブラリ (.dll) は、プロジェクトの一部となります。 | .exeファイル(別個に使用) |
IronPDFは、ヘッダー、フッター、および方向マージンを設定します。 | wkhtmltopdfはヘッダー、フッター、方向マージンを設定します。 |
ウェブページが正常に読み込まれるようにレンダリングを遅延させるための `RenderDelay` 関数 | JavaScriptの実行が完了するまでレンダリングを遅延させる `javascript-delay` 関数 |
新機能や製品修正が頻繁に更新されます | 不定期の製品アップデート |
.NET プロジェクトに最適 | CLI / シェルプロジェクトに最適 |
特定のページに透かしを入れるためのあらかじめ定義された関数 | 透かしを追加するためのあらかじめ定義された関数はありません。 |
PDFのレンダリング、編集、入力、解析、および署名を行います。 | レンダリングのみ。 |
技術サポートチームは常に利用可能です | 技術サポートは確認されていません。 |
IronPDFは、2つの異なる方法でシステムにインストールすることができ、プロジェクトのニーズに最も適した方法を使用できます。
最初のアプローチは、Visual StudioのNuGetパッケージマネージャー
を使用することです。 IronPDF
を開いて閲覧します。 (Iron
提供)そしてインストールします。
Install-Package IronPdf
次のアプローチは、 IronPDF.dllをダウンロードしてください ファイル。このファイルをダウンロードした後、プロジェクト参照にこのファイルのパスを指定して、その参照を追加します。
注意: IronPDF
のライブラリをインポートするには、次の行を書き込むことができます: using IronPdf;
IronPDFは多くの言語とプラットフォームに対応しています。
.NET フレームワーク 4.0 以上を使用して
ウィンドウズ
Azure (アジュール)
.NET Standard 2.0 & Core 2 & 3 使用
Linux (リナックス)
Azure (アジュール)
クラウド ホスティング サービスには以下が含まれます
マイクロソフト・アジュール
Docker (ドッカー)
IronPDFは以下の用途に使用できます:
ASP.NET MVCアプリケーション
ASP.NET Web Forms アプリケーション
コンソールアプリケーション
クラウドアプリケーション
サービス
関数
以下の依存関係がIronPDFを使用するために必要です。
インストールが完了すると、32ビット版をインストールした場合、C:\Program Files
に wkhtmltopdf
という名前の新しいフォルダーが作成されます。 (x86)`, これにはいくつかの必要なファイルが含まれます。
64 ビットをインストールすると、このフォルダは C:\Program Files
を作成します。
フォルダーが作成されると、wkhtmltopdfがシステムに正常にインストールされます。
PDFファイルの取り扱いについて話すとき、基本的なユースケースとして思い浮かぶのは、URLからPDFファイルを作成する方法です。
IronPDFを使用して、以下の簡単な変換を行うことができます。
/**
URL to PDF
anchor-url-to-pdf-using-ironpdf
**/
using IronPdf;
{
var converter = new ChromePdfRenderer();
//Specify URL
using var PDF = converter.RenderUrlAsPdf("URL");
//Save the file
PDF.SaveAs("Sample.pdf");
Console.WriteLine("successfully created!");
Console.ReadKey();
}
/**
URL to PDF
anchor-url-to-pdf-using-ironpdf
**/
using IronPdf;
{
var converter = new ChromePdfRenderer();
//Specify URL
using var PDF = converter.RenderUrlAsPdf("URL");
//Save the file
PDF.SaveAs("Sample.pdf");
Console.WriteLine("successfully created!");
Console.ReadKey();
}
'''
'''URL to PDF
'''anchor-url-to-pdf-using-ironpdf
'''*
Private ReadOnly Property IronPdf() As using
Dim converter = New ChromePdfRenderer()
'Specify URL
Dim PDF = converter.RenderUrlAsPdf("URL")
'Save the file
PDF.SaveAs("Sample.pdf")
Console.WriteLine("successfully created!")
Console.ReadKey()
End Property
上記のコードは、指定されたURLから完全なWebページのSample.pdf
ファイルを作成し、指定された場所に保存します。
注意:
bin\Debug
フォルダに作成されます。別の場所、たとえば「ローカルディスク E」にPDFファイルを作成したい場合は、「E:\Sample.pdf」と記述することができます。
さて、wkhtmltopdfを使用してURLからPDFファイルを作成する方法を見てみましょう。
上記で説明したように、wkhtmltopdfは.NETフレームワークで設計されていません。 しかし、私たちは依然として.NETアプリケーションでそれを使用することができます。
これには、以下の例のように wkhtmltopdf.exe
ファイルを使用してコマンドを実行するための新しいプロセスを開始します。
複雑さや混乱を避けるために、メソッドを作成し、それを Main
と呼びます()以下のように機能します:
using System.Text;
using System.Diagnostics;
static void Main(string [] args)
{
//function calling
ConvertChromePdfRenderer("URL", "Sample.pdf");
Console.WriteLine("successfully created!");
Console.ReadKey();
}
//function declaration
public static void ConvertChromePdfRenderer(string url, string filename)
{
//function definition
StringBuilder paramsBuilder = new StringBuilder();
//make CLI command
paramsBuilder.AppendFormat("\"{0}\" \"{1}\"", url, filename);
//create new process
using (Process process = new Process())
{
//specify wkhtmltopdf.exe file path to execute above CLI
process.StartInfo.FileName = "C:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
//assign CLI as process argument
process.StartInfo.Arguments = paramsBuilder.ToString();
//setting the credentials
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
//start execution
process.Start();
if (!process.WaitForExit(60000))
{
process.Kill();
}
}
}
using System.Text;
using System.Diagnostics;
static void Main(string [] args)
{
//function calling
ConvertChromePdfRenderer("URL", "Sample.pdf");
Console.WriteLine("successfully created!");
Console.ReadKey();
}
//function declaration
public static void ConvertChromePdfRenderer(string url, string filename)
{
//function definition
StringBuilder paramsBuilder = new StringBuilder();
//make CLI command
paramsBuilder.AppendFormat("\"{0}\" \"{1}\"", url, filename);
//create new process
using (Process process = new Process())
{
//specify wkhtmltopdf.exe file path to execute above CLI
process.StartInfo.FileName = "C:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
//assign CLI as process argument
process.StartInfo.Arguments = paramsBuilder.ToString();
//setting the credentials
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
//start execution
process.Start();
if (!process.WaitForExit(60000))
{
process.Kill();
}
}
}
Imports System.Text
Imports System.Diagnostics
Shared Sub Main(ByVal args() As String)
'function calling
ConvertChromePdfRenderer("URL", "Sample.pdf")
Console.WriteLine("successfully created!")
Console.ReadKey()
End Sub
'function declaration
Public Shared Sub ConvertChromePdfRenderer(ByVal url As String, ByVal filename As String)
'function definition
Dim paramsBuilder As New StringBuilder()
'make CLI command
paramsBuilder.AppendFormat("""{0}"" ""{1}""", url, filename)
'create new process
Using process As New Process()
'specify wkhtmltopdf.exe file path to execute above CLI
process.StartInfo.FileName = "C:\Program Files (x86)\wkhtmltopdf\bin\wkhtmltopdf.exe"
'assign CLI as process argument
process.StartInfo.Arguments = paramsBuilder.ToString()
'setting the credentials
process.StartInfo.UseShellExecute = False
process.StartInfo.RedirectStandardOutput = True
process.StartInfo.RedirectStandardError = True
'start execution
process.Start()
If Not process.WaitForExit(60000) Then
process.Kill()
End If
End Using
End Sub
本番環境では上記のコードを使用しないでください。 それはスレッドセーフではなく、サーバーアプリケーションでデッドロックを引き起こす可能性があります。 !
次のコードは、以下のコマンドを作成し、プロセスを使用して wkhtmltopdf.exe
で実行します
「URL」「FileName.pdf」
上記のコードもIronPDFを使用して作成したのと同様に Sample.pdf
ファイルを作成し、指定した場所に保存します。
たった数行のコードでIronPDFを使うと、作業がどれほど簡単になるかを簡単に観察できます。 wkhtmltopdfを使用する場合、システムのパフォーマンスに影響を与える別のプロセスを実行する必要があり、多くのコードを書く必要があります。
それでは、提供されている各コンポーネントの機能について話し、その機能性を理解しましょう。
異なる二つのコンポーネントを評価して最適なものを選択する必要がある場合、どのコンポーネントが最も多くの機能を提供するか、プロジェクトでどれだけ簡単に使用できるか、そしてどれが最小のコード行数で済むかを知ることが非常に重要です。
Curly Brackets 内でIronPDF機能を使用できます{}以下のように:
もちろん、英語のテキストを教えていただけますでしょうか?{html-タイトル}以下を使ってウェブページのタイトルを印刷します。
もちろん、英語のテキストを教えていただけますでしょうか?{pdfタイトル}ドキュメントタイトルを印刷するには `
上記の機能をプロジェクトでどのように使用できますか? 次の例を見てみましょう。
/**
PDF Functions
anchor-ironpdf-functions
**/
using IronPdf;
{
var converter = new IronPdf.ChromePdfRenderer();
//setting header
converter.RenderingOptions.TextHeader = new TextHeaderFooter()
{
RightText = "{date} {time}"
};
//setting footer
converter.RenderingOptions.TextFooter = new TextHeaderFooter()
{
CenterText= "Page {page} of {total-pages}"
};
using var PDF = converter.RenderUrlAsPdf("URL");
PDF.SaveAs("Sample.pdf");
Console.WriteLine("successfully created..!");
Console.ReadKey();
}
/**
PDF Functions
anchor-ironpdf-functions
**/
using IronPdf;
{
var converter = new IronPdf.ChromePdfRenderer();
//setting header
converter.RenderingOptions.TextHeader = new TextHeaderFooter()
{
RightText = "{date} {time}"
};
//setting footer
converter.RenderingOptions.TextFooter = new TextHeaderFooter()
{
CenterText= "Page {page} of {total-pages}"
};
using var PDF = converter.RenderUrlAsPdf("URL");
PDF.SaveAs("Sample.pdf");
Console.WriteLine("successfully created..!");
Console.ReadKey();
}
'''
'''PDF Functions
'''anchor-ironpdf-functions
'''*
Private ReadOnly Property IronPdf() As using
Dim converter = New IronPdf.ChromePdfRenderer()
'setting header
converter.RenderingOptions.TextHeader = New TextHeaderFooter() With {.RightText = "{date} {time}"}
'setting footer
converter.RenderingOptions.TextFooter = New TextHeaderFooter() With {.CenterText= "Page {page} of {total-pages}"}
Dim PDF = converter.RenderUrlAsPdf("URL")
PDF.SaveAs("Sample.pdf")
Console.WriteLine("successfully created..!")
Console.ReadKey()
End Property
このコードは指定されたURLのウェブページのPDFファイルを作成し、ヘッダーの右側に日付と時刻を印刷し、フッターの中央に現在のページ番号を印刷します。
以下にwkhtmltopdfのいくつかの基本機能を示します。 これらの関数は角括弧の中で使用できます。[]以下の内容を日本語に翻訳してください。
もちろん、英語のテキストを教えていただけますでしょうか?[タイトル]現在のページのタイトルを印刷するには `
以下についてさらに読む wkhtmltopdfの機能 ここに、IronPDF、IronOCR、IronXL、IronBarcode、IronQR、IronZIP、IronPrint、IronWord、およびIronWebScraperに関する情報を見つけることができます。これらの製品は、PDFの生成、OCR、スプレッドシートの処理、バーコードの生成および読み取り、QRコードの作成、ファイルの圧縮および展開、印刷サポート、文書の操作、およびウェブデータのスクレイピングなど、多岐にわたる機能を提供します。各製品は.Net、Java、Python、Node.jsなどの主要なプラットフォームとの互換性があります。詳細については、Iron Softwareの公式ウェブサイトをご覧ください。
これらの機能をプロジェクトで使用する方法の例を見てみましょう。
using System.Text;
using System.Diagnostics;
static void Main(string [] args)
{
ConvertChromePdfRenderer("URL", "Sample.pdf");
Console.WriteLine("ok");
Console.ReadKey();
}
public static void ConvertChromePdfRenderer(string url, string filename)
{
StringBuilder paramsBuilder = new StringBuilder();
paramsBuilder.AppendFormat("--header-right \"[date][time]\" --footer-center \"Page [page] of [topage]\" \"{0}\" \"{1}\"", url, filename);
using (Process process = new Process())
{
process.StartInfo.FileName = "C:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
process.StartInfo.Arguments = paramsBuilder.ToString();
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.Start();
if (!process.WaitForExit(60000))
{
process.Kill();
}
}
}
using System.Text;
using System.Diagnostics;
static void Main(string [] args)
{
ConvertChromePdfRenderer("URL", "Sample.pdf");
Console.WriteLine("ok");
Console.ReadKey();
}
public static void ConvertChromePdfRenderer(string url, string filename)
{
StringBuilder paramsBuilder = new StringBuilder();
paramsBuilder.AppendFormat("--header-right \"[date][time]\" --footer-center \"Page [page] of [topage]\" \"{0}\" \"{1}\"", url, filename);
using (Process process = new Process())
{
process.StartInfo.FileName = "C:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
process.StartInfo.Arguments = paramsBuilder.ToString();
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.Start();
if (!process.WaitForExit(60000))
{
process.Kill();
}
}
}
Imports System.Text
Imports System.Diagnostics
Shared Sub Main(ByVal args() As String)
ConvertChromePdfRenderer("URL", "Sample.pdf")
Console.WriteLine("ok")
Console.ReadKey()
End Sub
Public Shared Sub ConvertChromePdfRenderer(ByVal url As String, ByVal filename As String)
Dim paramsBuilder As New StringBuilder()
paramsBuilder.AppendFormat("--header-right ""[date][time]"" --footer-center ""Page [page] of [topage]"" ""{0}"" ""{1}""", url, filename)
Using process As New Process()
process.StartInfo.FileName = "C:\Program Files (x86)\wkhtmltopdf\bin\wkhtmltopdf.exe"
process.StartInfo.Arguments = paramsBuilder.ToString()
process.StartInfo.UseShellExecute = False
process.StartInfo.RedirectStandardOutput = True
process.StartInfo.RedirectStandardError = True
process.Start()
If Not process.WaitForExit(60000) Then
process.Kill()
End If
End Using
End Sub
このコードは次のコマンドを作成し、プロセスを使用して wkhtmltopdf.exe
を実行します:
`--header-right "[日付][時間]「 --footer-center "ページ [ページ] 以下の内容を日本語に翻訳してください:
[トップページ]「URL」「Sample.pdf」
それは、右側のヘッダーにdatetime
、フッターの中央にcurrent page of total page
を含む、IronPDFと同じPDFファイルも作成します。
HTML文字列を使用してPDFファイルを作成することは非常に一般的な要件です。 これに対して、両方のコンポーネントはPDFファイルを作成する方法を提供します。 IronPDFは.NETフレームワークで開発されており、wkhtmltopdfはC++
で開発されているため、両方のコンポーネントはPDFファイルの扱い方が完全に異なります。
/**
HTML String to PDF
anchor-html-string-to-pdf-using-ironpdf
**/
using IronPdf;
{
var converter = new ChromePdfRenderer();
//HTML string
string HTML = "<h1>Hello IronPDF!</h1> <h2>Welcome to PDF File</h2> ";
//convert HTML string to PDF file
using var PDF = converter.RenderHtmlAsPdf(HTML);
//Save the file
PDF.SaveAs("Sample.pdf");
Console.WriteLine("successfully created..!");
Console.ReadKey();
}
/**
HTML String to PDF
anchor-html-string-to-pdf-using-ironpdf
**/
using IronPdf;
{
var converter = new ChromePdfRenderer();
//HTML string
string HTML = "<h1>Hello IronPDF!</h1> <h2>Welcome to PDF File</h2> ";
//convert HTML string to PDF file
using var PDF = converter.RenderHtmlAsPdf(HTML);
//Save the file
PDF.SaveAs("Sample.pdf");
Console.WriteLine("successfully created..!");
Console.ReadKey();
}
'''
'''HTML String to PDF
'''anchor-html-string-to-pdf-using-ironpdf
'''*
Private ReadOnly Property IronPdf() As using
Dim converter = New ChromePdfRenderer()
'HTML string
Dim HTML As String = "<h1>Hello IronPDF!</h1> <h2>Welcome to PDF File</h2> "
'convert HTML string to PDF file
Dim PDF = converter.RenderHtmlAsPdf(HTML)
'Save the file
PDF.SaveAs("Sample.pdf")
Console.WriteLine("successfully created..!")
Console.ReadKey()
End Property
出力:
以下はIronPDFによって新しく作成された Sample.pdf
ファイルのスクリーンショットです:
注意:
bin\Debug
フォルダに作成されます。wkhtmltopdfを扱うのは少し複雑ですので、よりわかりやすく理解しやすくするために、関数を定義してそれをMain
と呼びます。()次のように機能します
using System.Text;
using System.Diagnostics;
static void Main(string [] args)
{
//Html string
string HTML = "<h1>Hello wkhtmltopdf!</h1><h2>Welcome to PDF File</h2>";
//Function calling
ConvertChromePdfRenderer(HTML, "Sample.pdf");
Console.WriteLine("ok");
Console.ReadKey();
}
//Function Declaration
public static void ConvertChromePdfRenderer(string html, string path)
{
//Function Definition
StringBuilder paramsBuilder = new StringBuilder();
//Build command
paramsBuilder.AppendFormat("\"-\" \"{0}\"", path);
//process to execute above command
using (Process process = new Process())
{
//path of wkhtmltopdf.exe file
string filepath= "C:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
//specify path
process.StartInfo.FileName = filepath;
//set command by argument
process.StartInfo.Arguments = paramsBuilder.ToString();
//set credentials
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardInput = true;
//start process
process.Start();
using (var stream = process.StandardInput)
{
byte [] buffer = Encoding.UTF8.GetBytes(html);
stream.BaseStream.Write(buffer, 0, buffer.Length);
stream.WriteLine();
}
}
}
using System.Text;
using System.Diagnostics;
static void Main(string [] args)
{
//Html string
string HTML = "<h1>Hello wkhtmltopdf!</h1><h2>Welcome to PDF File</h2>";
//Function calling
ConvertChromePdfRenderer(HTML, "Sample.pdf");
Console.WriteLine("ok");
Console.ReadKey();
}
//Function Declaration
public static void ConvertChromePdfRenderer(string html, string path)
{
//Function Definition
StringBuilder paramsBuilder = new StringBuilder();
//Build command
paramsBuilder.AppendFormat("\"-\" \"{0}\"", path);
//process to execute above command
using (Process process = new Process())
{
//path of wkhtmltopdf.exe file
string filepath= "C:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
//specify path
process.StartInfo.FileName = filepath;
//set command by argument
process.StartInfo.Arguments = paramsBuilder.ToString();
//set credentials
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardInput = true;
//start process
process.Start();
using (var stream = process.StandardInput)
{
byte [] buffer = Encoding.UTF8.GetBytes(html);
stream.BaseStream.Write(buffer, 0, buffer.Length);
stream.WriteLine();
}
}
}
Imports System.Text
Imports System.Diagnostics
Shared Sub Main(ByVal args() As String)
'Html string
Dim HTML As String = "<h1>Hello wkhtmltopdf!</h1><h2>Welcome to PDF File</h2>"
'Function calling
ConvertChromePdfRenderer(HTML, "Sample.pdf")
Console.WriteLine("ok")
Console.ReadKey()
End Sub
'Function Declaration
Public Shared Sub ConvertChromePdfRenderer(ByVal html As String, ByVal path As String)
'Function Definition
Dim paramsBuilder As New StringBuilder()
'Build command
paramsBuilder.AppendFormat("""-"" ""{0}""", path)
'process to execute above command
Using process As New Process()
'path of wkhtmltopdf.exe file
Dim filepath As String= "C:\Program Files (x86)\wkhtmltopdf\bin\wkhtmltopdf.exe"
'specify path
process.StartInfo.FileName = filepath
'set command by argument
process.StartInfo.Arguments = paramsBuilder.ToString()
'set credentials
process.StartInfo.UseShellExecute = False
process.StartInfo.RedirectStandardError = True
process.StartInfo.RedirectStandardInput = True
'start process
process.Start()
Using stream = process.StandardInput
Dim buffer() As Byte = Encoding.UTF8.GetBytes(html)
stream.BaseStream.Write(buffer, 0, buffer.Length)
stream.WriteLine()
End Using
End Using
End Sub
出力:
wkhtmltopdfによって新しく作成されたSample.pdf
ファイルのスクリーンショット:
WkhtmlToPdfはオープンソース製品です。 それはIronPDFの全ての機能を備えているわけではありません。
比較する最良の方法は、実際のテストを行うことです。
IronPDFとWkHtmlToPdfのPDFレンダリング品質には明確な違いがあります。
UIデザイン
WkHtmlToPdfは、ウェブページに適用されるすべてのCSSファイルを見逃します。
CSSファイルとJSファイルはUIデザインにとって重要です。 WkHtmlToPdfは、これらの必要なファイルを読み込まずにページのレンダリングを開始します。
比較すると、IronPDFはCSSおよびJSファイルを高精度でレンダリングします。
Colors(色)
WkHtmlToPdfファイルのレンダリングでは、背景の色がキャプチャされません。 再度、IronPDFはレンダリングにおいてより正確な色を表示することで、より良い結果を出しています。
見出し
WkHtmlToPdf のレンダリングでは、ヘッダーが完全に欠落しています。 IronPDFでレンダリングされたヘッダーはフィーチャーされ、正しい位置に配置されています。
ボタン
ウェブページ上のボタンの配置は明らかに重要です。 ボタンとCTAの変更 (行動を促す) 意図を変更します。 WkHtmlToPdfでは、ボタンが正確な位置に配置されません。 それは元のウェブページデザインとは全く異なります。
一方、IronPDFファイルについて言えば、ボタンの配置が正確です。
結論
IronPDFが全てのファイルのロードを待ってからレンダリングを行う方法。 このステップ自体が結果を改善します。 IronPDFは全体的により正確な結果を提供します。
上記の記事を読んで上記の例の両方を理解した後、IronPDFがPDFファイルを作成するための簡単な方法を提供し、その生成されたPDFファイルが自動的に左側および右側の余白を調整するため、wkhtmltopdfよりも読みやすいことが明らかです。
IronPDFは、PDFの解析、編集、結合、および署名も可能にします。
一方、wkhtmltopdfは別のプロセスを追加して実行する必要があるため、プロジェクトのパフォーマンスに影響を与え、より複雑です。
両方のコンポーネントはPDFファイルにヘッダーとフッターを追加する機能を提供しますが、どちらも異なるプログラミング構造を持っています。 (.NET Framework と C++ の wkhtmltopdf を使用した IronPDF).
IronPDFは、ヘッダーおよびフッターのプロパティを設定するための以下の機能を提供します。 CamelCase
で書くことができます。
ヘッダーまたはフッターの右側にテキストを書くには、RightText を使用します。
/**
Add Header Footer
anchor-add-headers-and-footers-using-ironpdf
**/
using IronPdf;
{
var converter = new IronPdf.ChromePdfRenderer();
converter.RenderingOptions.TextHeader = new TextHeaderFooter()
{
LeftText = "MyTask",
RightText = "{date} - {time}",
DrawDividerLine = true,
};
converter.RenderingOptions.TextFooter = new TextHeaderFooter()
{
RightText = "Page {page} of {total-pages}"
};
using var PDF = converter.RenderHtmlAsPdf("<h1 style='text-align:center'>Welcome To IronPdf</h1>");
PDF.SaveAs("Sample.pdf");
Console.WriteLine("successfully created..!");
Console.ReadKey();
}
/**
Add Header Footer
anchor-add-headers-and-footers-using-ironpdf
**/
using IronPdf;
{
var converter = new IronPdf.ChromePdfRenderer();
converter.RenderingOptions.TextHeader = new TextHeaderFooter()
{
LeftText = "MyTask",
RightText = "{date} - {time}",
DrawDividerLine = true,
};
converter.RenderingOptions.TextFooter = new TextHeaderFooter()
{
RightText = "Page {page} of {total-pages}"
};
using var PDF = converter.RenderHtmlAsPdf("<h1 style='text-align:center'>Welcome To IronPdf</h1>");
PDF.SaveAs("Sample.pdf");
Console.WriteLine("successfully created..!");
Console.ReadKey();
}
'''
'''Add Header Footer
'''anchor-add-headers-and-footers-using-ironpdf
'''*
Private ReadOnly Property IronPdf() As using
Dim converter = New IronPdf.ChromePdfRenderer()
converter.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.LeftText = "MyTask",
.RightText = "{date} - {time}",
.DrawDividerLine = True
}
converter.RenderingOptions.TextFooter = New TextHeaderFooter() With {.RightText = "Page {page} of {total-pages}"}
Dim PDF = converter.RenderHtmlAsPdf("<h1 style='text-align:center'>Welcome To IronPdf</h1>")
PDF.SaveAs("Sample.pdf")
Console.WriteLine("successfully created..!")
Console.ReadKey()
End Property
出力:
これは、IronPDFで新しく作成された Sample.pdf
ファイルのスクリーンショットです。
mytask
テキストがヘッダーの左側に印刷されていること、date time
がヘッダーの右側に印刷されていること、current page of total pages
がフッターの右側に印刷されていることが簡単にわかります。
注意:
bin\Debug
フォルダに作成されます。wkhtmltopdfは、PDFファイルのヘッダーとフッターを処理するための多くの機能も提供しています。ヘッダーのための機能とフッターのための機能は別々に提供されています。 これには、ダッシュを2つ入れる必要があります。 (--
) 各プロパティ名の前に一つのダッシュ (-
) 以下のようにプロパティ名を結合します:
ページのフッターとコンテンツの間のスペースを指定するために --footer-spacing を使用します。
詳細については、 ヘッダーとフッターのwkhtmltopdf関数 その他。
この例では、複雑さを避けるために別個に関数を作成し、その動作を簡単に理解できるようにします。 上記の例で作成したのと同じPDFファイルを作成します。
using System.Text;
using System.Diagnostics;
static void Main(string [] args)
{
ConvertChromePdfRenderer("<h1 style='text-align:center'>Welcom to wkhtmltopdf</h1>", "MyTask", "Sample.pdf");
Console.WriteLine("Successfully Created");
Console.ReadKey();
}
public static void ConvertChromePdfRenderer(string html, string header, string path)
{
StringBuilder paramsBuilder = new StringBuilder();
paramsBuilder.AppendFormat("--header-left \"{0}\" --header-right \"[date] - [time]\" --header-line --footer-right \"Page [page] of [topage]\" \"-\" \"{1}\"", header, path);
using (Process process = new Process())
{
process.StartInfo.FileName = "C:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
process.StartInfo.Arguments = paramsBuilder.ToString();
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardInput = true;
process.Start();
using (var stream = process.StandardInput)
{
byte [] buffer = Encoding.UTF8.GetBytes(html);
stream.BaseStream.Write(buffer, 0, buffer.Length);
stream.WriteLine();
}
}
}
using System.Text;
using System.Diagnostics;
static void Main(string [] args)
{
ConvertChromePdfRenderer("<h1 style='text-align:center'>Welcom to wkhtmltopdf</h1>", "MyTask", "Sample.pdf");
Console.WriteLine("Successfully Created");
Console.ReadKey();
}
public static void ConvertChromePdfRenderer(string html, string header, string path)
{
StringBuilder paramsBuilder = new StringBuilder();
paramsBuilder.AppendFormat("--header-left \"{0}\" --header-right \"[date] - [time]\" --header-line --footer-right \"Page [page] of [topage]\" \"-\" \"{1}\"", header, path);
using (Process process = new Process())
{
process.StartInfo.FileName = "C:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
process.StartInfo.Arguments = paramsBuilder.ToString();
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardInput = true;
process.Start();
using (var stream = process.StandardInput)
{
byte [] buffer = Encoding.UTF8.GetBytes(html);
stream.BaseStream.Write(buffer, 0, buffer.Length);
stream.WriteLine();
}
}
}
Imports System.Text
Imports System.Diagnostics
Shared Sub Main(ByVal args() As String)
ConvertChromePdfRenderer("<h1 style='text-align:center'>Welcom to wkhtmltopdf</h1>", "MyTask", "Sample.pdf")
Console.WriteLine("Successfully Created")
Console.ReadKey()
End Sub
Public Shared Sub ConvertChromePdfRenderer(ByVal html As String, ByVal header As String, ByVal path As String)
Dim paramsBuilder As New StringBuilder()
paramsBuilder.AppendFormat("--header-left ""{0}"" --header-right ""[date] - [time]"" --header-line --footer-right ""Page [page] of [topage]"" ""-"" ""{1}""", header, path)
Using process As New Process()
process.StartInfo.FileName = "C:\Program Files (x86)\wkhtmltopdf\bin\wkhtmltopdf.exe"
process.StartInfo.Arguments = paramsBuilder.ToString()
process.StartInfo.UseShellExecute = False
process.StartInfo.RedirectStandardError = True
process.StartInfo.RedirectStandardInput = True
process.Start()
Using stream = process.StandardInput
Dim buffer() As Byte = Encoding.UTF8.GetBytes(html)
stream.BaseStream.Write(buffer, 0, buffer.Length)
stream.WriteLine()
End Using
End Using
End Sub
上記のコードは、wkhtmltopdf.exe
ファイルを使用して次のコマンドを実行します。
--header-left "MyTask" --header-right "
[日付] - [時間]「 --header-line --footer-right "Page」 [ページ] 以下の内容を日本語に翻訳してください:
[トップページ]既定の文書読み込み方法:
var PDF = IronPDF. PdfDocument. FromFile("Sample.pdf");
アウトプット
これは、wkhtmltopdfによって新しく作成された Sample.pdf
ファイルのスクリーンショットです。
次のユースケースを考えてみましょう。URLからPDFファイルを作成し、マージンを設定します。 両方のコンポーネントは、左、上、右、下からのマージンを設定する機能を提供します。
/**
Adjust Margins
anchor-add-and-adjust-margins-using-ironpdf
**/
using IronPdf;
{
//create rendering converter
var converter = new ChromePdfRenderer();
converter.RenderingOptions.MarginTop = 20;
converter.RenderingOptions.MarginLeft = 40;
//Specify URL
using var PDF = converter.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
//Save the file
PDF.SaveAs("Sample.pdf");
Console.WriteLine("successfully created..!");
Console.ReadKey();
}
/**
Adjust Margins
anchor-add-and-adjust-margins-using-ironpdf
**/
using IronPdf;
{
//create rendering converter
var converter = new ChromePdfRenderer();
converter.RenderingOptions.MarginTop = 20;
converter.RenderingOptions.MarginLeft = 40;
//Specify URL
using var PDF = converter.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
//Save the file
PDF.SaveAs("Sample.pdf");
Console.WriteLine("successfully created..!");
Console.ReadKey();
}
'''
'''Adjust Margins
'''anchor-add-and-adjust-margins-using-ironpdf
'''*
Private ReadOnly Property IronPdf() As using
'create rendering converter
Dim converter = New ChromePdfRenderer()
converter.RenderingOptions.MarginTop = 20
converter.RenderingOptions.MarginLeft = 40
'Specify URL
Dim PDF = converter.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF")
'Save the file
PDF.SaveAs("Sample.pdf")
Console.WriteLine("successfully created..!")
Console.ReadKey()
End Property
出力:
以下は、IronPDFによる Sample.pdf
ファイルのスクリーンショットです。
上記のコードは指定されたURLからPDFファイルを作成し、左マージンを40 mm
、上マージンを20 mm
に設定したことが明らかです。 では、同じことをwkhtmltopdfを使用して行いましょう。
wkhtmltopdfを使用するには、wkhtmltopdf.exe
ファイルを利用して別のプロセスを実行する必要があります。複雑さを避けるために、新しい関数を定義し、それをmain
と呼ぶことにします。()次のように機能します
using System.Text;
using System.Diagnostics;
static void Main(string [] args)
{
ConvertChromePdfRenderer(20, 40, "https://en.wikipedia.org/wiki/PDF", "Sample.pdf");
Console.WriteLine("ok");
Console.ReadKey();
}
public static void ConvertChromePdfRenderer(int margin_top, int margin_left, string url, string filename)
{
StringBuilder paramsBuilder = new StringBuilder();
paramsBuilder.AppendFormat("--margin-top \"{0}\" --margin-left \"{1}\" \"{2}\" \"{3}\"", margin_top, margin_left, url, filename);
using (Process process = new Process())
{
process.StartInfo.FileName = "C:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
process.StartInfo.Arguments = paramsBuilder.ToString();
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.Start();
if (!process.WaitForExit(60000))
{
process.Kill();
}
}
}
using System.Text;
using System.Diagnostics;
static void Main(string [] args)
{
ConvertChromePdfRenderer(20, 40, "https://en.wikipedia.org/wiki/PDF", "Sample.pdf");
Console.WriteLine("ok");
Console.ReadKey();
}
public static void ConvertChromePdfRenderer(int margin_top, int margin_left, string url, string filename)
{
StringBuilder paramsBuilder = new StringBuilder();
paramsBuilder.AppendFormat("--margin-top \"{0}\" --margin-left \"{1}\" \"{2}\" \"{3}\"", margin_top, margin_left, url, filename);
using (Process process = new Process())
{
process.StartInfo.FileName = "C:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
process.StartInfo.Arguments = paramsBuilder.ToString();
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.Start();
if (!process.WaitForExit(60000))
{
process.Kill();
}
}
}
Imports System.Text
Imports System.Diagnostics
Shared Sub Main(ByVal args() As String)
ConvertChromePdfRenderer(20, 40, "https://en.wikipedia.org/wiki/PDF", "Sample.pdf")
Console.WriteLine("ok")
Console.ReadKey()
End Sub
Public Shared Sub ConvertChromePdfRenderer(ByVal margin_top As Integer, ByVal margin_left As Integer, ByVal url As String, ByVal filename As String)
Dim paramsBuilder As New StringBuilder()
paramsBuilder.AppendFormat("--margin-top ""{0}"" --margin-left ""{1}"" ""{2}"" ""{3}""", margin_top, margin_left, url, filename)
Using process As New Process()
process.StartInfo.FileName = "C:\Program Files (x86)\wkhtmltopdf\bin\wkhtmltopdf.exe"
process.StartInfo.Arguments = paramsBuilder.ToString()
process.StartInfo.UseShellExecute = False
process.StartInfo.RedirectStandardOutput = True
process.StartInfo.RedirectStandardError = True
process.Start()
If Not process.WaitForExit(60000) Then
process.Kill()
End If
End Using
End Sub
このコードは次のコマンドをwkhtmltopdf.exe
を使用して実行します。プロセスは以下の通りです:
--margin-top "20" --margin-left "40" "https://en.wikipedia.org/wiki/PDF" "Sample.pdf"
出力:
以下はwkhtmltopdfによるSample.pdf
ファイルです。
IronPDFを使用して作成するのと同じPDFファイルを作成します。
プロジェクトのパフォーマンスは非常に重要です。残念ながら、wkhtmltopdfは別のプロセスおよびスレッドを実行する必要があるため、パフォーマンスに影響を与えます。 一方、IronPDFを使用する場合、別々のプロセスとスレッドの実行を行う必要はありません。
両方の製品に関するライセンスと価格について話しましょう。
IronPDFは開発用に無料で提供されており、30日間の無料デプロイメントトライアルも提供しています。 本稼働での使用には、ライセンスは$749から始まり、複数の開発者、プロジェクト、およびロイヤリティフリーの再配布製品向けのパッケージが利用可能です。 IronPDF ライセンス.
IronPDFはほぼ毎月の頻度で新しいバージョンをリリースし、最新技術およびバグ修正に対応しています。 このコンポーネントは、IronSoftwareのフルタイムのエンジニアチームによって支えられており、信頼性が高く、高品質かつ高性能をお客様に提供します。
wkhtmltopdfは、オープンソースのコンポーネントであり、無料で使用できます。 したがって、ソフトウェアの更新、バグ修正、サポート、ホットフィックス、また会社の保証は一切提供されません。 プロジェクトでwkhtmltopdfを使用する場合、その成功をデバッグし、管理するのは私たち自身の責任となります。
IronPDF | wkhtmltopdf |
---|---|
IronPDFがプロジェクトの一部となります。 | wkhtmltopdfはプロジェクトの一部にはなりません |
別のプロセスは必要ありません | プロセスを分けて実行する必要がある |
自動でスペースを設定して読みやすさを向上させます | ヘッダーとページ内容の間に自動的なスペースはありません |
JavaScriptを有効化または無効化できます。 | JavaScriptを有効化および無効化できます |
異なる用紙サイズに印刷できます | 異なる用紙サイズに印刷できます |
たくさんのドキュメントが利用可能です | 利用可能なドキュメントが少ない |
別々のファイルパスを指定する必要はありません | `wkhtmltopdf.exe`ファイルのパスを指定する必要があります |
`C#` ライブラリをプロジェクトに追加するためには、その参照を追加する必要があります。 | CLIベース、.NETアプリケーションでProcessを使用してコマンドを実行します。ウェブまたはサーバーアプリケーションでの使用は推奨されません。 |
`.aspx`ページをPDFファイルに変換するための一般化された方法を提供します。 | `.aspx` ページを PDF に変換する一般的な方法を提供していません。 |
PDFファイルにページ区切りを簡単に追加できます | 改ページは調査を必要とする場合があります。 |
開発用は無料、ライセンスにはバージョンアップデートとエンジニアサポートが含まれています。 | オープンソース、既知のサポートなし |
IronPDF C# ライブラリのAPIリファレンスを探索し、IronPDFのすべての機能、クラス、メソッドフィールド、名前空間、および列挙型の詳細を確認してください。
APIリファレンスを表示9つの .NET API製品 オフィス文書用