如何解决在R中使用Tumulizer从pdf中提取表格时出现的Java错误
我正在尝试使用
R
中的tabulizer
包从pdf
中提取表。我运行以下行:
table <- extract_tables('https://fm.dk/media/17137/oekonomisk-redegoerelse-august-2019_weba.pdf', pages = 20)
但是,我一直收到此错误:
.jcall(";RJavaTools";,";Ljava/lang/Object;,";InvokeMethod&Quot;, CL,:java.lang.IllegalAccessException:类RJavaTools不能 访问java.util.ArrayList$ITR类的成员(在模块java.base中) 使用修饰符";public";
我可以从pdf
提取元数据,所以我非常确定tabulizer
包的安装不是问题,更多的是Java问题,我经验不是很丰富。
解决方案
好的,我已经弄清楚了,至少在我的机器上是这样。在tabulizer
的GitHub页面上使用this hint从swsoyee到sort-of similar open issue,我一直后退到Java 8。在新的Mbps上,这意味着getting Java from Azul,因为Oracle还没有为该版本发布arm64版本。
我确定there's a more elegant way,但是我不使用Java,所以我在安装zulu-8.jdk
之前安装了trashed all the other Java versions。(我也必须trash the plugin,但是YMMV)。这就成功了:
library(tabulizer)
table <- extract_tables('https://fm.dk/media/17137/oekonomisk-redegoerelse-august-2019_weba.pdf', pages = 20)
table[[1]]
#> [,1] [,2]
#> [1,] "Tabel 1.1" ""
#> [2,] "Centrale skøn vedrørende tilrettelæggelsen af finanspolitikken" ""
#> [3,] "2018" "2019"
#> [4,] "Strukturel saldo, pct. af strukturelt BNP 0,2" "-0,1"
#> [5,] "Faktisk saldo, pct. af BNP 0,6" "1,9"
#> [6,] "ØMU-gæld, pct. af BNP 34,1" "33,7"
#> [7,] "Offentlig forbrugsvækst, pct.1) 0,7" "0,8"
#> [8,] "Ét-årig finanseffekt, pct. af BNP2) -0,2" "-0,1"
#> [9,] "Outputgab, pct.3) 0,1" "0,8"
#> [10,] "Beskæftigelsesgab, pct.3) 0,2" "0,7"
#> [,3]
#> [1,] ""
#> [2,] ""
#> [3,] "2020"
#> [4,] "0,0"
#> [5,] "0,4"
#> [6,] "33,5"
#> [7,] "0,7"
#> [8,] "0,0"
#> [9,] "1,0"
#> [10,] "0,9"
由reprex package(v2.0.1)于2021-12-14创建
相关文章