Как проверить, что PDF-файл имеет какую-либо ссылку с Ruby / Rspec? - PullRequest
0 голосов
/ 01 ноября 2018

Я использую prawnpdf / pdf-inspector , чтобы проверить правильность содержимого PDF, созданного в моем приложении Rails.

Я бы хотел проверить, что файл PDF содержит ссылку с определенным URL. Я посмотрел на yob / pdf-reader , но не нашел никакой полезной информации, связанной с этой темой

Можно ли протестировать URL-адреса в PDF с помощью Ruby / RSpec?

Я бы хотел следующее:

expect(urls_in_pdf(pdf)).to include 'https://example.com/users/1'

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

https://github.com/yob/pdf-reader содержит метод для каждой страницы, называемый текстом. Сделать что-то вроде

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

при условии, что вы ищете на первой странице

0 голосов
/ 06 ноября 2018

Поскольку pdf-inspector, по-видимому, возвращает только текст, вы можете попробовать использовать pdf-reader напрямую (pdf-inspector использует его в любом случае).

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...