如何在 R 中使用 Tabulizer 从 pdf 中提取表格时解决 Java 错误

Bjø*_*sen 5 java pdf error-handling r tabulizer

我正在尝试pdf使用tabulizer中的包从 a 中提取表R。我运行以下行:

table <- extract_tables('https://fm.dk/media/17137/oekonomisk-redegoerelse-august-2019_weba.pdf', pages = 20)
Run Code Online (Sandbox Code Playgroud)

但是我不断收到此错误:

.jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, 中的错误:java.lang.IllegalAccessException:类 RJavaTools 无法访问类 java.util.ArrayList$Itr 的成员(在模块 java 中) .base) 带有修饰符“public”

我能够从 中提取元数据pdf,所以我很确定这不是软件包安装的问题tabulizer,而是一个java问题,我对此不是很有经验。

Fre*_*olt 1

好吧,我已经弄清楚了,至少在我的机器上是这样。根据swsoyee对GitHub 页面上类似的开放问题的提示,我一直支持 Java 8。在新的 MBP 上,这意味着从 Azul 获取 Javatabulizer,因为 Oracle 还没有(还没有) ?)为该版本推出了arm64版本。

\n

我确信有一种更优雅的方式,但我不使用 Java,所以我在安装之前丢弃了我安装的所有其他 Java 版本zulu-8.jdk。(我还不得不扔掉这个插件,但是 ymmv)。这就成功了:

\n
library(tabulizer)\ntable <- extract_tables(\'https://fm.dk/media/17137/oekonomisk-redegoerelse-august-2019_weba.pdf\', pages = 20)\ntable[[1]]\n#>       [,1]                                                             [,2]  \n#>  [1,] "Tabel 1.1"                                                      ""    \n#>  [2,] "Centrale sk\xc3\xb8n vedr\xc3\xb8rende tilrettel\xc3\xa6ggelsen af finanspolitikken" ""    \n#>  [3,] "2018"                                                           "2019"\n#>  [4,] "Strukturel saldo, pct. af strukturelt BNP 0,2"                  "-0,1"\n#>  [5,] "Faktisk saldo, pct. af BNP 0,6"                                 "1,9" \n#>  [6,] "\xc3\x98MU-g\xc3\xa6ld, pct. af BNP 34,1"                                     "33,7"\n#>  [7,] "Offentlig forbrugsv\xc3\xa6kst, pct.1) 0,7"                            "0,8" \n#>  [8,] "\xc3\x89t-\xc3\xa5rig finanseffekt, pct. af BNP2) -0,2"                       "-0,1"\n#>  [9,] "Outputgab, pct.3) 0,1"                                          "0,8" \n#> [10,] "Besk\xc3\xa6ftigelsesgab, pct.3) 0,2"                                  "0,7" \n#>       [,3]  \n#>  [1,] ""    \n#>  [2,] ""    \n#>  [3,] "2020"\n#>  [4,] "0,0" \n#>  [5,] "0,4" \n#>  [6,] "33,5"\n#>  [7,] "0,7" \n#>  [8,] "0,0" \n#>  [9,] "1,0" \n#> [10,] "0,9"\n
Run Code Online (Sandbox Code Playgroud)\n

由reprex 包于 2021 年 12 月 14 日创建(v2.0.1)

\n