2

我对 Ghostscript 有点问题。我正在使用 Ghostscript API gs32dll.dll 在 .NET 中编写应用程序。它适用于许多 pdf 文件,但是有几个有这个小电影可以 dingbat,并且 ghostscript 会抛出一个关于没有那个字体的错误。我知道我必须在 cidfmap 文件中列出该字体,但由于我没有使用 Ghostscript 的实际安装,因此我没有指向该文件的本地路径。我希望这个程序安装在多台计算机上,但我宁愿不在这些计算机上安装完整的 ghostscript。所以,我想知道是否可以将 cidfmap 的副本与 dll 一起放入。我想它可能会先看看它的路径。我什至会对 ghostscript 跳过该字符的转换感到很酷。我对任何想法持开放态度。

关于课程:
我教数学。我们有这些关于 pdf 的笔记指南。每章的每个部分都有两个 pdf,一个有答案,一个没有答案。我正在使用 ghostscript 将 pdf 转换为图像(jpeg)。完成后,用户将能够使用智能板笔突出显示答案所在的区域,并将答案从答案文档图像中剪切并粘贴到空白文档的相同位置。我打算在我完成后把这个送给其他数学老师。我想保持程序自包含,所以我不必向他们解释如何安装 ghostscript 之类的。我只想给他们一个文件夹。

修订 = 900

修订日期 = 20100914

产品 = GPL Ghostscript

版权所有 = 版权所有 (C) 2010 Artifex Software, Inc. 保留所有权利。

GPL Ghostscript 9.00 (2010-09-14)

版权所有 (C) 2010 Artifex Software, Inc. 保留所有权利。

此软件不提供任何担保:有关详细信息,请参阅文件 PUBLIC。

处理第 1 页到第 5 页。

第 1 页

第2页

找不到 CID 字体“ZapfDingbats”。

将 CID 字体 /Adobe-Identity 替换为 /ZapfDingbats,请参阅 doc/Use.htm#CIDFont

替代。

也没有提供替代 CID 字体“Adobe-Identity”。将退出并出现错误。

错误:/未定义在 findresource

操作数栈:

--dict:11/20(L)-- G27 1 --dict:5/5(L)-- --dict:5/5(L)-- ZapfDingbat s-Identity-H --dict:10/ 12(ro)(G)-- --nostringval-- CIDFontObject --dict: 7/7(L)-- --dict:7/7(L)-- Adob​​e-Identity 执行堆栈:%interp_exit。runexec2 --nostringval-- --nostringval-- --nostringval- - 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- 错误 1 ​​%stopped_push 1910 1 3 %oparray_pop 1909 1 3 %oparray_pop 1893 1 3 %oparray_pop --nostringval-- --nostringval-- 3 1 5 --nostringval-- %for_pos_int_continue --nostringval-- --nostringval-- --nostringval-- --nostringval-- %array_continue --nostringval -- false 1 %stopped_push --nostringval-- %loop_continue --nostringval-- --nos triingval-- --nostringval-- --nostringval-- --nostringval-- --nostringval -- %array_continue --nostringval- - --nostringval-- --nostringval-- --n ostringval-- --nostringval-- %loop_continue 字典栈:--dict:1158/1684(ro)(G)-- --dict:1/20( G)-- --dict:82/200(L)-- --dict:82 /200(L)-- --dict:108/127(ro)(G)-- --dict:293/300 (ro)(G)-- --dict:23/30(L)- - --dict:6/8(L)-- --dict:22/40(L)-- --dict:14/15(L)--

当前分配模式是本地的

最后一个操作系统错误:没有这样的文件或目录

GPL Ghostscript 9.00:不可恢复的错误,退出代码 1

4

2 回答 2

1

在 Linux 命令行上,调用

gs -h  

在 Windows 上,调用

gswin32c.exe -h

这应该会显示您的 Ghostscript 实例使用的搜索路径。这可以帮助您确定必须在文件夹结构中放置字体资源的位置。

您还可以使用额外的 CLI 参数来覆盖任何内置搜索路径:

gswin32c.exe ^
   -I"d:/absolute/path/to/dir;../relative/path/to/dir;c:/other dir with spaces" ^
   [...]

请注意,在 Windows 上,Ghostscript 能够使用正斜杠作为路径的目录分隔符。

我相信您可以以某种方式将这种调用 ( -I...) 添加到您的软件中。

于 2010-10-01T09:39:43.190 回答
0

把你的程序分成客户端和服务器部分怎么样?

然后一个服务器可以安装所有的 Ghostscript 和各种字体,访问这个服务器的客户端根本不需要 Ghostscript。

根据您的情况,也可能有助于解决许可问题。

针对已编辑的问题:

可能您可以将 Ghostscript 本地安装到程序目录中的可移植文件夹中:

查看此论坛评论以获取灵感。我知道其他人也成功了。

于 2010-09-30T12:27:34.143 回答