1

我正在使用 OO UNO 创建 ODT 文件...

无论在创作中我尝试使用 pdf 还是尝试转换后者,我都会遇到相同的错误:

   Connected to a running office ...
com.sun.star.task.ErrorCodeIOException: 
    at com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(Job.java:173)
    at com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:139)
    at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:334)
    at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:303)
    at com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:87)
    at com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:636)
    at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:146)
    at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:128)
    at com.sun.proxy.$Proxy8.storeToURL(Unknown Source)
    at cards_certidao.cardmenuitem43.imprimirNegativa(cardmenuitem43.java:465)
    at cards_certidao.cardmenuitem43$2.actionPerformed(cardmenuitem43.java:169)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

转换代码:

String loadUrl="file:///" + file.getPath(); 
    String storeUrl="file:///" + "F:\\GeradorCertidoesNegativas\\feitas\\" + "["+ nomeDataArquivo + "]" + cboxTipos.getSelectedItem().toString() +"_" + protocolo +"_"
            + nomedopc + "_" + nomeDataArquivo2 + ".pdf"; 

    try { 




        XComponentContext xContext = BootstrapSocketConnector.bootstrap(oooExeFolder); 
        XMultiComponentFactory xMultiComponentFactory = xContext.getServiceManager(); 
        XComponentLoader xcomponentloader = (XComponentLoader) UnoRuntime.queryInterface(XComponentLoader.class,xMultiComponentFactory.createInstanceWithContext("com.sun.star.frame.Desktop", xContext)); 

        Object objectDocumentToStore = xcomponentloader.loadComponentFromURL(loadUrl, "_blank", 0, new PropertyValue[0]); 




        PropertyValue pdfFilterData[] = new PropertyValue[2];
        pdfFilterData[0] = new PropertyValue();
        pdfFilterData[0].Name = "SelectPdfVersion";
        pdfFilterData[0].Value = new Integer(1);
        pdfFilterData[1] = new PropertyValue();
        pdfFilterData[1].Name = "UseTaggedPDF";
        pdfFilterData[1].Value = new Boolean("true"); // or false

        PropertyValue[] conversionProperties = new PropertyValue[2];
        conversionProperties[0] = new PropertyValue();
        conversionProperties[0].Name = "FilterName";
        conversionProperties[0].Value = "writer_pdf_Export";
        conversionProperties[1] = new PropertyValue();
        conversionProperties[1].Name = "FilterData";
        conversionProperties[1].Value = pdfFilterData;


        XStorable xstorable = (XStorable) UnoRuntime.queryInterface(XStorable.class,objectDocumentToStore); 
        xstorable.storeToURL(storeUrl,conversionProperties); 
    } 
    catch (java.lang.Exception e) { 

有没有更容易从 ODT 运行和生成 PDF 的东西?JODConverter 对我不起作用,ODFDom 也...

唯一的一个是在 OpenOffice 文件夹中使用 Python,但我不知道如何让 java 运行文件夹“C:/OOffice/Program/python Converter.py a.odt b.pdf”中的命令,它继续运行如果我使用此命令,则在后台有一些东西并且永远不会结束

4

0 回答 0