问题标签 [ghostscript.net]

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 回答
35 浏览

windows-10 - 与 Windows 10 兼容的最早版本的 GhostScript 是什么?

兼容在 Windows 10 上运行的最早版本的 Ghostscript 是什么?

0 投票
1 回答
952 浏览

c# - GhostscriptRasterizer.PageCount 始终返回零

这个问题已经在这里讨论过:GhostscriptRasterizer Objects Returns 0 as PageCount value 但是这个问题的答案并没有帮助我解决问题。

就我而言,从 kat 到旧版本的 Ghostscript 没有帮助。26 和 25。我的 PageCount = 0,如果版本低于 27,我收到错误“未找到本机 Ghostscript 库”。

0 投票
1 回答
116 浏览

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

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

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

我正在使用 Ghostscript 8.64 32 位。

0 投票
2 回答
228 浏览

c# - ghostscript.net 可以将 PDF 文件分成多个部分吗?

我有一个很长的 PDF 文件(58x500 英寸)。目标是将一个大型矢量 pdf 文件划分为一定百分比。例如 %25 = 125 英寸高,而宽度保持不变。所以一个大的pdf将被分成4页。

ImageMagick 能够做到这一点,但如果我将 dpi 更改为 300,它会崩溃。是否可以使用 Ghostscript 做到这一点?我正在使用 Ghostscipt.net 和 C#。

有人可以指出我正确的方向吗?

0 投票
0 回答
335 浏览

c# - Ghostscript.NET.Rasterizer 设置分辨率 (Dpi) 不起作用

我有这段代码可以将 pdf 转换为 tif,它比 ImageMagick 库更快,所以我必须使用它。每件事都很好,但是当我设置x 和 y dpi时,它总是被忽略。我尝试了不同版本的 NuGet GhostScript,我也尝试了不同版本的 ghostscript.exe 仍然是同样的问题

这是我的代码:

也试过:

也试过:

在这种情况下,我手动将 gsdll32.dll 添加到此环境路径 ..\bin\debug 但我收到此错误: Ghostscript.NET.GhostscriptException:'无法为符号'gsapi_revision'创建导出函数的委托''

知道为什么忽略 x 和 y dpi 以及在属性中将其设置为 96 或 120 作为垂直/水平分辨率。我很感激任何帮助。

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 投票
1 回答
670 浏览

c# - 如何使用 Ghostscript 和 Ghostscript .NET 通过嵌入 IIC 配置文件生成正确的 PDF/A

当前情景:

我正在尝试根据普通的 PDF 文档生成正确且一致的 PDF/A,经过几个小时的调查,我们决定使用 Ghostscript 功能。这个业务需求是为我正在从事的一个更大的 C# 项目设置的,但首先我开始在 Windows 上下文中使用Ghostscript 命令进行一些测试,另一方面创建了一个使用 Ghostscript .NET 的隔离控制台应用程序,以测试此功能的可行性。

我们在第一次测试中集中精力使用PFD/A-1B格式,并利用VeraPDFPDF-Tools来检查生成文件的一致性。

以下测试已使用几个不同的 PDF 文件完成,其中一些是我们的项目应用程序实际生成的文件。为简单起见,如果有人想检查,我提供了一个简单的 PDF(只有几行文本),它已经以相同的方式使用和测试,并且重现了相同的行为。

下载 PDF 进行测试

Ghostscript 命令测试

执行

使用 GhostScript v 9.52,我尝试了以下命令:

*注意:即使我读到不推荐使用-dNOSAFER参数,如果没有它,我也无法为/invalidfileaccess错误生成 PDF。我怀疑访问权限是原因,正如在 Stackoverflow 上搜索的那样(GhostScript: Error: /invalidfileaccess in --file--),但仍然没有找到任何适合我的解决方案。

还尝试了以下命令,但错误相同(将所需的 ICC 配置文件与 .ps 模板文件位于同一文件中):

对于 PDFA 配置文件,我尝试在 Ghostscript 安装目录中的/lib上提供默认 PDFA_def.ps模板。之后,尝试使用 PDFA_def.ps 模板文件,更新行:

结果和验证

结果:下载命令行生成的 PDF

VeraPDF 说:

PDF 文件符合验证配置文件要求

PDF 工具 说:

该文档确实符合 PDF/A-1b 标准。

此外,当使用 Adob​​e Reader DC 打开时,一致性选项卡显示所选格式 (PFD/A-1B) 的所有详细信息,但不显示OutputIntent ,甚至 PDFA_def.ps模板被设置为参数,并且 sRGB ICC 配置文件显示在里面模板文件。 Adobe 一致性状态丢失 OutputIntend 捕获

Ghostscript .NET 控制台应用程序:

