如何使用Ruby确定PDF页面的尺寸?

4

是否有一个好的库可以确定PDF页面的尺寸?

我知道一种方法是使用rghost gem将pdf转换为png,然后再使用image_size gem读取png的尺寸。但我不喜欢这种方法。

1个回答

11

pdf-reader gem 可以实现此功能。

require 'pdf/reader'
require 'bigdecimal'

def pt2mm(pt)
  (pt2in(pt) * BigDecimal.new("25.4")).round(2)
end

def pt2in(pt)
  (pt / BigDecimal.new("72")).round(2)
end

reader = PDF::Reader.new("somefile.pdf")
reader.pages.each do |page|
  bbox   = page.attributes[:MediaBox]
  width  = bbox[2] - bbox[0]
  height = bbox[3] - bbox[1]

  puts "width: #{width}pts #{pt2mm(width).to_s("F")}mm #{pt2in(width).to_s("F")}in"
  puts "height: #{height}pts #{pt2mm(height).to_s("F")}mm #{pt2in(height).to_s("F")}in"
end

1
最好检查一下某些文档包含的CropBox属性,因为它会覆盖MediaBox属性。 - Stefan Schmidt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接