我对Ghostscript有点问题。我正在.NET中编写一个使用Ghostscript API gs32dll.dll的应用程序。它适用于许多pdf,但有一些有这个小电影可以dingbat,ghostscript抛出一个关于没有该字体的错误。我知道我必须在cidfmap文件中列出该字体,但由于我没有使用ghostscript的实际安装,因此我没有指向该文件的本地路径。我希望这个程序安装在许多计算机上,但我宁愿不在这些计算机上安装完整的ghostscript。所以,我想知道是否可以将cidfmap的副本放入dll中。我认为它可能首先在它的路径上看。我甚至可以通过ghostscript跳过该角色的转换而变得很酷。我对任何想法持开放态度。
关于该计划:
我教数学。我们在pdf上有这些笔记指南。每章的每个部分都有两个pdf,一个有一个,一个没有答案。我正在使用ghostscript将pdf转换为图像(jpegs)。一旦完成,用户将能够使用智能板笔突出显示答案的区域,并且答案将从答案文档图像中剪切并粘贴在空白文档的相同位置。我计划在完成后将其发给其他数学老师。我想保持程序自包含,所以我不必向他们解释如何安装ghostscript和诸如此类的东西。我只想给他们一个文件夹。
修订版= 900
RevisionDate = 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) - Adobe-Identity 执行堆栈: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval- - 2%stopped_push --nostringval-- --nostringval-- --nostringval-- fa lse 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 tringval---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) - - :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
答案 0 :(得分:1)
在Linux commanline上,调用
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...
)添加到你的软件中。
答案 1 :(得分:0)
如何在客户端和服务器部分中分离程序?
然后服务器可以安装所有Ghostscript和各种字体,而访问该服务器的客户根本不需要Ghostscript。
根据您的具体情况,也可以帮助解决许可问题。
回应编辑过的问题:
可能你可以在本地安装Ghostscript到程序目录中的便携式文件夹中:
看看这个forum comment的灵感。我知道其他人也取得了成功。