使用Java将RTF字符串转换为HTML字符串

时间:2016-11-03 10:00:38

标签: java apache-poi birt jodconverter

我尝试使用简单的EditorKit选项,但似乎并不支持所有RTF格式。 所以我开始使用Tika,JODConverter或POI。

截至目前,我设法通过使用此功能使其与JODConverter和openOffice一起使用

 OfficeManager officeManager = new DefaultOfficeManagerConfiguration()
    .setPortNumbers(8100, 8101).buildOfficeManager();
    officeManager.start();
    OfficeDocumentConverter converter - new    
OfficeDocumentConverter(officeManger);
        try{
    File tempFile = File.createTempFile("tempRtf", ".rtf");
    BufferedWriter bw = new BufferedWriter(new FileWriter(tempFile));
    bw.write(rtfString);
    bw.close;
    File outputTempFile = File.createTempFile("otuputTepFile", ".html");

    converter.convert(tempFile, outputTempFile);

    return FileUtils.readFileToString(outputTempFile);

这很有效。

我的问题是我实际上已经设置了一台服务器并将其关闭,这需要花费很多时间。 我试着看看我是否可以在第一次运行\报告中启动进程(我在birt报告中将其用作处理程序)然后只是检查进程是否正在运行,如果是这样,使用它进行转换,就是这样,它会节省很多时间我认为在启动和关闭过程中浪费了(我不在乎它会熬夜) 我的问题是,我的JODConverter版本中似乎没有注明here这些类。 经过进一步调查,我发现他们使用的是JODConverter 2.2 API,我使用的是3.0核心-β-4。

对于我的简单需求,JODConverter似乎有点复杂。

所以,如果有人知道如何启动办公室经理一次,然后检查一下我是否喜欢代码样本,当然如果有人得到比JODConverter更好的解决方案,我很高兴听到它。< / p>

编辑:我需要我的处理程序做两件事,1。检查是否有officemanager的实例,并连接到它(我们跳过officeManager.start()) 2.如果实例没有启动,那么生病基本上就是我写的代码样本发送的内容。 这段代码是用BIRT Handler编写的,所以我无法全局创建officeManager并只是共享它,因为每次调用birt引擎时都会运行处理程序类。 也许我可以在Birt本身设置officeManager?然后生病了处理程序中的实例?

0 个答案:

没有答案