の助けを借りて PDF 生成に問題があります。wkhtmltopdf.exe
これが私のコードです:
public bool WKHtmlToPdf(string Url, string outputFilename)
{
string filename = "E:\\XYZ" + "\\" + outputFilename + ".pdf";
var p = new System.Diagnostics.Process();
p.StartInfo.FileName = ConfigurationManager.AppSettings["HtmlToPdfExePath"];
string switches = "--print-media-type ";
switches += "--margin-top 4mm --margin-bottom 4mm --margin-right 0mm --margin-left 0mm ";
switches += "--page-size A4 ";
switches += "--no-background ";
switches += "--redirect-delay 100";
p.StartInfo.Arguments = switches + string.Format(" --\"{0}\" --", Url) + " " + filename;
p.StartInfo.UseShellExecute = false; // needs to be false in order to redirect output
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardInput = true; // redirect all 3, as it should be all 3 or none
p.StartInfo.WorkingDirectory = StripFilenameFromFullPath(p.StartInfo.FileName);
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit(60000);
// read the exit code, close process
byte[] buffer = p.StandardOutput.CurrentEncoding.GetBytes(output);
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "inline;filename=download.pdf");
Response.BinaryWrite(buffer);
Response.End();
int returnCode = p.ExitCode;
p.Close();
return true;
}
そして、関数を次のように呼び出します。
WKHtmlToPdf(Request.Url.GetLeftPart(UriPartial.Authority) + "/SavePDF.aspx?PID="
+ Request.QueryString["PID"].ToString(), "MyInvoice");
HTML が存在するページは次のとおりです。http://localhost:61493/SavePDF.aspx?PID=10
そして、私の出力PDFファイルは次のとおりです。MyInvoice
しかし、私は得ています:
PDF文書が正しく表示されない場合があります。
問題は何ですか..?