代码之家  ›  专栏  ›  技术社区  ›  Hirurg103 Tilendor

如何检查PDF文件是否与ruby/rspec有链接?

  •  3
  • Hirurg103 Tilendor  · 技术社区  · 6 年前

    我正在使用 prawnpdf/pdf-inspector 测试在我的Rails应用程序中生成的PDF的内容是否正确。

    我想检查PDF文件是否包含具有特定URL的链接。我看着 yob/pdf-reader 但还没有找到任何与此主题相关的有用信息

    是否可以使用ruby/rspec在pdf中测试URL?

    我想要以下内容:

    expect(urls_in_pdf(pdf)).to include 'https://example.com/users/1'
    
    1 回复  |  直到 5 年前
        1
  •  1
  •   Peter Klogborg    5 年前

    这个 https://github.com/yob/pdf-reader 包含每个称为文本的页面的方法。 做一些类似的事情

        pdf = PDF::Reader.new("tmp/pdf.pdf")
        assert pdf.pages[0].text.include? 'https://example.com/users/1'
    

    假设你要找的是第一页

        2
  •  0
  •   B.G.    6 年前

    自从 pdf-inspector 似乎只返回文本,您可以尝试使用 pdf-reader 直接( PDF检查器 无论如何都要使用它)。

    reader = PDF::Reader.new("somefile.pdf")
    
    reader.pages.each do |page|
      puts page.raw_content # This should also give you the link
    end
    

    不管怎样,我只是快速浏览了一下Github页面。我不确定什么 raw_content 正好返回。但也有一种直接访问PDF对象的低级方法:

    reader  = PDF::Reader.new("somefile.pdf")
    puts reader.objects.inspect
    

    有了它,当然有可能得到URL。