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

c# - GhostScript 可以在中等信任下运行吗?

我正在使用 GhostScript 在 ASP.NET 应用程序中生成一些 PDF 页面的缩略图。我将它包装在这个名为 GhostScriptSharp 的库中,它只使用 DllImport 来调用 GhostScript DLL 中的方法。

看起来这在中等信任的托管环境上不起作用,或者是因为它正在调用非托管代码,或者看起来库正在整个地方(在我的虚拟目录之外)创建文件。

我运行 Process Monitor 并看到它在以下位置尝试读取、QueryNameInformationFile、CreateFile 和 QueryStandardInformationFile:

C:\WINDOWS\system32\Halftone\Default 或 C:\gs\gs8.63\lib\Halftone\Default 或 C:\gs\font\Halftone\Default

关于这是否可以“修复”以在中等信任下运行的任何想法?

如果我不能使用 GhostScript,是否有另一个免费/开源库可以在中等信任下工作?

0 投票
12 回答
23075 浏览

linux - 将 PDF 与 PDFTK 与书签合并?

使用 pdftk 合并多个 pdf 效果很好。但是,有什么简单的方法可以为每个合并的 pdf 添加书签吗?

我在 pdftk 文档上没有看到任何关于此的内容,所以我认为 pdftk 不可能。

我们合并的所有文件都将是 1 页,所以想知道之后是否有任何其他实用程序可以添加书签?

或者另一个基于 linux 的 pdf 实用程序,它允许在为每个单独的 pdf 指定书签的同时进行合并。

0 投票
3 回答
13716 浏览

c# - 是什么导致 Ghostscript 返回 -100 的错误?

因此,我正在使用Matthew Ephraim 的 GhostscriptSharp,它是我的 ASP.Net MVC 项目中非托管 Win32 Ghostscript DLL 的简单 C# 包装器。一些背景:

我正在尝试做的是让用户上传 PDF,然后将该文档转换为图像,然后我可以将其保存到我选择的任何目录中(以及执行一些其他 OOP 以将该新图像绑定到我的网站) .

我决定使用 Ephraim 先生的包装类 (GhostscriptSharp),因为它使用起来非常简单,而且它让我可以相对干净地访问 DLL 的 API。

为了测试它,我创建了一个虚拟的 C# 控制台应用程序,以确保我可以加载 DLL、访问它、将 PDF 文件交给本地磁盘,然后让它将 JPG 写入同一个本地磁盘。经过几次学习经验,我取得了成功。我会把它交给 C:\INPUT.pdf,它会交给我 C:\OUTPUT.jpg。

但是,在将控制台应用程序中的 GhostScriptSharp 代码集成到我的 ASP.NET MVC 项目中,直到我使用 P/invoke 调用 DLL 之后,Ghostscript 会返回 int/error code -100,这是致命的错误(E_Fatal在 GhostScript 源代码中调用)。通过 HTML 表单上传的文件和我在工作控制台应用程序中使用的完全相同的硬编码路径,我得到了相同的结果。

作为参考,抛出异常的行是 GhostScriptSharp.cs 中的 93-97(在CallApi函数中):

显然抛出异常是因为resultis -100

调用 InitAPI 时,实例 ptr 是有效的int(尽管我不知道 GS 的实例是否正确), argsstring[]的有效 GhostScript 选项的长度为 20(是 a )(包括正确转义的路径到我的输入和输出文件)。

长话短说,我做错了什么?错误代码-100似乎是一个包罗万象的东西,因为没有文档说明这里可能出现的问题。

任何帮助都非常感谢,在此先感谢您。

0 投票
3 回答
22781 浏览

c# - 在哪里复制 gsdll32.dll 以使 PDF 到图像转换器在我的 WPF 应用程序中工作?

我的项目给出错误..

*无法在 DLL 'gsdll32.dll' 中找到名为 'gsapi_new_instance' 的入口点。*

尝试使用 Ghost-script Interpreter dll 'gsdll32.dll' 将 .pdf 转换为图像格式时

即使我尝试将这个 dll 复制到所有需要的地方,如许多论坛中所说的那样

