问题标签 [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 投票
2 回答
763 浏览

c# - 将pdf转换为png时出现致命错误

我正在尝试使用以下示例(第一个函数)中给出的代码将 pdf 转换为 PNG:https ://ghostscriptnet.codeplex.com/SourceControl/latest#Ghostscript.NET/Ghostscript.NET.Samples/示例/DeviceUsageSample.cs

但是,我在启动时收到此错误:“调用'gsapi_init_with_args'时发生错误:-100”......这并不意味着很多。

这个基本示例怎么不起作用?我在这里下载了最新的 Ghostscript.NET.dll:https ://ghostscriptnet.codeplex.com/并将其添加到项目的引用中。我的操作系统是 Windows 7 x32 位,我以管理员身份运行 VisualStudio。

这是我的代码:

0 投票
3 回答
1998 浏览

c# - GhostScript Rasterizer 内存不足异常

我正在使用作为后台处理器运行的 32 位控制台应用程序。我正在处理的部分使用 GhostScript 在 PDF 上执行 OCR。PDF 的每一页都呈现为临时文件夹中的 PNG 图像,然后 OCR 阅读器读取该图像。OCR 文本保存到数据库中,然后删除临时文件夹中的文件。

问题在于 GhostScriptRasterizer 对象占用了处理器可用的所有内存。当我调用 GhostScriptRasterizer.GetPage(dpi, dpi, pageNumber) 方法时,我得到一个 OutOfMemory 异常或 System.ArgumentException 消息“参数无效”。我对第二个异常的研究告诉我,这确实是第一个异常的症状。方法调用会吃掉所有可用的内存。

GetPage 方法正在创建一个需要连续未分段内存的 System.Drawing.Bitmap 图像。问题代码从这里开始。

我写的GetImage方法是这样的。

我一开始的 dpi 是 300,它适用于我们通过该系统的第一次测试运行的 95% 的文档。但是,对于某些页面,300 dpi 显然太高了,因为我得到了 Outofmemory 异常。看起来有些页面大约是 35 X 59 英寸。我无法控制这一点。对我来说,解决方案是继续尝试越来越低的 dpi,直到我有一些不会吃掉所有内存的东西。但是,所有这些内存都保留在光栅化器对象中,所以我需要以某种方式处理它。调用 rasterizer.Close() 给我以下错误。

托管调试助手“FatalExecutionEngineError”在“F:\Development\bin\Debug\Processor.Run.vshost.exe”中检测到问题。

附加信息:运行时遇到致命错误。错误地址位于线程 0x3e90 上的 0x7331e8c6。错误代码为 0xc0000005。此错误可能是 CLR 中的错​​误或用户代码的不安全或不可验证部分中的错误。此错误的常见来源包括 COM 互操作或 PInvoke 的用户封送错误,这可能会损坏堆栈。

删除 Close() 调用并调用 rasterizer.Dispose() 给了我:

Ghostscript.NET.dll 中出现“System.AccessViolationException”类型的未处理异常

附加信息:试图读取或写入受保护的内存。这通常表明其他内存已损坏。

我什至只是尝试在遇到异常并返回文件列表时中断,但这仍然要求我不使用光栅化器的 using 声明,因为我在 using 结束时遇到了相同的异常,因为它当然正在尝试处置对象。看起来垃圾收集器后来收集了该内存,但这并没有以任何方式解决我的问题。我仍然无法在同一个作业中对页面进行光栅化。

我能想到的唯一解决方案是以某种方式提前调整 pdf 的大小,但我希望有人知道一种处理该内存并以新的较低 dpi 重新光栅化的方法。

0 投票
2 回答
2993 浏览

c# - Ghostscript.NET 光栅化程序内存不足

我正在使用Ghostscript.NET,这是一个方便的用于 Ghostscript 功能的 C# 包装器。我有一批从客户端发送的 PDF 文件被转换为 ASP .NET WebAPI 服务器上的图像并返回给客户端。

这通常可以正常工作(我通常使用 500 dpi,我知道这很高,但即使降至 300 我也可以重现此错误)。但是,如果我从客户端提供许多 PDF(例如 150 个 1 页 PDF),它通常会在 Ghostscript.NET Rasterizer 中遇到内存不足异常。我该如何克服呢?这应该穿线吗?如果是这样,那将如何工作?使用 64 位版本的 GhostScript 会有帮助吗?提前致谢。

0 投票
2 回答
8834 浏览

c# - 在 32 位进程下运行的 GhostscriptLibraryNotInstalledException 需要本机库

在 Visual Studio 2013 中使用 nuget,我将Ghostscript.NET安装到我的 Windows x64 PC 上的项目中。

为了确保我没有发疯,我检查了它:

该项目被多个开发人员使用。它针对任何 CPU,并且需要保持这种状态。

这是我的代码:

每当我尝试调试应用程序时,都会收到以下错误消息:

GhostscriptLibraryNotInstalledException 未处理

Ghostscript.NET.dll 中出现“Ghostscript.NET.GhostscriptLibraryNotInstalledException”类型的未处理异常

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

截屏

查找Ghostscript.NET.GhostscriptLibraryNotInstalledException并没有提供任何有用的信息,尽管CodeProject 上的这篇文章表明调试器在 32 位模式下运行,而我安装了 64 位版本。

这一切都很好,但我该如何测试我编写的使用 Ghostscript 的新代码?

0 投票
3 回答
373 浏览

c# - 替换 PDF 中的特定文档

包括:

现在,我正在使用 Ghostscript.Net 将几个单个 PDF 合并到一个文档中:

我以后如何才能返回到REPLACE 或 UPDATE页 N?

我已经完成了一个有我计划的例程,但此时我不知道如何完成它。我可以提供arg值还是应该使用其他工具?

0 投票
1 回答
444 浏览

c# - GhostScript 路径输出/输入错误

我将 GS 32bits 与 C# 的包装器一起使用。

这条线有效:

但是这条线不起作用

GS 如何处理输入/输出路径?

0 投票
1 回答
1356 浏览

c# - Ghostscript.NET 无法使用选定的打印机名称进行打印

我想通过Ghostscript.NET打印一个带有选定打印机名称的 pdf 文件。这个应用程序实际上是CefSharp浏览器的一个包装器。当用户单击下载按钮时,它会直接使用选定的打印机下载并打印出来。

带印刷品的视觉工作室

你可以看到上面的截图,我通过 URL 查询字符串传递了打印机名称。另外,我设置了选项-dNOPAUSE& -dNOPROMPT。但是为什么还是会出现打印窗口,而且默认选择的打印机不是我设置的呢?

知道这里出了什么问题吗?

编辑:2016 年 3 月 4 日上午 11:31

对于命令行中的ghostscript,它会像

但它仍然显示打印提示。

0 投票
0 回答
414 浏览

vb.net - Ghostscript.net 在 Spooler 中打印 PDF 名称

当我打印 PDF 文件时

一切正常.. 但打印机假脱机程序中显示的名称是错误的!它显示为“Ghostscript 输出” 我在哪里可以更改名称?

谢谢!!

路博

0 投票
1 回答
1281 浏览

pdf - Ghostscript.net print pdf page orientation

I tried below ghostscript command to print pdf with landscape orientation over network printer but got portrait printout. Please help me to find out solution.

0 投票
1 回答
792 浏览

c# - Ghostscript 剪辑一个 pdf 文件

我正在尝试使用这些设置使用 Ghostscript 打印 pdf:

但是 pdf 或 Ghostscript 的边距都很差,虽然当我在打印机上打印它时将其打印到文件中时它会很好。

有没有办法用 Ghostscript 以编程方式添加这些?我从谷歌的第一页尝试了许多不同的解决方案,但它们都不起作用,而且它们似乎对打印的 pdf 没有影响。

当我尝试使用 Adob​​e 或 IE 打印它时,只要我选择了打印机,它就会神奇地添加边距并且打印效果很好。

如何使用 Ghostscript 达到同样的效果?