その場でHTMLファイルを生成していますが、最終ファイルからPDFを作成したいと思います。私は.Convert機能することを発見したC#で画像を含むWkHTMLToSharp/wkhtmltopdfを使用してHTMLファイルをPDFに変換する方法
public static void WritePDF(string cFile, string pdfFile)
{
WkHtmlToPdfConverter w = new WkHtmlToPdfConverter();
byte[] strHTML = w.Convert(cFile);
File.WriteAllBytes(pdfFile, strHTML);
w.Dispose();
}
:完了したら
public static void WriteHTML(string cFile, List<Movie> mList)
{
int lineID = 0;
string strHeader, strMovie, strGenre, tmpGenre = null;
string strPDF = null;
// initiates streamwriter for catalog output file
FileStream fs = new FileStream(cFile, FileMode.Create);
StreamWriter catalog = new StreamWriter(fs);
strHeader = "<style type=\"text/css\">\r\n" + "<!--\r\n" + "tr#odd {\r\n" + " background-color:#e2e2e2;\r\n" + " vertical-align:top;\r\n" + "}\r\n" + "\r\n" + "tr#even {\r\n" + " vertical-align:top;\r\n" + "}\r\n" + "div#title {\r\n" + " font-size:16px;\r\n" + " font-weight:bold;\r\n" + "}\r\n" + "\r\n" + "div#mpaa {\r\n" + " font-size:10px;\r\n" + "}\r\n" + "\r\n" + "div#genre {\r\n" + " font-size:12px;\r\n" + " font-style:italic;\r\n" + "}\r\n" + "\r\n" + "div#plot {\r\n" + " height: 63px;\r\n" + " font-size:12px;\r\n" + " overflow:hidden;\r\n" + "}\r\n" + "-->\r\n" + "</style>\r\n" + "\r\n" + "<html>\r\n" + " <body>\r\n" + " <table>\r\n";
catalog.WriteLine(strHeader);
strPDF = strHeader;
foreach (Movie m in mList)
{
tmpGenre = null;
strMovie = lineID == 0 ? " <tr id=\"odd\" style=\"page-break-inside:avoid\">\r\n" : " <tr id=\"even\" style=\"page-break-inside:avoid\">\r\n";
catalog.WriteLine(strMovie);
strPDF += strMovie;
foreach (string genre in m.Genres)
tmpGenre += ", <a href=\"" + genre + ".html\" target=\"_blank\">" + genre + "</a>";
strGenre = tmpGenre != null ? tmpGenre.Substring(2) : null;
strMovie = " <td>\r\n" + " <img src=\".\\images\\" + m.ImageFile + "\" width=\"75\" height=\"110\">\r\n" + " </td>\r\n" + " <td>\r\n" + " <div id=\"title\">" + m.Title + "</div>\r\n" + " <div id=\"mpaa\">" + m.Certification + " " + m.MPAA + "</div>\r\n" + " <div id=\"genre\">" + strGenre + "</div>\r\n" + " <div id=\"plot\">" + m.Plot + "</div>\r\n" + " </td>\r\n" + " </tr>\r\n";
catalog.WriteLine(strMovie);
strPDF += strMovie;
lineID = lineID == 0 ? 1 : 0;
}
string closingHTML = " </table>\r\n" + " </body>\r\n" + "</html>";
catalog.WriteLine(closingHTML);
strPDF += closingHTML;
WritePDF(strPDF, cFile + ".PDF");
catalog.Close();
}
が、私はPDFファイルを生成するには、次の関数を呼び出したい:私は、HTMLファイルを生成するには、次を使用していますHTMLコードをファイルではなくPDFに変換します。次に、HTMLコードを直接渡すと、画像はPDFに表示されません。私は.GIFファイルに問題があることを知っていますが、これらはすべて.JPGファイルです。
私はwkhtmltopdfの良さについて多くのことを読んできました.WkHTMLToSharpを書いた人は、あまりにも彼のプロジェクトを投稿しましたが、ドキュメントの不足によって失望しました。
変換するファイルを渡したり、余白を変更したりすることができます(これは可能ですが、正しい設定を把握する必要があります)。画像を正しく変換する必要があります。複数のページにまたがってアイテムを分割する(「ページブレークイン:回避する」など)。
他の人がこれをどのように使用しているのが大好きです。
を使用して、あなたはあなたのイメージへの絶対パスを使用してみましたが?すなわち:/images/myimage.jpgの代わりに、http://www.myserver.com/images/myimage.jpgを使用しますか? –
絶対パスを使用すると、私は生成したコードを自分のウェブサイトで使用することはできません。 – Dizzy49