0

の助けを借りて 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文書が正しく表示されない場合があります。

問題は何ですか..?

4

0 に答える 0