首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用默认鬼脚本安装的Ghost4j

不使用默认鬼脚本安装的Ghost4j
EN

Stack Overflow用户
提问于 2017-10-26 06:19:26
回答 1查看 877关注 0票数 4

我使用Ghost4j来呈现PDF,但有时当尝试呈现MS创建的文档时,它会引发以下类型的错误

代码语言:javascript
复制
[main] ERROR org.ghost4j.Ghostscript  - GPL Ghostscript 9.18: Some glyphs of the font TimesNewRoman requires a patented True Type interpreter.

根据这条线的说法,这可能是由于Ubuntu包遗漏了某些字体。因此,我从源代码编译了最新的Ghostscript (9.22)并安装了它,现在它是我使用gs命令时出现的版本,但是Ghost4j似乎仍然在使用旧的9.18版本。

我如何告诉它使用新版本的Ghostscript?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-23 10:33:15

Ghost4j本身并不使用幽灵脚本安装,相反,ghost4j和ghostscript都使用一个名为libgs.so的库。这个库依赖于幽灵脚本,但也附带了一个名为libgs-dev的安装(在Linux上)。我怀疑Ghost4j在某种程度上使用了这个库的左端版本。因此,如果您正在使用最新版本的Ubuntu安装libgs-dev,那么所有当前稳定版本的Linux默认为9.18,我们通过手动构建库并将所需版本与libgs.so文件进行符号链接解决了这个问题。您可以下载编译后的libgs.so 这里(个人dropbox链接) 9.22版本,并在/usr/lib/x86_64-linux-gnu/libgs.so.9.22下保存并运行。

代码语言:javascript
复制
ln  -fs /usr/lib/x86_64-linux-gnu/libgs.so.9.22
        /usr/lib/x86_64-linux-gnu/libgs.so

而且,如果你不像在互联网上信任陌生人一样,你不应该这样做:(建造一般事务人员教程)(gs源代码)。为了确保其他一切都相同,我们使用了Ghost4j 1.0.1和JNA4.1.0

代码语言:javascript
复制
 <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna</artifactId>
        <version>4.1.0</version>
    </dependency>

    <dependency>
        <groupId>org.ghost4j</groupId>
        <artifactId>ghost4j</artifactId>
        <version>1.0.1</version>
    </dependency>

在解决这个问题时,我发现这个端点方法非常有用:

代码语言:javascript
复制
 @RequestMapping(value = "/gs/version", method = GET)
public GhostscriptRevision gsVersion() throws IOException {
    return Ghostscript.getRevision();
}

祝好运。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46947105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档