执行

我尝试根据 Ghostscript 测试期间使用的相同参数编写代码:

*注意:请注意,这次没有使用 -dNOSAFER 参数。如果包含,结果是相同的,没有附加信息或详细错误如果包含注释行switches.Add("c:/GS_PDFA/PDFA_def.ps");,则应用程序会引发错误

调用“gsapi_init_with_args”时发生错误:-100

我试图防止错误使用模板文件的另一个位置,但没有成功。还在顶部添加了代码行:switches.Add("-Ic:/GS_PDFA/"); 但同样的错误。

结果和验证

结果:下载由 GS .NET DLL 生成的 PDF

VeraPDF 说:

如果未设置 PDFA_def.ps 模板文件,则生成的文件不会通过验证检查。

PDF 文件符合验证配置文件要求

PDF 工具 说:

该文档确实符合 PDF/A-1b 标准。

此外,当使用 Adob​​e Reader DC 打开时,一致性选项卡会显示所选格式 (PFD/A-1B) 的所有详细信息,现在OutputIntent 存在,但详细信息不完整,因为未显示 Identifier 和 Info 值。Adobe 一致性状态 OutputIntend 不完整捕获

问题

  • 根据 Ghostscript 命令,有没有办法使用正确的 ICC 信息生成 PDF/A?对于我所看到的,没有一个结果真的令人满意,那么我应该怎么做才能成功地将这些信息嵌入到 PDF/A 生成的文件中?
  • 猜测 Ghostscript 命令可以实现包含正确 ICC 配置文件的符合 PDF/A 文件的技巧,并且由于我们计划使用 Ghostscript .NET,我如何将 PDF/A 模板文件作为参数包含在 C# 代码中?

提前非常感谢。

[编辑]

我无法使用 --permit-file-read 更改权限。我通常在 C:\GS_PDFA 中有 ps 和 icc 文件,但在 GS 本地安装文件夹中尝试使用它们,但总是出现相同的错误:

错误:/invalidfileaccess in --file-- 操作数堆栈:--nostringval-- --nostringval-- (C:/GS_PDFA/srgb.icc) (r) 执行堆栈:%interp_exit .runexec2 --nostringval-- nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1990 1 3 %oparray_pop 1989 1 3 %oparray_pop 1977 1 3 %oparray_pop 1833 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- 字典堆栈:--dict:741/1123(ro)(G)-- --dict:0/20(G)-- --dict:76/200(L)-- 当前分配模式是本地 最后操作系统错误:权限被拒绝 当前文件位置是 2118

使用 Ghostscript .NET 对控制台应用程序进行了大量测试,甚至将 PDFA_def.ps 和 srgb.icc 文件放在解决方案文件夹中,同样的错误。尝试在 C:\GS_PDFA 中找到主要的 GS 安装文件,包括 ICC 配置文件 (srgb.icc),打开命令提示符并再次使用 Ghostscript 命令进行测试,但均不成功。

以下是我尝试过的一些命令示例:

我尝试移动文件、更改位置、文件夹等。我尝试更改文件夹安装,即使使用 Ghostscriptx64 也是如此...安装时我错过了什么吗?

请问,有人有可以帮助我的windows工作示例吗?

0 投票
1 回答
158 浏览

vb.net - 使用 Ghostscript.NET 包装器打印 PDF - 空白页

我正在使用 Ghostscript.NET 包装器打印 PDF 文件。打印工作正常,但实际打印前出现 2 个空白页。请问有人可以帮我吗?我对以下代码做错了吗?顺便说一句,我们的打印机很小,它是用来打印条形码的。

0 投票
1 回答
823 浏览

c# - .net 上的 Ghostscript 安装问题

为了在我的 MVC C# 应用程序中安装 Ghostscript,我遵循了大量的 SO 指南,但我无法识别下面的代码。它一直说“找不到 GhostscriptRasterizer(您是否缺少 using 指令或程序集引用?)”

我正在使用 Visual Studio,这是我已经尝试过的:

  • 从https://www.ghostscript.com/download.html获取 .exe 文件并安装它。然后在我的项目中手动将 gsdll32.dll 包含为“内容”(菜单:添加现有项);
  • 在 Visual Studio 上,转到“工具>NuGet 包管理器>管理 NuGet 包以获取解决方案”,然后由 Josip Habjan 安装 Ghostscript.NET。
  • 同样在 NuGet 包管理器上尝试安装 Matthieu 的 Ghostscript dll - 出现错误“无法添加对 'gsdll32' 的引用。请确保该文件是可访问的,并且它是一个有效的程序集或 COM 组件。”
  • 在包管理器控制台上做了“Install-Package Ghostscript -Version 9.2.0”,也得到了上面的错误