问题标签 [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 回答
1795 浏览

c# - Ghostscript 对 dll 的怪异锁定(调用“gsapi_new_instance”时发生错误:-100)

我有一个用于上传 PDF 的 C#/MVC 网站,当多个浏览器实例尝试同时上传时,使用Ghostscript.Net v 1.2.1,我收到以下错误:

Ghostscript.NET.GhostscriptAPICallException:调用“gsapi_new_instance”时发生错误:Ghostscript.NET.Interpreter.GhostscriptInterpreter.Initialize() 处的 Ghostscript.NET.Interpreter.GhostscriptInterpreter..ctor 的 -100(GhostscriptVersionInfo 版本,来自内存的布尔值)在 Ghostscript.NET.Viewer.GhostscriptViewer.Open(String path, GhostscriptVersionInfo versionInfo, Boolean dllFromMemory) 在 Ghostscript.NET.Viewer.GhostscriptViewer.Open(Stream stream, GhostscriptVersionInfo versionInfo, Boolean dllFromMemory) 在 Ghostscript.NET.Rasterizer.GhostscriptRasterizer.Open (Stream stream, GhostscriptVersionInfo versionInfo, Boolean dllFromMemory)`

它在这里中断:

在公开赛上。此代码是从由 a 调用的函数中调用的async Task<ActionResult>。我想知道是否以async某种方式破坏了它。在该GhostScript站点上,我能找到的最接近的相关答案是确保我Close()/Dispose()之前的实例 - 但这不是我的问题,因为问题是不同浏览器会话中的伴随实例调用到同一个 .dll (它确实在IIS)。

没有引用任何静态变量,它发生在原始HttpPost.

0 投票
1 回答
310 浏览

wpf - Ghostscript.NET Viewer的WPF MVVM适配不显示Pdf页面为ImageSource

我刚刚开始尝试 Ghostscript.Net。我的目标是使 GhostscriptViewer 适应我的 WPF MVVM 模块化环境,但我无法在 XAML 图像控件中显示页面。我怀疑我的问题在于我对 Ghostscript.Net 的了解不足或不了解如何将图像参数绑定到图像控件。

在这个应用程序中,我将 Prism 与 UnityContainer 一起使用。PdfViewModel 中的 PdfPageImage 属性绑定到视图 XAML 中的图像控件。在 _viewer_displaypage 方法中进行的转换为 PdfPageImage 提供了 System.Windows.Interop.InteropBitmap 类型的对象。我在想 RaisePropertyChangedEvent 方法会导致控件使用 ImageSource 对象进行更新。

0 投票
0 回答
443 浏览

c# - Ghostscript.Net v 1.2.1 算术溢出错误

执行以下 raster.Open 时,有没有人从 Ghostscript 看到这个特殊错误:

其中 _version 是:

System.OverflowException:算术运算导致溢出。在 Microsoft.WinAny.Interop.DynamicNativeLibrary.FinalizeSections(MEMORY_MODULE* memory_module) 在 Microsoft.WinAny.Interop.DynamicNativeLibrary.MemoryLoadLibrary(Byte[] data) 在 Microsoft.WinAny.Interop.DynamicNativeLibrary..ctor(Byte[] buffer) 在 Ghostscript Ghostscript.NET.Interpreter.GhostscriptInterpreter..ctor(GhostscriptVersionInfo 版本,来自Memory 的布尔值)的 .NET.GhostscriptLibrary..ctor(GhostscriptVersionInfo 版本,来自内存的布尔值)在 Ghostscript.NET.Viewer.GhostscriptViewer.Open(字符串路径,GhostscriptVersionInfo 版本信息,布尔值dllFromMemory)在 Ghostscript.NET.Viewer.GhostscriptViewer.Open(流流,GhostscriptVersionInfo versionInfo,布尔 dllFromMemory)在 Ghostscript.NET.Rasterizer。

0 投票
1 回答
601 浏览

c# - 使用 Ghostscript.NET 删除创建者、作者、主题、标题和关键字

当我尝试使用 Ghostscript.NET 从 PDF 中删除创建者、作者、主题、标题和关键字时,我收到错误 -100。

这是我正在使用的开关:

谢谢

0 投票
1 回答
611 浏览

c# - 如何在内存中写入和查看转换后的 pdf?

现在我在 Unity 中使用 ghostscript 将 pdf 转换为 jpg 并在我的项目中查看它们。

目前它的流程如下:
-Pdfs 被转换成多个 jpeg(每页一个)
-转换后的 jpeg 被写入磁盘
-然后它们按字节读入 2D 纹理
-并且这个 2D 纹理被分配给 GameObjects RawImage零件

这在 Unity 中完美运行,但是......(现在出现了问题)我的项目打算在 Microsoft Hololens 上运行。Hololens 在 Windows 10 API 上运行,但容量有限。

出现问题的地方是当尝试转换 pdf 并在 Hololens 上查看它们时。很简单,Hololens 无法在其已知文件夹(图片、文档等)之外创建或删除文件。

对于这个问题,我想象的解决方案是不要将转换后的 jpeg 文件写入磁盘,而是将它们写入内存并从那里查看它们。

在与 GhostScript 开发人员交谈时,有人告诉我 GhostScript.NET 做了我想做的事情 - 转换 pdf 并从内存中查看它们(我相信,它使用 Rasterizer/Viewer 类来做到这一点,但我还是不太明白出色地)。

我一直被引导查看最新的 GhostScript.NET 文档来确定这是如何完成的,但我只是不太了解它们来解决这个问题。

那么我的问题是,基于我现在如何使用ghostscript,我如何在我的项目中使用GhostScript.NET 将转换后的jpeg 写入内存并在那里查看它们?

这是我现在的做法(代码方面):

转换函数来自我从代码项目中获得的名为PDFConvert的脚本。特别是如何使用 Ghostscript API 将 PDF 转换为图像

0 投票
1 回答
186 浏览

c# - 如何告诉 ghostscript 不要光栅化 eps 文件中的渐变?

我正在寻找可以让我阅读、编辑和保存 .eps 文件的解决方案。我发现ghostscript可以提供所有这些机会。我需要的算法很简单:读取几个 .eps 文件,将它们连接到一个大文件中并保存新的 .eps 文件。我已经可以这样做了,但是有一个问题:新生成和保存的文件不保留渐变。渐变被光栅化,使用渐变的形状被转换为剪贴蒙版。有没有办法告诉ghostscript不要光栅化eps中的渐变?

尽管我的 Windows 是 64 位,但我正在使用最新的 32 位版本的 ghostscript 库(在 64 位版本的 ghostscript 上运行解决方案时出现问题)。实际上这并不重要,但我正在使用 C# 和 Ghostscript.Net 编写。

这是示例代码:

0 投票
2 回答
755 浏览

printing - 使用 Ghostscript.NET 设置纸张大小打印

我正在使用 Ghostscript.NET 打印一些 pdf,这是我的配置。

它工作得很好,但我的纸张尺寸是 6.5 英寸 x 8.5 英寸的自定义纸张,我的问题是当我在理光打印机上静默打印时,尝试用字母打印。

如何在开关中设置纸张尺寸或强制打印机正确渲染。

如果我手动打印必须手动选择纸张和垃圾箱,所有打印都完美无缺。

0 投票
1 回答
692 浏览

c# - 将 Pdf 转换为 png 在图像周围创建黑色边距

我正在尝试使用ghostscript.net(1.2.1.0)将pdf转换为图像,gs版本是9.22 x86。

我的代码:

它适用于某些页面,但对于某些图像,它会创建黑色边距和黑色背景。

示例文件: pdf => png

我用gs命令测试,没问题。我尝试了以下代码。图像很好,但文字质量很差。

0 投票
2 回答
4147 浏览

c# - gsapi_init_with_args 是:-100

我正在尝试使用 Ghostscript.Net 构建 PostScript 到 PDF 转换器。GetArgs 返回的参数是我通常用来调用 gswin32c.exe 的参数,它们工作正常。

但是每次我调用 Process 时,我都会收到一条错误消息,提示“调用 'gsapi_init_with_args' 时发生错误:-100”。谷歌搜索该错误并没有带来任何问题,所以我想我可以在这里问。

直接使用 Ghostscript.net 调用 .dll 时是否需要考虑不同的参数?还是我在其他地方犯了错误?

这是我的课:

编辑:我忘了提:要实现它,我必须创建自己的 GhostsdcriptStdIO 类。我承认我不完全确定我是否做对了。尽管它确实毫无例外地被实例化,并覆盖了 StdOut(...) get 的调用,并且输出按预期写入控制台。override void StdError(...) get 也被调用。并且还写到控制台上。顺便说一句,错误的输出是:

"**** 无法打开文件 "c:\temp\test.pdf"" "**** 无法打开初始设备,正在退出。"

这是我的 ConsoleStdIO 类:

同样:使用 gswin32c.exe 对完全相同的文件和参数执行相同的操作可以正常工作。快乐黑客

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 版。

有人能帮我吗?