2015-08-13 2 views
2

Я пытаюсь использовать Ghost4J, чтобы превратить PDF в PNG. Я знаю, что люди задавали это раньше, но не с OS X 10 и с последней версией Ghost4J.Невозможно загрузить библиотеку 'gs' с Ghost4J

Я следовал инструкциям, приведенным в ответ zippy1978 от сюда: PDF to image using Java

Я следовал все от Ghost4J page

Я также попробовал оба ответа здесь: How can i use ghost4j on OS X 10.9

И я установил Ghostscript с Port и попробовал от 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); 

ответ

0

Так что я понял это!

Я нашел ответ в этом conversation:

I had the same problem, although I had installed macports package "ghostscript" already. Setting LD_LIBRARY_PATH helped:

$ 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?

For all maven guys like me: put the log4j.properties into src/main/resources