Ruby / Poppler PDF Содержание / Указатель - PullRequest
2 голосов
/ 13 декабря 2011

Пытались получить оглавление / индекс для файлов PDF с использованием Ruby и Poppler. Я был бы очень признателен за любые предложения или намеки в правильном направлении, в которых мне удалось получить основные главы, но не подзаголовки в каждой главе. ех

1.Chapter 1
  --Part of Chap1
  -- Part of Chap 1
2.Chapter 2
   -- Part of Chap2 
   -- Part of Chap2

Я могу получить Глава 1 и Глава 2 , но не часть в Chap1 / chap 2 при использовании ruby ​​и poppler. Я мог бы думать об этом неправильно, но из того, что я понял, если бы ребенок существовал для Poppler::IndexIter, я бы предположил, что те же методы, которые использовались для получения Главы 1 и Главы 2, сработали бы и для ребенка, однако это Похоже, не в этом дело. Пытался использовать action.title на дочернем классе, однако, похоже, он равен нулю. Файл PDF, который я сейчас использую, отображается во всех программах чтения PDF с подразделами.

http://ruby -gnome2.sourceforge.jp / hiki.cgi? Poppler% 3A% 3AIndexIter # открыта% 3F

#!/usr/bin/env ruby

require "rubygems"
require "poppler"


if ARGV.size < 1
  puts "usage: #{$0} input.pdf"
  exit(-1)
end

input = ARGV.shift
input_uri = "file://#{File.expand_path(input)}"

doc = Poppler::Document.new(input_uri)
indexer = Poppler::IndexIter.new(doc)
author = doc.n_pages

index = doc.index_iter
pages = doc.n_pages
#puts "  #{doc.metadata}\n"
puts "This is the number of pages  #{pages}\n"


#Prints out  Table of Contents each chater

def walk_index(indexer)
    indexer.each do |i|

    chaps =i.action.title
    puts chaps
    child = i.child

    workk_index(child) if child.nil? == false
    end
end

def work_index(child)
    #puts child
    child.each do |h|
        puts h.action.title 
    end
end

walk_index(indexer)
...