如何在 Server 2012 中将 Text to PDF 程序配置为打印机以在服务器上用于创建 PDF

Posted

技术标签:

【中文标题】如何在 Server 2012 中将 Text to PDF 程序配置为打印机以在服务器上用于创建 PDF【英文标题】:How to configure Text to PDF programe as Printer in Server 2012 to be used on server for creating PDF's 【发布时间】:2016-07-28 13:45:27 【问题描述】:

我的目标是在 Server 2012 R2 上创建一个 C# Web 表单应用程序,将文本(和图片)转换为 PDF 并将其发送给客户端。 我有所有代码,只需要正确设置打印机。 打印机(PDF 程序)必须可以通过客户端浏览器访问(它发送请求,服务器使用打印机创建 PDF并将其发送给客户端)。

无论我尝试什么,结果都是:

无法确定打印机的应用程序文件夹 '\服务器名称\Win2PDF'。使用设置重新安装打印机 程序可能会解决问题。

第一步是选择一个免费 Text to PDF程序,该程序适用于Server 2012 R2(因为Microsoft Print to PDF 出于某种原因没有)。我的程序唯一提到 PDF 程序的地方是在代码中选择打印机名称:

"PdfSettings.PrinterName = Win2PDF;".

目前的选择:

Win2PDF - 迄今为止最好的。只在文档中添加一个额外的空白页(可接受)。

CutePDF - 不支持 .NET

bioPDF - 底部有红色水印

PDFsharp - 我必须重新实现文档创建逻辑(大量工作)

Spire.PDF - 免费试用

Win10PDF - 免费试用,带水印

其次,我进入Print ManagmentPrint ServersPrinters,然后选择已安装的程序(Win2PDF)、Properties

分享:勾选“分享这台打印机端口:不确定要选择什么,所以我启用了打印机假脱机,还检查了一个标准 TCP/IP 端口(我之前创建的)李> 安全性:我确保那里的每个用户都有打印权限。

当我右键单击 Win2PDF 并转到 目录中的列表时,我得到:

无法发布所选打印机。目录服务不可用。

我不确定如何处理使用组策略部署

我还为此启用了 Branch Office Direct Printing

第三,我确保 Printer Spooler 正在运行。当我转到 /System32/spool/PRINTERS 时,我看到一个空文件夹,这是一个问题吗?有人建议尝试删除 PRINTERS 文件夹的内容,但我什么也删不掉。另外,在我安装了 Spooling 功能后,文章说去 Server ManagerPrint Services 看看 Spooling 是否在列表中(@ 987654321@) 它不在我的名单上!有问题吗?

我不知道出了什么问题或下一步该尝试什么。请帮忙!

【问题讨论】:

像 iText#/PdfSharp 这样的 PDF 库可以让您构建和保存/流式传输 PDF,而无需使用虚拟打印机。 问题是重新实现打印逻辑(一个相当复杂的报告)。如果我找不到解决方案,看来我将不得不使用其中两个中的一个。谢谢@Alex 【参考方案1】:

答案是尝试不同的方法。我不应该尝试使用虚拟打印机(我还没有找到让它工作的方法)。

要从代码创建 PDF,最好的方法是使用 iTextSharp.dll。有了它,您需要一些代码(不多,但您必须知道自己在做什么)。

【讨论】:

以上是关于如何在 Server 2012 中将 Text to PDF 程序配置为打印机以在服务器上用于创建 PDF的主要内容,如果未能解决你的问题,请参考以下文章

如何在sql server中将列转换为行

如何在SQL Server中将datetime值转换为yyyymmddhhmmss?

在 SQL SERVER 2012 中将 NULL 转换为空白

在 SQL Server 2012 中将两个 nvarchar 列与 Unicode 文本进行比较

如何在 R 中将 not.camel.case 转换为 CamelCase

在 sql server 中将 varchar yyyy-mm-dd T hh:mm 转换为 datetime2