大量の HTML ファイル (約 30) を PDF に変換する必要があります。TOC とリンク ページを作成できれば最高ですが、今は個々のファイルを変換するだけで十分です :)
私はすでにいくつかのソリューションを試しましたが、最も成功したのは EO.PDF でしたが、すべてのページに厄介な透かしが入り、数メガを超えるファイルを処理できず、私のいくつかは 10メガ以上です。
私は wkhtmltopdf について多くの良いことを読み、そのラッパーである WkHTMLToSharp を見つけました。ドキュメントが見つからないので、例外をスローしている次のコードをまとめました。これを解決するための助けをいただければ幸いです。
例外の原因となっている行に注目しました。(非常に役に立たない)例外は次のとおりです。
"The type initializer for 'WkHtmlToXSharp.WkHtmlToPdfConverter' threw an exception."
- コード -
/// <summary>
/// Creates a PDF file from the HTML file passed in
/// </summary>
/// <param name="cFile">Full path to HTML file to generate PDF from</param>
/// <param name="pdfFile">Full path of PDF output file</param>
public static void WritePDF(string cFile, string pdfFile)
{
// Generates "The type initializer for
// 'WkHtmlToXSharp.WkHtmlToPdfConverter' threw an exception.":
WkHtmlToPdfConverter w = new WkHtmlToPdfConverter();
byte[] strHTML = w.Convert(cFile);
File.WriteAllBytes(pdfFile, strHTML);
w.Dispose();
}
欠落している DLL の問題を解決した後、コードの一部が実際にはファイルではなく HTML の文字列を変換することを発見しました。私はそれで作業できますが、 HTMLファイルで作業することを大いに好みます。
さらに、PDF ファイルに表示される画像はありません。それらはすべて JPG です (GIF に問題があることはわかっています)。