无法使用 Ghost4J 加载库“gs”

2023-12-28

我正在尝试使用 Ghost4J 将 PDF 转换为 PNG。我知道人们以前曾问过这个问题,但在 OS X 10 和最新版本的 Ghost4J 中却没有。

我已按照 zippy1978 的答案中列出的说明进行操作:使用 Java 将 PDF 转换为图像 https://stackoverflow.com/questions/4886042/pdf-to-image-using-java

我已经关注了从Ghost4J 页面 http://www.ghost4j.org

我也尝试过这里的两个答案:如何在 OS X 10.9 上使用 Ghost4j https://stackoverflow.com/questions/20823756/how-can-i-use-ghost4j-on-os-x-10-9

我已经安装了 GhostscriptPort https://www.macports.org并尝试过理查德·科赫的网站 http://pages.uoregon.edu/koch/.

我继续收到此错误:

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler processing failed; nested exception is java.lang.UnsatisfiedLinkError: Unable to load library 'gs': dlopen(libgs.dylib, 9): image not found] with root cause

java.lang.UnsatisfiedLinkError: Unable to load library 'gs': dlopen(libgs.dylib, 9): image not found
    at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:166)
    at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:239)
    at com.sun.jna.Library$Handler.<init>(Library.java:140)
    at com.sun.jna.Native.loadLibrary(Native.java:393)
    at com.sun.jna.Native.loadLibrary(Native.java:378)
    at org.ghost4j.GhostscriptLibraryLoader.loadLibrary(GhostscriptLibraryLoader.java:39)
    at org.ghost4j.GhostscriptLibrary.<clinit>(GhostscriptLibrary.java:34)
    at org.ghost4j.Ghostscript.initialize(Ghostscript.java:323)
    at org.ghost4j.renderer.SimpleRenderer.run(SimpleRenderer.java:105)
    at org.ghost4j.renderer.AbstractRemoteRenderer.render(AbstractRemoteRenderer.java:86)
    at org.ghost4j.renderer.AbstractRemoteRenderer.render(AbstractRemoteRenderer.java:70)
    at com.xxxx.yyyy.controller.rest.yyyyyController.zzzz(yyyyyController.java:182)

我在这里缺少什么?

我的控制器中崩溃的代码是这样的(我标记了该行):

// imgSrc is the PDF in Base 64 and output file is a File

byte[] imageByte;
BASE64Decoder decoder = new BASE64Decoder();
imageByte = decoder.decodeBuffer(imgSrc);
outputfile = new File("image.pdf");
OutputStream fop = new FileOutputStream(outputfile);
fop.write(imageByte);
fop.flush();
fop.close();
PDFDocument document = new PDFDocument();
document.load(outputfile);
SimpleRenderer renderer = new SimpleRenderer();
renderer.setResolution(300);
List images = renderer.render(document);       //CRASH TAKES PLACE HERE ***
outputfile = new File("image.png");
ImageIO.write((RenderedImage) images.get(0), "png", outputfile);

所以我已经想通了!

我在这找到了答案对话 https://github.com/zippy1978/ghost4j/issues/29:

我有同样的问题,虽然我已经安装了 macports 包 已经是“鬼脚本”了。设置 LD_LIBRARY_PATH 有帮助:

$ 导出 LD_LIBRARY_PATH=/opt/local/lib

这导致出现警告消息:

log4j:WARN No appenders could be found for logger (slideselector.facedata.FaceDataParser).
log4j:WARN Please initialize the log4j system properly.

这是在以下人员的帮助下解决的:如何正确初始化log4j? https://stackoverflow.com/questions/1140358/how-to-initialize-log4j-properly

对于像我这样的所有 Maven 人员:将 log4j.properties 放入 src/主/资源

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 Ghost4J 加载库“gs” 的相关文章

随机推荐