html ファイルを印刷するときに問題が発生し、doc、xls、および txt ファイルを試してみましたが、それらは完全に機能しますが、html ファイルを指定すると、印刷ダイアログが表示され、動作するためにゴーストスクリプト プリンターを選択する必要があります。
私のコードは次のとおりです。
[DllImport("Winspool.drv")]
private static extern bool SetDefaultPrinter(string printerName);
[ValidateInput(false)]
public ActionResult CreatePdf(string file , string html)
{
SetDefaultPrinter("Ghostscript");
Process process1 = new Process();
if (html != null && html != "")
{ process1.StartInfo.FileName = "example.html"; }
else
{ process1.StartInfo.FileName = file; }
process1.EnableRaisingEvents = true;
process1.StartInfo.Verb = "print";
process1.StartInfo.Arguments = "\"Ghostscript PDF\"";
process1.StartInfo.WorkingDirectory = Server.MapPath("~" + "/Export");
process1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process1.StartInfo.CreateNoWindow = true;
process1.Start();
try
{
process1.WaitForExit();
}
catch (InvalidOperationException) { }
process1.Dispose();
}
これにより、output.psファイルが変更され、pdfファイルを作成するために使用されます。これは完全に機能し、htmlファイルでこれを機能させる必要があります。
私はこの2つの例に従いました:
編集:html から pdf ファイルを取得するためにこの変換が必要で、wkhtmltopdf が最適であることがわかりました。