问题标签 [ghostscriptsharp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
894 浏览

c# - 使用 GhostScriptSharp 将多页 PDF 转换为一张图像

我正在使用 GhostScriptSharp 从 PDF 文档生成图像。它适用于单页,但我所追求的是让它从整个文档中生成一个图像。

这是我的代码:

0 投票
3 回答
954 浏览

c# - 将pdf转换为tiff的文件大小

我正在使用 ghostscriptSharp 将 PDF 文件转换为 TIFF 文件以进行传真。PDF 文件有时包含收据的复印件。

我正在使用高度 x 宽度为 400 x 400 的 tiffg3 驱动程序。我注意到包含影印件的 PDF 在转换为 TIFF 时往往会扩大尺寸,而没有影印件的 PDF 会缩小。我看到的典型增长是从 1 MB 增加到 25 MB。

我尝试向 TIFF 添加压缩,但传真进程无法读取它。有没有办法在不降低分辨率的情况下减小 ghostscriptSharp 中的输出大小?

0 投票
1 回答
1136 浏览

c# - Ghostscript.Net 在 Windows Server 2012 R2 中不起作用

我在我的项目中使用 Ghostscript.NET 跨网络打印 Pdf 文件。本地工作正常,使用从https://www.ghostscript.com/download/gsdnld.html下载的 Windows 10 版本 64 位和 Ghostscript 驱动程序到 32 位(Windows 32 位的 Ghostscript 9.22)。安装 32 位版本的动机是例外,

Ghostscript.NET.GhostscriptLibraryNotInstalledException:此托管库在 32 位进程下运行,需要在此机器上安装 32 位 Ghostscript 本机库!要下载适当的 Ghostscript 本机库,请访问:http ://www.ghostscript.com/download/gsdnld.html

,在使用 Ghostscript 64 位驱动程序时出现在我的应用程序日志中。

我发布应用程序的目标操作系统是 Windows Server 2012 R2。使用相同的 Ghostscript 驱动程序(适用于 Windows 32 位的 Ghostscript 9.22),打印命令无限循环,而不响应我的应用程序。

为此,我禁用了防火墙和防病毒软件,以消除它们成为循环原因的可能性。

我的应用程序从磁盘读取 pdf 文件并使用 Ghostscript 将其发送到网络打印机。为了模拟我使用 TeamViewer 远程连接到客户端计算机的过程。因此,我从这台机器调用 REST Web 服务,它将文件保存到磁盘并使用 Ghostscript 在网络打印机中打印文档。

我正在使用 Ghostscript.NET 1.2.1.0 版。

有人能帮我吗?

0 投票
1 回答
116 浏览

c# - Ghostscript 会导出 PNG,但会减少横向页面的一半

我正在尝试使用 Ghostscript 将 pdf 转换为图片。我有一个横向 A3 PDF,但无论我做什么,我只能得到每页的左半部分。我尝试添加-dPDFFitPage-dFIXEDMEDIA和其他参数,但它似乎没有改变任何东西。

我的代码没有额外的自定义开关(C#):

我正在使用 Ghostscript 8.64 32 位。

0 投票
0 回答
197 浏览

c# - 如何使用 Ghostscript 用 c# 裁剪和旋转 Postscript 页面

我想从 C# 中剪下 postscript 页面的一部分,旋转结果并将其保存为新的 postscript 页面。

我的源文件是 A4 的 Postscript 页面,纵向格式。页面由四个象限组成,每个象限是纵向格式的 A6。我想切掉左上象限。这将产生一个 A6 格式的页面。最后我想把这张 A6 页面顺时针旋转 90° 并再次输出为 postscript 文件。

我想从 Windows 下的 C# 应用程序调用这个过程,为此我想为 Ghostscript 使用 .Net-wrapper。

我可以使用以下代码从命令行执行任务:

(我也尝试过使用 PageOffset 和 Orientation 的变体,但在 Windows 下这对我不起作用。)

为了从 C# 中完成任务,我尝试了 Ghostscript.Net 和 GhostscriptSharp。不幸的是,两者都没有成功。

我在 Ghostscript.net 上尝试了这段代码,灵感来自于包含的示例:

这是我用 GhostscriptSharp 尝试的代码:

使用此调用:

我在公共类 GhostscriptWrapper 中添加了另一个函数

使用这两种方法,我都可以成功地从 A4 页面中剪切出 A6 页面,但是平移和旋转都没有完成。剪切在坐标原点的左下角完成。

在我看来,“-c”命令不能作为参数传递给 DLL 函数 gsapi_init_with_args,但我不确定。

Ghostscrip.Net 中的一个示例表明可以使用函数 gsapi_run_string 代替 init_with_args。在查看器示例中,字符串包含在 %%BeginPageSetup 和 %%EndPageSetup 中。但是,我无法结合 gsapi_run_string 构建 gsapi_init_with_args 的工作调用。

对于两个包装器之一或什至另一个包装器的任何提示将不胜感激。

0 投票
0 回答
241 浏览

c# - 使用 Ghostscript 更改 DocumentName

我需要更改正在打印的 DocumentName。此文档名称将显示在打印机假脱机中。我正在使用 Ghostscript c# 包装器打印 PDF。它在打印机假脱机列表中显示“Ghostscript 输出”。Ghostscript 文档提供了一种方法,但我没有设法使其工作。

他们在 10.2 节中对其进行了描述。 https://www.ghostscript.com/doc/9.26/Devices.htm#Win

这是我尝试使用 CLI 运行的内容:

安装程序.ps

结果:

谢谢

0 投票
0 回答
207 浏览

pdf - 使用 Ghostscript 将 PDF 重定向到 Windows 打印机

我正在开发一个虚拟 PDF 打印机(使用 redmon 和 Ghostscript),它有两个职责:

  1. 创建 PDF(使用 pdfwrite)
  2. 将创建的 PDF 重定向到指定的打印机(使用 mswinpr2)

除了一种特殊情况外,一切正常:当用户在 Windows 10 上注销和登录时。在这种情况下,重定向到指定打印机的 Ghostscript 调用会挂起并卡住。除非系统重新启动,否则它不会出现。我进行了更多挖掘,发现每当打印发生时,我的程序都会以系统用户开始(在用户注销和登录的情况下)。这就是重定向没有发生的原因。但是这种情况还有一个问题是读取 redmon 输出以传递给 Ghostscript 大约需要 4 到 5 秒。(通常仅以毫秒为单位)。

我正在使用 Ghostcript 9.54(最新)并使用以下 GitHub 存储库中提到的 API: https ://github.com/mephraim/ghostscriptsharp

  1. 对于 PDF 写入:

    String[] ghostScriptArguments = { "-dBATCH", "-dNOPAUSE", "-dSAFER", "-sDEVICE=pdfwrite", "-dAutoRotatePages=/None", String.Format("-sOutputFile={0}", outputFilename ), standardInputFilename, "-c "<</Orientation 0>> setpagedevice"" ,@"[/Creator(ZBPrinter 2.1.5 (PSCRIPT5)) /DOCINFO pdfmark", "-f"}; GhostScript.CallAPI(ghostScriptArguments);

  2. 对于 PDF 重定向到打印机:

    String[] ghostScriptArguments = {“-empty”、“-dPrinted”、“-dBATCH”、“-dNOPAUSE”、“-dNOSAFER”、“-dNOINTERPOLATE”、“-dNOCIE”、“-dNumCopies=1”、“- sDEVICE=mswinpr2", String.Format("-sOutputFile=%printer%{0}", 打印机名),"-f", pdfFilename}; GhostScript.CallAPI(ghostScriptArguments);

关于 Windows 10 上的用户注销/登录的更多观察:

  1. 在用户注销并登录时,如果打印到我的虚拟打印机,我已经获取了 Redmon 端口日志并发现了以下差异: a) REDMON_SESSIONID值将是 1 或递增值,而在系统重新启动时会话 id 值是0(即管理员访问) b) APPDATA目录指向 C:\Windows\system32\config\systemprofile\AppData\Roaming,而在系统重新启动时它是 C:\Users<Username>\AppData\Roaming。c) USERPROFILE值指向 C:\Windows\system32\config\systemprofile。

请帮助我找出为什么 PDF 重定向到特定打印机在 Windows 10 上的用户注销/登录时不起作用。

谢谢,普拉迪普·古普塔

0 投票
0 回答
43 浏览

printing - 在 Ghostscript 中使用 mswinpr2 时抑制打印对话框

我正在使用 Ghostscipt 9.54(最新版本)将 pdf 文件打印到我的 Windows 打印机。我正在使用以下命令:

这工作正常并且按预期工作。

现在我尝试在我的 .NET C# 应用程序中复制同样的东西。但问题是,每当我在我的 Win 10 笔记本电脑上运行我的应用程序时,它都会显示打印对话框以选择打印机。请让我知道我做错了什么,因为我正在复制与上述命令中所述相同的参数。下面是我的 C# 应用程序的代码:

我正在使用https://github.com/mephraim/ghostscriptsharp中的代码来调用带有 args 的 Ghostscript。这是 Ghosctscript.CallAPI() 的代码

InitAPI 代码为:

我已经从 Ghoscript 安装中复制了 gsdll64.dll。 从上周开始我就面临这个问题。自一个月以来,应用程序代码没有变化。

谢谢和问候, Pradeep Gupta