使用winspool.Drv-WritePrinter打印使用符号而不是正确的页面打印数百页

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用winspool.Drv-WritePrinter打印使用符号而不是正确的页面打印数百页相关的知识,希望对你有一定的参考价值。

我有一个svc,它接收一个带有打印机名称的字符串,并且在某些事情之后,它完成了打印pdf文档。

我正在使用类似这样的代码来打印pdf

https://vishalsbsinha.wordpress.com/2014/05/06/how-to-programmatically-c-net-print-a-pdf-file-directly-to-the-printer/

它在我的电脑/打印机上完美运行。但是当我在服务器上发布和部署时,当我使用该服务时,它开始打印数百个用符号填充的页面而不是预期的一页pdf。服务器没有安装Adobe Acrobat(也没有安装它)所以我不能使用其他替代品,如'new Process() - > Verb =“PrintTo”。

pdf字体是Calibri和Arial,它们安装在我的团队和服务器上。

有谁能告诉我为什么它以错误的方式打印,我有什么替代品?

打印机的型号是:RICOH Aficio MP C4501 PCL 6

答案

您的解决方案要求打印机本机处理PDF文件,许多打印机不支持PDF。打印机驱动程序从Windows GDI转换为打印机的本机格式,但您使用WritePrinter绕过打印机驱动程序。您将需要使用支持PDF的其他纸张打印机,或使用打印机驱动程序而不是WritePrinter将文件发送到打印机。

以上是关于使用winspool.Drv-WritePrinter打印使用符号而不是正确的页面打印数百页的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)