Microsoft Server中缺少Microsoft Print to PDF驱动程序



我开发了一个C#web表单应用程序,该应用程序在服务器端生成PDF文档并将其发送到客户端。我使用Microsoft Print To PDF(MPTP)PrintDocumentPrintPageEventArgs.Graphics.DrawString生成PDF。这在我的本地机器上非常有效。

输入服务器:当我上传我的应用程序并尝试在服务器上运行时,我收到一个错误,说没有安装打印机。我检查了打印机和设备,发现服务器上没有列出MPTP(解决我问题的一个方法是将MPTP设置为默认打印机)。

如果您在"打印机和设备"中没有MPTP:

  • 打开"打开或关闭Windows功能",只需检查MPTP

问题是我那里也没有MPTP。解决方法:

  • 打开设备和打印机
  • 添加打印机
  • "我想要的打印机没有列出"
  • "添加具有手动设置的本地打印机或网络打印机"
  • 选择端口"FILE:(打印到文件)"(我尝试了其他端口,结果相同)
  • 在左侧(制造商)部分选择Microsoft,在右侧部分选择MPTP

它应该安装MPTP的驱动程序,但的问题是我的列表中没有MPTP!这是有问题的部分。

我在网上找不到这个问题的帮助(甚至找不到未回答的问题)。我在网上找不到驱动程序,所以我可以手动安装它们,但不知道如何修复。

我尝试使用CutePDF Writer和Spire.PDF生成PDF(我确实生成了PDF,但本地字符不起作用[č,š,ž],我必须使用PdfDocument、PdfSection、PdfTextWidget)。我不喜欢使用Spire.PDF生成,因为我必须为多页文档实现正确的头和签名(这很麻烦,我更喜欢使用使用PrintDocument和MPTP的已经编写和测试过的代码)。

为什么我的服务器上缺少Microsoft Print to PDF驱动程序

服务器信息 :Microsoft Windows Server 6.2版(内部版本9200)。互联网信息服务版本8.5.9600.16384。

这不是一个真正的解决方案,但如果你有一台可以使用的Windows 10 PC,我有在Windows Server 2012 R2上打印文档的解决方案吗。以下是步骤:

  1. 在Windows Server 2012 R2计算机上,转到"开始"菜单
  2. 查找"打开或关闭Windows功能"(可能需要管理员权限)
  3. 服务器管理器将启动
  4. 安装类型>基于角色或基于功能的安装
  5. 选择本地服务器
  6. 服务器角色>打开打印和文档服务>打印服务器
  7. 功能>XPS Viewer
  8. 安装

这将允许您打印到Microsoft XPS Document Writer,它将创建一个可以保存到服务器的".oxfs"文件。将该文件复制到您的Windows 10计算机上,然后您可以:

  1. 使用默认安装的XPS查看器在Windows 10 PC上打开.oxfs文件
  2. 打印>选择打印机>Microsoft打印为PDF
  3. 打印

@AlexK是对的。我刚开始使用服务器,当它实际使用Server 2012 R2时,我误以为它运行的是Windows 10。

问题是我在谷歌上搜索"Windows 10打印成pdf"。当我尝试搜索Server 2012时,我发现Server 2012上不存在打印为PDF,这就是我找不到它的原因。

解决方法是首先使用Windows XPS打印机打印到XPS,然后使用GhostScript的GhostXPS实用程序将XPS文件后处理转换为PDF。

在我的C#应用程序中,我使用System.Diagnostics.Process来设置参数并启动gxpswin64.exe命令行可执行文件。

以下是一个示例:在没有打印机驱动程序的情况下将XPS转换为PDF

参考文献:

GhostScript.com

GhostXPS.html

相关内容

最新更新