【问题标题】:How to read text from doc or pdf in JodConverter如何在 JodConverter 中从 doc 或 pdf 中读取文本
【发布时间】:2020-04-06 09:52:54
【问题描述】:

原因:

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“boolean java.io.File.isDirectory()”

LocalOfficeManager officeManager = LocalOfficeManager.install();
try {
  // Start an office process and connect to the started instance (on port 2002).
  officeManager.start();
  File inputFile = new File("storage/emulated/0/COVID-19/111.pdf");
  wordtext = String.valueOf(JodConverter.convert(inputFile));
} catch (OfficeException e) {
  e.printStackTrace();
} finally {
  // Stop the office process
  OfficeUtils.stopQuietly(officeManager);
}

E/AndroidRuntime:致命异常:主进程:handbook_multi_maker.TJ,PID:17976 java.lang.RuntimeException:无法启动活动 ComponentInfo{handbook_multi_maker.TJ/TJ.SecondActivity}:java.lang.NullPointerException:尝试调用android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3107) 处 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3250) 处的空对象引用上的虚拟方法“布尔 java.io.File.isDirectory()” android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1947) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:214) 在 android。 app.ActivityThread.main(ActivityThread.java:7032) 在 java .lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 964)引起:java.lang.NullPointerException:尝试在org.jodconverter.local.office.LocalOfficeUtils.validateOfficeHome(LocalOfficeUtils.java: 339) 在 org.jodconverter.local.office.LocalOfficeManager$Builder.build(LocalOfficeManager.java:169) 在 org.jodconverter.local.office.LocalOfficeManager.install(LocalOfficeManager.java:78) 在 TJ.SecondActivity.initWebView(SecondActivity .java:132) 在 TJ.SecondActivity.onCreate(SecondActivity.java:104) 在 android.app.Activity.performCreate(Activity.java:7327) 在 android.app.Activity.performCreate(Activity.java:7318) 在 android .app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3087) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3250) 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 在 android .app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1947) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android。 os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7032) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os。 RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)

【问题讨论】:

    标签: java android mobile apache-poi core


    【解决方案1】:

    您收到此错误是因为 JODConverter 的默认行为是自动检测您将使用的 Office(LibreOffice 或 Apache OpenOffice)安装。在您的特定情况下,找不到办公室主目录(因此为空)。

    因此,如果您的办公室安装在自定义目录中,您可以使用officeHome 属性。

    这是您的更新代码:

    OfficeManager officeManager =
        LocalOfficeManager.builder()
            .officeHome("Path to your office home")
            .install()
            .build();
    try {
      // Start an office process and connect to the started instance (on port 2002).
      officeManager.start();
      File inputFile = new File("storage/emulated/0/COVID-19/111.pdf");
      wordtext = String.valueOf(JodConverter.convert(inputFile));
    } catch (OfficeException e) {
      e.printStackTrace();
    } finally {
      // Stop the office process
      OfficeUtils.stopQuietly(officeManager);
    }
    

    【讨论】:

    • 您能否详细说明一下,因为我无法找到任何单词转换的解决方案,并且在使用 JODConverter 时不断收到此错误...
    猜你喜欢
    • 2014-04-25
    • 2021-08-04
    • 2012-06-16
    • 1970-01-01
    • 2023-03-25
    • 2019-12-29
    • 1970-01-01
    • 2013-12-29
    • 2020-06-22
    相关资源
    最近更新 更多