2016-05-17 10 views
2

Ich bin auf der Suche nach einem guten Konverter, um die Office-Dateien und Bilder in PDF konvertieren. Ich möchte die kostenlose Quelle Documents4J ausprobieren. Und haben diesen Code:konvertieren von Office-Dateien in PDF mit documents4J

package documentsForJ; 
import java.io.File; 
import java.util.concurrent.Future; 
import java.util.concurrent.TimeUnit; 
import com.documents4j.api.DocumentType; 
import com.documents4j.api.IConverter; 
import com.documents4j.job.LocalConverter; 

public class App { 
    public static void main(String[] args) { 

     File wordFile = new File("test.doc"), target = new File("test.pdf"); 

     IConverter converter = LocalConverter.builder().baseFolder(new File("G:\\documentsForJ\\target")) 
       .workerPool(20, 25, 2, TimeUnit.SECONDS) 
       .processTimeout(5, TimeUnit.SECONDS).build(); 

     Future<Boolean> conversion = converter.convert(wordFile).as(DocumentType.DOCX).to(target).as(DocumentType.PDF) 
       // .prioritizeWith(1000) // optional 
       .schedule(); 

    } 
} 

Ich habe binden an folgenden Gläsern:

  • documents4j-api-1.0.2.jar documents4j-client-1.0.2.jar
  • documents4j-Client -standalone-1.0.2-shaded.jar
  • documents4j-local-1.0.2.jar
  • documents4j-server-Standalone-1.0.2-shaded.jar
  • documents4j-Test-1.0.2.jar Dok uments4j-Transformator-api-1.0.2.jar
  • documents4j-Transformator-msoffice-base-1.0.2.jar
  • documents4j-Transformator-msoffice-Excel-1.0.2.jar
  • documents4j-Transformator- msoffice-test-1.0.2.jar
  • documents4j-Transformator-msoffice-Wort-1.0.2.jar
  • documents4j-util-Standalone-1.0.2.jar
  • documents4j-util-Transformator-prozess- 1.0.2.jar
  • documents4j-util-ws-1.0.2.jar documents4j-server-1.0.2.jar
  • documents4j-Transformator-1.0.2.jar documents4j-util-all-1.0.2.jar
  • documents4j-util-conversion-1.0.2.jar

If i Führen Sie die Anwendung i das bekommen folgende Fehler:

SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/G:/AdminPrgs/Code/Java/eclipse/workspaceTest/documentsForJ/lib/documents4j-client-standalone-1.0.2-shaded.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/G:/AdminPrgs/Code/Java/eclipse/workspaceTest/documentsForJ/lib/documents4j-server-standalone-1.0.2-shaded.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder] 
16:28:49.030 [main] DEBUG o.z.exec.ProcessExecutor - Executing [cmd, /C, "C:\temp\excel_start1565707660.vbs"] in C:\temp. 
16:28:49.038 [main] DEBUG o.z.exec.ProcessExecutor - Started [email protected] 
16:28:49.074 [[email protected]] DEBUG o.zeroturnaround.exec.WaitForProcess - [email protected] stopped with exit code 3 
16:28:49.081 [main] INFO c.d.c.msoffice.MicrosoftExcelBridge - From-Microsoft-Excel-Converter was started successfully 
16:28:49.085 [main] DEBUG o.z.exec.ProcessExecutor - Executing [cmd, /C, "C:\temp\word_start2143216009.vbs"] in C:\temp. 
16:28:49.086 [main] DEBUG o.z.exec.ProcessExecutor - Started [email protected] 
16:28:49.121 [[email protected]] DEBUG o.zeroturnaround.exec.WaitForProcess - [email protected] stopped with exit code 3 
16:28:49.121 [main] INFO c.d.c.msoffice.MicrosoftWordBridge - From-Microsoft-Word-Converter was started successfully 
16:28:49.132 [main] INFO com.documents4j.job.LocalConverter - The documents4j local converter has started successfully 
fertig! 
16:28:49.145 [pool-1-thread-1] INFO c.d.c.msoffice.MicrosoftExcelBridge - Requested conversion from AbrechnungKFZ-Kosten.xls (application/vnd.ms-excel) to AbrechnungKFZ-Kosten.pdf (application/pdf) 
16:28:49.148 [pool-1-thread-1] DEBUG o.z.exec.ProcessExecutor - Executing [cmd, /C, "C:\temp\excel_convert961528339.vbs G:\AdminPrgs\Code\Java\eclipse\workspaceTest\documentsForJ\AbrechnungKFZ-Kosten.xls G:\AdminPrgs\Code\Java\eclipse\workspaceTest\documentsForJ\AbrechnungKFZ-Kosten.pdf 999"] in C:\temp. 
16:28:49.148 [pool-1-thread-1] DEBUG o.z.exec.ProcessExecutor - Started [email protected] 
16:28:49.188 [[email protected]] DEBUG o.zeroturnaround.exec.WaitForProcess - [email protected] stopped with exit code -4 

die erzeugten VBS C: \ temp \ excel_start1565707660.vbs gibt den folgenden Fehler: enter image description here

Und das ist der Code der generierten vbs:

Ich wäre sehr nett, wenn Sie mir irgendwelche Vorschläge geben könnten, wie man diesen Fehler beheben kann. Vielen Dank im Voraus !

+0

Es scheint, als ob Sie irgendwo in einer Datei Sonderzeichen verwenden könnten. VBS beschwert sich darüber, dass in Ihrem Skript weniger als drei Argumente angegeben sind. Derzeit gibt es einen Fehler, bei dem Leerzeichen in einem beliebigen Dateinamen nicht korrekt maskiert werden und die Konvertierung fehlschlagen. Ähnliches scheint in Ihrem Fall das Problem zu sein. –

+0

Geben Sie den richtigen Pfad zu test.doc, scheint das Skript nicht in der Lage, sie zu finden. Versuchen Sie, es in einen Ordner ohne Leerzeichen zu setzen und verweisen Sie darauf wie 'File wordFile = new File (" C: \\ test \\ test.doc ");' Ein Ordner mit Leerzeichen sollte ebenfalls funktionieren, aber versuchen Sie es zuerst. –

Antwort

0

Dieses Problem wird höchstwahrscheinlich in der neu veröffentlichten Version documents4j 1.0.3 behoben, bei der die Argumente des Konvertierungsskripts ordnungsgemäß entfernt werden. Zuvor wurden keine Argumente maskiert, was zu Verwirrung führen kann, wenn VBScript die von Ihnen beobachteten Skriptargumente verarbeitet.