【问题标题】:how to transform a .pdf file to a .csv [closed]如何将 .pdf 文件转换为 .csv [关闭]
【发布时间】:2017-05-01 08:07:31
【问题描述】:

该文件分为大洲及其国家/地区,我希望大洲作为列标题。 我尝试了很多事情,但无法执行该操作。 这是pdf文件的link

【问题讨论】:

  • 不是我的反对意见,但您需要一个库来将 PDF 转换为 csv。

标签: pdf pdf-scraping


【解决方案1】:

如果只是这个文件,手动复制和粘贴数据可能最简单。

否则,您需要一个工具来将 PDF 转换为文本(有一些可用的在线和离线工具可以做到这一点 - 这最好取决于您的操作系统和情况)。然后你可能需要编写一些脚本来重新排列文本并创建你想要的 csv。

【讨论】:

    【解决方案2】:

    这里有一些可以帮助你的想法。
    我使用包tabulizer绑定到 Tabula java 库,可用于从 PDF 文档中以计算方式提取表格”(link)。

    library("tabulizer")
    continents <- c("Africa","Americas","Asia","Australia/Oceania","Europe")    
    
    f <- "Countries_where_English_is_an_official_language.pdf"
    (rawTxt1 <- extract_text(f, page=1, encoding="UTF-8")) 
    
    # Split according to continents   
    (rawTxt2 <- strsplit(rawTxt1,"\r\n \r\n")[[1]])
    
    # For trimming leading and trailing whitespace
    trim <- function (x) gsub("^\\s+|\\s+$", "", x)
    
    # Organize data in a list 
    extrTxt <- vector(length(continents),mode="list")
    cnt <- 1
    for (k in 1:length(rawTxt2)) {
      rowk <- rawTxt2[k]
      spltxt <- trim(strsplit(rowk,"\r\n")[[1]])
      if (spltxt[1] %in% continents) {
        extrTxt[[cnt]] <- spltxt
        cnt <- cnt +1 
      }
    }   
    print(extrTxt)
    

    结果如下:

    [[1]]
     [1] "Africa"       "Botswana"     "Cameroon"     "Ethiopia"     "Eritrea"      "The Gambia"   "Ghana"        "Kenya"       
     [9] "Lesotho"      "Liberia"      "Malawi"       "Mauritius"    "Namibia"      "Nigeria"      "Rwanda"       "Seychelles"  
    [17] "Sierra Leone" "South Africa" "South Sudan"  "Sudan"        "Swaziland"    "Tanzania"     "Uganda"       "Zambia"      
    [25] "Zimbabwe"    
    
    [[2]]
     [1] "Americas"                         "Antigua and Barbuda"              "The Bahamas"                     
     [4] "Barbados"                         "Belize"                           "Canada"                          
     [7] "Dominica"                         "Grenada"                          "Guyana"                          
    [10] "Jamaica"                          "Saint Kitts and Nevis"            "Saint Lucia"                     
    [13] "Saint Vincent and the Grenadines" "Trinidad and Tobago"              "United States"                   
    
    [[3]]
    [1] "Asia"        "India"       "Pakistan"    "Philippines" "Singapore"  
    
    [[4]]
     [1] "Australia/Oceania"              "Australia"                      "Fiji"                          
     [4] "Kiribati"                       "Marshall Islands"               "Federated States of Micronesia"
     [7] "Nauru"                          "New Zealand"                    "Palau"                         
    [10] "Papua New Guinea"               "Samoa"                          "Solomon Islands"               
    [13] "Tonga"                          "Tuvalu"                         "Vanuatu"                       
    
    [[5]]
    [1] "Europe"         "Ireland"        "Malta"          "United Kingdom"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      • 2011-11-26
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多