我正在使用 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”中的命令,它继续运行如果我使用此命令,则在后台有一些东西并且永远不会结束