如何检查PDF文件是否与Ruby/Rspec有链接?
我用它来测试Rails应用程序中生成的PDF的内容是否正确 我想检查PDF文件是否包含带有特定URL的链接。我查看了,但没有找到任何与此主题相关的有用信息 可以用Ruby/RSpec测试PDF中的URL吗 我希望:如何检查PDF文件是否与Ruby/Rspec有链接?,ruby,pdf,rspec,pdf-generation,Ruby,Pdf,Rspec,Pdf Generation,我用它来测试Rails应用程序中生成的PDF的内容是否正确 我想检查PDF文件是否包含带有特定URL的链接。我查看了,但没有找到任何与此主题相关的有用信息 可以用Ruby/RSpec测试PDF中的URL吗 我希望: expect(urls_in_pdf(pdf)).to include 'https://example.com/users/1' 由于pdf inspector似乎只返回文本,因此您可以尝试直接使用(pdf inspector无论如何都会使用它) 无论如何,我只是快速浏览了一下g
expect(urls_in_pdf(pdf)).to include 'https://example.com/users/1'
由于
pdf inspector
似乎只返回文本,因此您可以尝试直接使用(pdf inspector
无论如何都会使用它)
无论如何,我只是快速浏览了一下github页面。我不确定原始内容
到底返回了什么。但也有一种低级方法可以直接访问pdf的对象:
reader = PDF::Reader.new("somefile.pdf")
puts reader.objects.inspect
有了它,当然可以获得url。包含一个名为text的每个页面的方法。
做点像
pdf = PDF::Reader.new("tmp/pdf.pdf")
assert pdf.pages[0].text.include? 'https://example.com/users/1'
假设你要找的是第一页你到底面临什么问题?由于您使用的是
pdf inspector
您拥有pdf的全部文本,对吗?@DoktorOSwaldo我想检查pdf中包含的链接是否具有正确的HREFyeah,那么您不应该只搜索文本中的
标记吗?@DoktorOSwaldo pdf inspector和pdf reader无法从pdf内容中读取href。如果PDF包含类似于
PDF的链接,则PDF阅读器仅返回解析文本中的URL
pdf = PDF::Reader.new("tmp/pdf.pdf")
assert pdf.pages[0].text.include? 'https://example.com/users/1'