Я изо всех сил пытаюсь правильно прочитать PDF-файлы, содержащие шрифт Helvetica с пакетом pdftools
.
Я пытаюсь извлечь информацию из примерно 1000 записей голосования.В целом, pdftools
работает как задумано.Тем не менее, есть одна или две сотни PDF, где извлеченный текст не читается должным образом.Вместо этого части текста, например первые строки (= заголовок), состоят из некоторых «произвольных» символов.
Насколько я могу судить, единственная разница между теми, которые работают, и теми, которые не работают, является) шрифт (те, которые не работают, содержат Helvetica) и б) способ создания PDF.Кажется, что те PDF, которые работают отлично, были созданы в Excle, в то время как те, которые не работают, были созданы с расширением рендеринга PDF службы отчетов Microsoft 10.0.0.0.
Ниже моего представления, в котором приведены примерыуспешный и неудачный импорт.
Я понимаю, что Helvetica часто вызывает проблемы, потому что часто не устанавливается на компьютерах с Windows.Однако, насколько я могу судить, у меня на компьютере установлена программа Helvetica (хотя я не совсем понимаю результат команды pdf_font
; почему она вставлена в 'false').
Большое спасибо!
library(tidyverse, suppressWarnings())
library(pdftools)
link.ok <- "http://parlament.ba/oLaw/GetOwisDocument/?documentId=103320&data=9A4B80C1CB2A8BA6617949C64776F770&lang=bs"
link.notok <- "http://parlament.ba/oLaw/GetOwisDocument/?documentId=125266&data=BE111A5A0468C6C5A5A926FE35A37965&lang=bs"
link.notok2 <- "http://parlament.ba/oLaw/GetOwisDocument/?documentId=132385&data=9AAAAC17DF6FCD761F951F58799E63ED&lang=bs"
Получить шрифты из трех документов.Те, которые импортированы некорректно, содержат Helvetica.
c(link.ok, link.notok, link.notok2) %>%
set_names() %>%
map(., pdftools::pdf_fonts)
#> $`http://parlament.ba/oLaw/GetOwisDocument/?documentId=103320&data=9A4B80C1CB2A8BA6617949C64776F770&lang=bs`
#> # A tibble: 4 x 4
#> name type embedded file
#> <chr> <chr> <lgl> <chr>
#> 1 ABCDEE+Calibri,Bold truetype TRUE ""
#> 2 ABCDEE+Calibri truetype TRUE ""
#> 3 ABCDEE+Calibri cid_truetype TRUE ""
#> 4 ABCDEE+Calibri,Bold cid_truetype TRUE ""
#>
#> $`http://parlament.ba/oLaw/GetOwisDocument/?documentId=125266&data=BE111A5A0468C6C5A5A926FE35A37965&lang=bs`
#> # A tibble: 4 x 4
#> name type embedded file
#> <chr> <chr> <lgl> <chr>
#> 1 Helvetica-Bold type1 FALSE "C:\\WINDOWS\\Fonts\\Helvetica-Bold~
#> 2 ABCDEE+Arial,B~ cid_truety~ TRUE ""
#> 3 Helvetica type1 FALSE "C:\\WINDOWS\\Fonts\\Helvetica.ttf"
#> 4 ABCDEE+Arial cid_truety~ TRUE ""
#>
#> $`http://parlament.ba/oLaw/GetOwisDocument/?documentId=132385&data=9AAAAC17DF6FCD761F951F58799E63ED&lang=bs`
#> # A tibble: 4 x 4
#> name type embedded file
#> <chr> <chr> <lgl> <chr>
#> 1 Helvetica-Bold type1 FALSE "C:\\WINDOWS\\Fonts\\Helvetica-Bold~
#> 2 ABCDEE+Arial,B~ cid_truety~ TRUE ""
#> 3 Helvetica type1 FALSE "C:\\WINDOWS\\Fonts\\Helvetica.ttf"
#> 4 ABCDEE+Arial cid_truety~ TRUE ""
Получите текст из трех документов.Обратите внимание на разницу в первых символах.
c(link.ok, link.notok, link.notok2) %>%
set_names() %>%
map(., pdftools::pdf_text)
#> $`http://parlament.ba/oLaw/GetOwisDocument/?documentId=103320&data=9A4B80C1CB2A8BA6617949C64776F770&lang=bs`
#> [1] " Rezultati glasanja\r\nSjednica: 41. sjednica Doma naroda Parlamentarne skupštine Bosne i Hercegovine\r\nDatum održavanja: 2014-09-10 12:18\r\nNacin glasanja: otvoreno\r\nRedni broj: Tacka 4\r\nGlasanje o: Prijedlogu zakona o izmjenama i dopunama Zakona o politici direktnih\r\n stranih ulaganja u Bosnu i Hercegovinu (prvo citanje), predlagac: Vijece\r\n ministara BiH, zakon broj: 01,02-02-1-30/14, od 17.7.2014.;\r\nTip glasanje: Prvi krug\r\n Prisutno 13\r\n Ukupno 13\r\n ZA 12\r\n PROTIV 0\r\n SUZDRŽAN 1\r\n Sulejman Tihic Delegat FBiH Nije prisutan\r\n Halid Genjac Delegat FBiH ZA\r\n Nermina Kapetanovic Delegat FBiH ZA\r\n Seudin Hodžic Delegat FBiH Nije prisutan\r\n Mehmed Bradaric Delegat FBiH ZA\r\n Dragan Covic Delegat FBiH ZA\r\n Martin Raguž Delegat FBiH ZA\r\n Stjepan Krešic Delegat FBiH ZA\r\n Krunoslav Vrdoljak Delegat FBiH ZA\r\n Borjana Krišto Delegat FBiH ZA\r\n Ognjen Tadic Delegat RS ZA\r\n Dragutin Rodic Delegat RS ZA\r\n Mladen Ivanic Delegat RS SUZDRŽAN\r\n Krstan Simic Delegat RS ZA\r\n Staša Košarac Delegat RS ZA\r\n ZA PROTIV SUZDRŽAN NIJE PRISUTAN UKUPNO\r\n FBiH 8 0 0 2 10\r\n RS 4 0 1 0 5\r\n UKUPNO 12 0 1 2 15\r\n"
#>
#> $`http://parlament.ba/oLaw/GetOwisDocument/?documentId=125266&data=BE111A5A0468C6C5A5A926FE35A37965&lang=bs`
#> [1] " 20\021\003VMHGQLFD\0033UHGVWDYQLþNRJ\003GRPD\0033DUODPHQWDUQH\003VNXSãWLQH\003%RVQH\003L\003+HUFHJRYLQH\r\n - 24.11.2015. -\r\nRedni broj glasanja: 12\r\nDatum i vrijeme glasanja: 24.11.2015. 21:13\r\n1DþLQ\003JODVDQMD\035 Javno\r\n5HGQL\003EURM\003WDþNH\035 4\r\n 3ULMHGORJ\003]DNRQD\003R\003D]LOX\017\003SUHGODJDþ\035\0039LMHüH\003PLQLVWDUD\003%L+\017\003]DNRQ\003EURM\035\003\023\024\017\023\025\020\r\n7DþND\003GQHYQRJ\003UHGD\035\r\n \023\025\020\024\020\024\025\022\024\030\017\003RG\003\031\021\033\021\025\023\024\030\021\003 GUXJR\003þLWDQMH\r\n Amandman I. poslanika Damira Arnauta\r\nGlasanje o: Amandman II. poslanika Damira Arnauta\r\n Amandman III. poslanika Damira Arnauta\r\nTip glasanja: Prvi krug\r\nPrisutan 37\r\nNije prisutan 5\r\nUkupno 42\r\nZA 26\r\nPROTIV 11\r\nSUZDRŽAN 0\r\n1. Borjana Krišto Federacija BiH Nije prisutan\r\n2. 0ODGHQ\003\003%RVLü\003 Republika Srpska Za\r\n3. âHILN\003\003'åDIHURYLü Federacija BiH Za\r\n4. $VLP\003\0036DUDMOLü\003 Federacija BiH Za\r\n5. 6DIHU\003\003'HPLURYLü\003 Federacija BiH Za\r\n6. $PLU\003\003)D]OLü Federacija BiH Za\r\n7. 1HUPLQD\003\003.DSHWDQRYLü\003 Federacija BiH Za\r\n8. âHPVXGLQ\003\0030HKPHGRYLü\003 Federacija BiH Za\r\n9. +D]LP\0035DQþLü Federacija BiH Za\r\n10. 6DONR\003\0036RNRORYLü\003 Federacija BiH Za\r\n11. 6HQDG\003\003âHSLü\003 Federacija BiH Za\r\n12. 6DGLN\003\003$KPHWRYLü\003 Republika Srpska Za\r\n13. äHOMNR\003.RPãLü Federacija BiH Nije prisutan\r\n14. 'DPLU\003\003%HüLURYLü\003 Federacija BiH Za\r\n15. 0HQVXUD\003%HJDQRYLü\003 Federacija BiH Za\r\n16. Jovan Vukovljak Republika Srpska Protiv\r\n17. 0LURVODY\003\0030LORYDQRYLü\003 Republika Srpska Protiv\r\n18. /D]DU\003\0033URGDQRYLü\003 Republika Srpska Protiv\r\n19. 0LOLFD\003\0030DUNRYLü\003 Republika Srpska Nije prisutan\r\n20. 'XãDQND\003\0030DMNLü\003 Republika Srpska Protiv\r\n21. Staša Košarac Republika Srpska Protiv\r\n"
#> [2] "22. 1LNROD\003âSLULü Republika Srpska Protiv\r\n23. Maja Gasal-Vražalica Federacija BiH Za\r\n24. +DQND\003\0039DM]RYLü\003 Federacija BiH Za\r\n25. Predrag Kožul Federacija BiH Za\r\n26. 0RQLND\003\0037RPLü\003 Federacija BiH Za\r\n27. 1LNROD\003\003/RYULQRYLü\003 Federacija BiH Za\r\n28. Diana Zelenika Federacija BiH Za\r\n29. 1HQDG\003\003/DOLü\003 Republika Srpska Protiv\r\n30. CRUÿR\003\003.UþPDU\003 Republika Srpska Protiv\r\n31. %RULVODY\003\003%RMLü\003 Republika Srpska Nije prisutan\r\n32. $OHNVDQGUD\003\0033DQGXUHYLü\003 Republika Srpska Protiv\r\n33. 0LUVDG\003\003CRQODJLü\003 Federacija BiH Za\r\n34. Damir Arnaut Federacija BiH Za\r\n35. 0LUVDG\003\003,VDNRYLü\003 Federacija BiH Za\r\n36. )HKLP\003\003âNDOMLü\003 Federacija BiH Nije prisutan\r\n37. 0LUVDG\003\0030HãLü\003 Federacija BiH Za\r\n38. 'HQLV\003\003%HüLURYLü\003 Federacija BiH Protiv\r\n39. 6DãD\003\0030DJD]LQRYLü\003 Federacija BiH Za\r\n40. =DLP\003\003%DFNRYLü\003 Federacija BiH Za\r\n41. -DVPLQ\003\003(PULü\003 Federacija BiH Za\r\n42. 0RPþLOR\003\0031RYDNRYLü\003 Republika Srpska Protiv\r\n ZA PROTIV SUZDRŽAN NIJE PRISUTAN UKUPNO\r\nFBIH 24 1 0 3 28\r\nRS 2 10 0 2 14\r\nUKUPNO 26 11 0 5 42\r\n"
#>
#> $`http://parlament.ba/oLaw/GetOwisDocument/?documentId=132385&data=9AAAAC17DF6FCD761F951F58799E63ED&lang=bs`
#> [1] " 25\021\003VMHGQLFD\0033UHGVWDYQLþNRJ\003GRPD\0033DUODPHQWDUQH\003VNXSãWLQH\003%RVQH\003L\003+HUFHJRYLQH\r\n - 16.02.2016. -\r\nRedni broj glasanja: 6\r\nDatum i vrijeme glasanja: 16.02.2016. 16:21\r\n1DþLQ\003JODVDQMD\035 Javno\r\n5HGQL\003EURM\003WDþNH\035 4\r\n Prijedlog zakona o izmjenama i dopunama Zakona o službi u Oružanim\r\n7DþND\003GQHYQRJ\003UHGD\035 VQDJDPD\003%RVQH\003L\003+HUFHJRYLQH\017\003SUHGODJDþ\035\0039LMHüH\003PLQLVWDUD\003%L+\017\003]DNRQ\003EURM\035\003\r\n \023\024\017\023\025\020\023\025\020\024\020\025\031\022\024\030\017\003RG\003\024\032\021\024\025\021\025\023\024\030\021\003 SUYR\003þLWDQMH\r\nTip glasanja: Prvi krug\r\nPrisutan 35\r\nNije prisutan 7\r\nUkupno 42\r\nZA 30\r\nPROTIV 0\r\nSUZDRŽAN 5\r\n1. âHILN\003\003'åDIHURYLü Federacija BiH Za\r\n2. Borjana Krišto Federacija BiH Za\r\n3. 0ODGHQ\003\003%RVLü\003 Republika Srpska Za\r\n4. $PLU\003\003)D]OLü Federacija BiH Za\r\n5. 6DIHU\003\003'HPLURYLü\003 Federacija BiH Za\r\n6. 1HUPLQD\003\003.DSHWDQRYLü\003 Federacija BiH Nije prisutan\r\n7. âHPVXGLQ\003\0030HKPHGRYLü\003 Federacija BiH Nije prisutan\r\n8. +D]LP\0035DQþLü Federacija BiH Nije prisutan\r\n9. $VLP\003\0036DUDMOLü\003 Federacija BiH Za\r\n10. 6DONR\003\0036RNRORYLü\003 Federacija BiH Za\r\n11. 6HQDG\003\003âHSLü\003 Federacija BiH Za\r\n12. 6DGLN\003\003$KPHWRYLü\003 Republika Srpska Za\r\n13. äHOMNR\003.RPãLü Federacija BiH Nije prisutan\r\n14. 'DPLU\003\003%HüLURYLü\003 Federacija BiH Suzdržan\r\n15. 0HQVXUD\003%HJDQRYLü\003 Federacija BiH Suzdržan\r\n16. Jovan Vukovljak Republika Srpska Za\r\n17. 0LURVODY\003\0030LORYDQRYLü\003 Republika Srpska Za\r\n18. /D]DU\003\0033URGDQRYLü\003 Republika Srpska Za\r\n19. 0LOLFD\003\0030DUNRYLü\003 Republika Srpska Za\r\n20. 'XãDQND\003\0030DMNLü\003 Republika Srpska Za\r\n21. Staša Košarac Republika Srpska Za\r\n22. 1LNROD\003âSLULü Republika Srpska Nije prisutan\r\n23. Maja Gasal-Vražalica Federacija BiH Suzdržan\r\n24. +DQND\003\0039DM]RYLü\003 Federacija BiH Suzdržan\r\n"
#> [2] "25. Predrag Kožul Federacija BiH Za\r\n26. 0RQLND\003\0037RPLü\003 Federacija BiH Za\r\n27. 1LNROD\003\003/RYULQRYLü\003 Federacija BiH Za\r\n28. Diana Zelenika Federacija BiH Nije prisutan\r\n29. 1HQDG\003\003/DOLü\003 Republika Srpska Za\r\n30. CRUÿR\003\003.UþPDU\003 Republika Srpska Nije prisutan\r\n31. %RULVODY\003\003%RMLü\003 Republika Srpska Za\r\n32. $OHNVDQGUD\003\0033DQGXUHYLü\003 Republika Srpska Za\r\n33. 0LUVDG\003\003CRQODJLü\003 Federacija BiH Za\r\n34. Damir Arnaut Federacija BiH Za\r\n35. 0LUVDG\003\003,VDNRYLü\003 Federacija BiH Za\r\n36. )HKLP\003\003âNDOMLü\003 Federacija BiH Za\r\n37. 0LUVDG\003\0030HãLü\003 Federacija BiH Za\r\n38. 'HQLV\003\003%HüLURYLü\003 Federacija BiH Suzdržan\r\n39. 6DãD\003\0030DJD]LQRYLü\003 Federacija BiH Za\r\n40. =DLP\003\003%DFNRYLü\003 Federacija BiH Za\r\n41. -DVPLQ\003\003(PULü\003 Federacija BiH Za\r\n42. 0RPþLOR\003\0031RYDNRYLü\003 Republika Srpska Za\r\n ZA PROTIV SUZDRŽAN NIJE PRISUTAN UKUPNO\r\nFBIH 18 0 5 5 28\r\nRS 12 0 0 2 14\r\nUKUPNO 30 0 5 7 42\r\n"
Информация о сеансе:
sessionInfo()
#> R version 3.4.3 (2017-11-30)
#> Platform: x86_64-w64-mingw32/x64 (64-bit)
#> Running under: Windows 10 x64 (build 17763)
#>
#> Matrix products: default
#>
#> locale:
#> [1] LC_COLLATE=English_Austria.1252 LC_CTYPE=English_Austria.1252
#> [3] LC_MONETARY=English_Austria.1252 LC_NUMERIC=C
#> [5] LC_TIME=English_Austria.1252
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] pdftools_2.2 forcats_0.4.0 stringr_1.4.0 dplyr_0.8.0.1
#> [5] purrr_0.3.2 readr_1.3.1 tidyr_0.8.3 tibble_2.1.1
#> [9] ggplot2_3.1.1 tidyverse_1.2.1
#>
#> loaded via a namespace (and not attached):
#> [1] Rcpp_1.0.1 cellranger_1.1.0 pillar_1.3.1 compiler_3.4.3
#> [5] highr_0.8 plyr_1.8.4 tools_3.4.3 digest_0.6.18
#> [9] lubridate_1.7.4 jsonlite_1.6 evaluate_0.13 nlme_3.1-131
#> [13] gtable_0.3.0 lattice_0.20-35 pkgconfig_2.0.2 rlang_0.3.4
#> [17] cli_1.1.0 yaml_2.2.0 haven_2.1.0 xfun_0.6
#> [21] withr_2.1.2 xml2_1.2.0 httr_1.4.0 knitr_1.22
#> [25] askpass_1.1 hms_0.4.2 generics_0.0.2 grid_3.4.3
#> [29] tidyselect_0.2.5 glue_1.3.1 qpdf_1.1 R6_2.4.0
#> [33] fansi_0.4.0 readxl_1.3.1 rmarkdown_1.12 modelr_0.1.4
#> [37] magrittr_1.5 backports_1.1.4 scales_1.0.0 htmltools_0.3.6
#> [41] rvest_0.3.2 assertthat_0.2.1 colorspace_1.4-1 utf8_1.1.4
#> [45] stringi_1.4.3 lazyeval_0.2.2 munsell_0.5.0 broom_0.5.2
#> [49] crayon_1.3.4