无法加载库' gs'与Ghost4J

时间:2015-08-13 19:21:15

标签: java ghostscript ghost4j

我正在尝试使用Ghost4J将PDF转换为PNG。我知道人们之前已经问过这个问题,但不是OS X 10以及最新版本的Ghost4J。

我已按照zippy1978答案中的说明进行操作:PDF to image using Java

我已经关注了Ghost4J page

中的所有内容

我也从这里尝试了两个答案:How can i use ghost4j on OS X 10.9

我已经使用Port安装了Ghostscript并尝试了Richard Koch's website

我继续收到此错误:

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);

1 个答案:

答案 0 :(得分:0)

所以我已经明白了!

我在conversation中找到了答案:

  

我遇到了同样的问题,虽然我安装了macports包   &#34; ghostscript的&#34;已经。设置LD_LIBRARY_PATH有帮助:

     

$ export 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.

How to initialize log4j properly?

的帮助下解决了这个问题
  

对于像我这样的所有maven人:把log4j.properties放进去   的src /主/资源