使用api的Ghostscript字体

时间:2010-09-30 12:19:15

标签: api fonts ghostscript

我对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字体/ Adob​​e-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-- 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

2 个答案:

答案 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的灵感。我知道其他人也取得了成功。