Ruby로 PDF를 구문 분석하고 싶습니다.
API를 제공해 주면 만만세, HTML로 공개해 주면 스크래핑 합니다만,,,
아직도 PDF나 CSV가 많기 때문에 오픈이 되기를 기다리네요.
환경
준비하는 것
pdf-reader 라는 gem
gem i pdf-reader
시도하십시오.하고 싶은 일
이용하는 데이터에 관하여
이번에는 구그가 나왔다.
을 샘플로 사용합니다.
아래의 url 부분은 각각 변경하십시오.
할 일
require 'open-uri'
require 'pdf-reader'
url = 'http://vips.eng.niigata-u.ac.jp/WebAccess/PDFAccessibilityQ&A.pdf'
io = open(url)
reader = PDF::Reader.new(io)
이제 reader
에 PDF 데이터가 저장되었습니다.
다양한 데이터를 살펴 보겠습니다.
간단한 문서 데이터의 경우(샘플 1)
reader.info
=> {:CreationDate=>"D:20070228171017+09'00'", :Author=>"渡辺 哲也", :Creator=>"Word 用 Acrobat PDFMaker 7.0", :Producer=>"Acrobat Distiller 7.0 (Windows)", :ModDate=>"D:20070228171023+09'00'", :Company=>"情報処理管理係", :SourceModified=>"D:20070220052243", :Title=>"PDF文書のアクセシビリティ"}
reader.info
를 실행하면이 PDF의 개요를 볼 수 있습니다.
저자는 누구인지, 어떤 소프트웨어로 작성되었는지 등 ...
reader.pages
=> [<PDF::Reader::Page page: 1>, <PDF::Reader::Page page: 2>, <PDF::Reader::Page page: 3>, <PDF::Reader::Page page: 4>, <PDF::Reader::Page page: 5>, <PDF::Reader::Page page: 6>, <PDF::Reader::Page page: 7>, <PDF::Reader::Page page: 8>]
pages
에서 각 페이지를 객체로 조작할 수 있습니다.
reader.pages.first.text
=> "PDF 文書のアクセシビリティ\n\n (省略) タッチアップツールを使って追加します。"
본문에 대해서는, 각 페이지에 text
메소드를 사용해 취득할 수 있습니다.
표 형식 데이터의 경우(샘플 2)
reader.pages.first.text
=> => "✿職業分類表✿厚生労働省 平成24年3月改訂\n\n\n 大 分 類 中 分 類 小 分 類 細 分 類\n A 管理的職業 01 管理的公務員 011 管理的公務員 011-01 議会議員\n 011-02 管理的国家公務員\n\n 011-03 管理的地方公務員\n 02 法人・団体の役員 021 会社役員 021-01 会社役員\n 029 その他の法人・団体の役員 029-01 独立行政法人等の役員\n 029-99 他に分類されない法人・団体の役員\n 03 法人・団体の管理職員 031 会社の管理職員 031-01 会社の管理職員\n 039 その他の法人・団体の管理職員 039-01 独立行政法人等の管理職員\n 039-02 福祉施設管理者\n 039-99 他に分類されない法人・団体の管理職員\n\n 04 その他の管理的職業 049 その他の管理的職業 049-99 その他の管理的職業\n B 専門的・ 05 研究者 051 研究者 051-01 理学研究者\n 技術的職業 ...(省略)"
각 행을 하나로 정리하여 표시되므로 읽기가 어렵습니다.
reader.pages.first.display
✿職業分類表✿厚生労働省 平成24年3月改訂
大 分 類 中 分 類 小 分 類 細 分 類
A 管理的職業 01 管理的公務員 011 管理的公務員 011-01 議会議員
011-02 管理的国家公務員
011-03 管理的地方公務員
(省略)
display
를 이용하면 조금 보기 쉬워집니다만, 이 근처는 각자로 성형할 필요가 있을 것 같습니다.
이미지 등을 포함하는 파일(샘플 3)
생략 하지만 이미지는 표시되지 않고 구조 등도 무너져 버릴 것 같습니다.
퍼스하는데 있어서 제일 난도가 두드리는 것 같은 것은 이 형식이 될 것 같네요.
끝
퍼스 자체는 공개되고 있는 라이브러리를 이용하면 간단하게 할 수 있을 것 같습니다만,
그 데이터가 텍스트 이외의 구조적인 의미를 가지고 있는 경우는, 그것을 읽어내 가공하는 능력이 필요하게 될 것 같습니다.
이 근처를 범용적으로 실시할 수 있는 방법이 있으면 누군가 가르쳐 주세요.
그건 그렇고 ......
Atrae에서는 함께 싸워주는 동료를 전력으로 찾고 있습니다! !
꼭 함께 초절묘한 서비스를 만들어 봅시다!
Reference
이 문제에 관하여(Ruby로 PDF를 구문 분석하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rtoya/items/efac1872ffbcfa7cd905
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
require 'open-uri'
require 'pdf-reader'
url = 'http://vips.eng.niigata-u.ac.jp/WebAccess/PDFAccessibilityQ&A.pdf'
io = open(url)
reader = PDF::Reader.new(io)
reader.info
=> {:CreationDate=>"D:20070228171017+09'00'", :Author=>"渡辺 哲也", :Creator=>"Word 用 Acrobat PDFMaker 7.0", :Producer=>"Acrobat Distiller 7.0 (Windows)", :ModDate=>"D:20070228171023+09'00'", :Company=>"情報処理管理係", :SourceModified=>"D:20070220052243", :Title=>"PDF文書のアクセシビリティ"}
reader.pages
=> [<PDF::Reader::Page page: 1>, <PDF::Reader::Page page: 2>, <PDF::Reader::Page page: 3>, <PDF::Reader::Page page: 4>, <PDF::Reader::Page page: 5>, <PDF::Reader::Page page: 6>, <PDF::Reader::Page page: 7>, <PDF::Reader::Page page: 8>]
reader.pages.first.text
=> "PDF 文書のアクセシビリティ\n\n (省略) タッチアップツールを使って追加します。"
reader.pages.first.text
=> => "✿職業分類表✿厚生労働省 平成24年3月改訂\n\n\n 大 分 類 中 分 類 小 分 類 細 分 類\n A 管理的職業 01 管理的公務員 011 管理的公務員 011-01 議会議員\n 011-02 管理的国家公務員\n\n 011-03 管理的地方公務員\n 02 法人・団体の役員 021 会社役員 021-01 会社役員\n 029 その他の法人・団体の役員 029-01 独立行政法人等の役員\n 029-99 他に分類されない法人・団体の役員\n 03 法人・団体の管理職員 031 会社の管理職員 031-01 会社の管理職員\n 039 その他の法人・団体の管理職員 039-01 独立行政法人等の管理職員\n 039-02 福祉施設管理者\n 039-99 他に分類されない法人・団体の管理職員\n\n 04 その他の管理的職業 049 その他の管理的職業 049-99 その他の管理的職業\n B 専門的・ 05 研究者 051 研究者 051-01 理学研究者\n 技術的職業 ...(省略)"
reader.pages.first.display
✿職業分類表✿厚生労働省 平成24年3月改訂
大 分 類 中 分 類 小 分 類 細 分 類
A 管理的職業 01 管理的公務員 011 管理的公務員 011-01 議会議員
011-02 管理的国家公務員
011-03 管理的地方公務員
(省略)
퍼스 자체는 공개되고 있는 라이브러리를 이용하면 간단하게 할 수 있을 것 같습니다만,
그 데이터가 텍스트 이외의 구조적인 의미를 가지고 있는 경우는, 그것을 읽어내 가공하는 능력이 필요하게 될 것 같습니다.
이 근처를 범용적으로 실시할 수 있는 방법이 있으면 누군가 가르쳐 주세요.
그건 그렇고 ......
Atrae에서는 함께 싸워주는 동료를 전력으로 찾고 있습니다! !
꼭 함께 초절묘한 서비스를 만들어 봅시다!
Reference
이 문제에 관하여(Ruby로 PDF를 구문 분석하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rtoya/items/efac1872ffbcfa7cd905
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Ruby로 PDF를 구문 분석하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rtoya/items/efac1872ffbcfa7cd905텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)