Win\System32 或在项目目录中..错误仍然相同..:(

我使用了 Ghost-script 给出的 PDFConvert.cs 类,并在我的转换按钮单击上编写了以下代码:

我的 ConvertPdfToImage 方法是这样的:

我相信这个错误是因为 gsdll32.dll 库的错位造成的,因为相同的代码在 Ghost-Script Interpreter API 提供的示例演示中运行良好。请建议我应该保留 dll-gsdll32.dll 的确切位置。 !!

0 投票
1 回答
2583 浏览

ghostscript - GhostScriptSharp 解析问题

我正在尝试从 PDF 文件创建缩略图,但我需要它为 300 像素 * 300 像素,但无论我做什么,我都无法获得正确大小的图像。它似乎总是很大。

这是我的代码:

有什么方法可以输出 PPI 为 300*300 的图像吗?

干杯,

/r3plica

0 投票
2 回答
946 浏览

vb.net - 使用 gswin32c 从 PS 到 Shell 的 PDF

我正在尝试使用 VB.NET 和 shell 从现有且格式良好的“output.ps”文件生成“c:\output.pdf”到当前目录中的 gswin32c.exe。

但我显然无法正确编写 shell 命令:

从 cmd 窗口中,这些命令会定期生成“output.pdf”

什么是不正确的以及如何让它工作?

0 投票
3 回答
1991 浏览

c# - GhostScript 打印参数

我在尝试使用 Ghostscript 在 Windows 中打印 PDF 文件时遇到很大问题。'in Windows' 参数来自于我正在尝试为这个'-sDEVICE=mswinpr2' 使用 MS Windows 默认驱动程序。我需要所有 Windows 打印机/驱动程序支持。我也不能使用 PDF 到图像然后打印作业类型的解决方案。我也不能使用 gswin64c.exe 文件,我需要在没有任何弹出窗口的情况下完成这项工作(没有任何形式)。我所能做的就是将一些参数发送到 gsdll32.dll 并创建一个打印作业。

我正在使用 C# 包装器 https://github.com/mephraim/ghostscriptsharp/tree/master

我发送以下参数:“-dBATCH -dNOPAUSE -dNOPROMPT -dDEVICEWIDTHPOINTS=612 -dDEVICEHEIGHTPOINTS=792 -dFIXEDMEDIA -dPDFFitPage -sDEVICE=mswinpr2 -dQUIET -sOutputFile=\"%printer%Epson Stylus Pro 4900\" D:\1 .pdf"

并且每次打印机选择对话框不断弹出。我知道参数的顺序很重要......因为我改变了它并且它有不同的结果。

实际问题: 我必须向 GhostScript dll 发送哪些参数才能使用默认的 MS Windows 打印驱动程序打印 PDF 文件。

0 投票
2 回答
7883 浏览

c# - MemoryStream (pdf) 到 Ghostscript 到 MemoryStream (jpg)

我确实看到了“使用 GhostScript 将 PDF 转换为图像。不必创建图像文件”,但这只是(某种程度上)回答了我的一半问题。是否可以使用 GhostScriptSharp(或常规的 GhostScript dll)将 MemoryStream 中的 pdf 转换为 MemoryStream 中的 jpg?我谈到了使用 iTextSharp 动态填写的 pdf 表单,我已经将它定向到 MemoryStream 以保存到数据库或流式传输到 http 响应,如果我真的很想避免保存到文件(以及随后的清理)能够。

我引用的答案中的唯一答案声称必须使用 GhostScript dll 来完成后一部分,但很明显我需要做大量的工作才能弄清楚这意味着什么。有没有人有一个很好的资源可以帮助我完成这个旅程?

0 投票
1 回答
1670 浏览

.net - Dllimport 在控制台应用程序中有效,但在 ASP.NET 网站中无效

我从未使用过 DLL 导入,所以我遇到了一个有趣的问题。

我正在尝试在一个爱好项目中实现 Ghostscript.NET。所以我做了一个叫做 GhostscriptSharp 的项目。这个项目有一个名为 Ghostscript32.cs 的文件,它像这样导入 DLL:

当我添加一个新的控制台测试项目时,引用 GhostscriptSharp 项目并将 gsdll32.dll 放在我的根目录中,然后像这样运行程序,它可以工作:

但是,我需要它才能在 Web 项目中工作。所以我在根目录下添加了gsdll32.dll,并添加了对GhostscriptSharp项目的引用。但是,然后我在这里收到错误:

任何想法如何解决这个问题?

这是我的解决方案文件夹的图像:

在此处输入图像描述

0 投票
3 回答
3674 浏览

.net - .NET 中的 Ghost 脚本 pdf 缩略图

我想在我的网站(ASP.NET)上显示上传的 pdf 文件的缩略图。到目前为止,我已经做了以下事情。

  1. 从这个链接我得到了使用ghostscript的想法如何为PDF文件的某些页面生成缩略图?

您可能会使用其中一种通用 PDF 库: • Ghostscript - C,在 GPL 下可用 • Poppler - C++,在 GPL 下可用 • Adob​​e PDF 库 SDK - 昂贵的 Google 揭示了很多 PDF 到图像的转换器,它们如果上述选项之一不起作用,您也许可以合并。

  1. 然后生成一个pdf缩略图(开源/免费)告诉我去寻找提到的包装器

Matthew Ephraim 为 Ghostscript 发布了一个开源包装器,听起来它可以满足您的需求,并且使用 C#。源代码链接:https ://github.com/mephraim/ghostscriptsharp 博客发布链接:http: //www.mattephraim.com/blog/2009/01/06/a-simple-c-wrapper-for-ghostscript / 可以简单调用GeneratePageThumb方法生成缩略图(或使用GeneratePageThumbs带起始页码和结束页码生成多个单独页面的缩略图,每页为单独的输出文件),默认文件格式为jpeg但您可以通过使用备用 GenerateOutput 方法调用并指定文件格式、页面大小等选项来更改它和许多其他选项...

现在,按照http://mattephraim.com/blog/2009/01/06/a-simple-c-wrapper-for-ghostscript/的说明,我已经在我的 Windows 8 64 位系统上安装了 ghostscript。

现在我已经创建了一个包含上面那个人的测试项目的解决方案,在我自己的项目中我正在调用他项目的一个函数

但我遇到了一个例外:

无法加载 DLL 'gsdll32.dll':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)