如何从.net发送PDF到网络打印机?

时间:2017-06-21 17:38:16

标签: c# asp.net pdf printing

我在IIS上运行ASP Web API(Windows server 2008 r2)。 该服务器有两台可通过网络使用的打印机(相同型号,kyocera fs-4200)。

我需要按代码选择打印机并双面打印PDF文档(dúplex)。

  • LPR似乎忽略了'-o sides =双边长边'选项,可能仅在UNIX上可用。
  • 我使用的是Spire.PDF,但已获得商业许可,我无法选择打印机。它打印到默认打印机,所以我每次都配置它。

2 个答案:

答案 0 :(得分:0)

您是否可以在Windows Server中设置要打印的打印机,以便默认打印双面打印?如果是这样,看起来Kyocera FS-4200DN将直接接受PDF文件进行打印,因此您可以通过命令行进程直接复制它:

copy /b filename.pdf port:

其中port:是安装在系统上时分配给打印机的Windows端口。

或者,看起来打印机可能使用名为PRESCRIBE的作业定义语言,其中支持双工命令。可以预置PRESCRIBE命令以启用对PDF数据的双工,然后直接发送PRESCRIBE + PDF数据流。 https://www.kyoceradocumentsolutions.fr/index/document_solutions/outputmanagement/prescribe.-contextmargin-99204-contextmargingeneralcontextteaserGC-87757-File.cpsdownload.tmp/Manuel%20des%20commandes%20Prescribe.PDF表明可以使用DUPX命令。我没有Kyocera打印机可以试试这个,所以我不能肯定它会起作用。

答案 1 :(得分:-1)

你可以这样做:

<option value=\"1\">blabla1</option>
<option selected=\"\" value=\"2\">blabla2</option>
<option value=\"3\">blabla3</option>

或者创建一个流并通过Socket填充它

File.Copy(yourPDFFile, @"\\yourservernname\yourprintername", true);

后者更冗长,但似乎效果更好。

参考此处:Send text file directly to network printer

虽然您在ASP.NET中运行权限可能存在问题,但您可能需要相应地进行调整。