Skip to content

Instantly share code, notes, and snippets.

@kirushik
Created August 27, 2010 13:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kirushik/553326 to your computer and use it in GitHub Desktop.
Save kirushik/553326 to your computer and use it in GitHub Desktop.
Работа с pdf из Руби
require 'rubygems'
require 'pdf/toolkit' # Для работы требует pdftk и xpdf - в debain они доступны из пакетов
my_pdf = PDF::Toolkit.open("DrakonDescription.pdf")
text = my_pdf.to_text
text.each_line do |line|
puts line
end
# Выводит текстовое содержимое файла построчно. Русский переваривает нормально.
# Много мусора в выводе - номера страниц, внезапные буллиты и так далее - надо внимательно чистить и точно знать, что ожидается в тексте...
# UPD.
# Второй вариант - лучше обрабатывает русский и таблицы, но больше внешних зависимостей - см. http://documentcloud.github.com/docsplit/
require 'docsplit'
system("wget http://www.council.gov.ru/files/download/20100720_Plan_II_half.pdf")# Это работает под Debian Linux.
# Можно пользоваться библиотекой 'open-uri' для "открытия" удалённых файлов - и вручную сохранить файл на диске: http://ruby-doc.org/stdlib/libdoc/open-uri/rdoc/index.html
Docsplit.extract_text('20100720_Plan_II_half.pdf',:ocr => false,:output => '.') # Сохраним текстовое содержимое файла в этой же папке в файл "20100720_Plan_II_half.txt"
File.open('20100720_Plan_II_half.txt').each_line do |line| # прочитаем файл с результатом и выведем на экран. Содержимое ещё чистить и чистить.
puts line
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment