我有一个使用 GhostScript.NET 打印 PDF 文档的功能。如果一个用户尝试打印,一切都会正常工作,但是当多个用户尝试同时打印时,它不会打印所有文档。我认识到我将创建多个 ghostscript 实例以实现多个同时打印。我遇到了这个问题:
一位用户说要创建一个并行 forloop,但老实说,我不确定如何构建一个以便创建正确数量的 GhostScript 实例。
我有主要功能:
public static void PrintFormPdfData(byte[] formPdfData, string printer)
{
var filename = @"C:\TEMP\report.pdf";
using (var file = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite))
{
file.Write(formPdfData, 0, formPdfData.Length);
using (GhostscriptProcessor processor = new GhostscriptProcessor())
{
List<string> switches = new List<string>();
switches.Add("-empty");
switches.Add("-dPrinted=false");
switches.Add("-dBATCH");
switches.Add("-dPDFFitPage");
switches.Add("-dNOPAUSE");
switches.Add("-dNOSAFER");
switches.Add("-dNumRenderingThreads=3");
switches.Add("-dNumCopies=1");
switches.Add("-sDEVICE=mswinpr2");
switches.Add("-sOutputFile=%printer%" + printer);
switches.Add(filename);
try
{
processor.StartProcessing(switches.ToArray(), null);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
File.Delete(filename);
}
}
}
}
任何帮助将不胜感激。