2013-02-09 2 views
0

Я хочу сохранить html, сгенерированный javascript на веб-сайте.Как загрузить html, сгенерированный javascript как pdf

Когда я запустил javascript, он возвращает мне html ready, с кнопкой, которая ссылается на хромированный принтер, для сохранения в формате pdf. Я хочу сохранить этот html, выделенный как PDF, но я не могу этого сделать.

Я потратил дни на тригг almos все, PDFKit с Nokogiri Parsing, искал хром-принтер API и т. Д., Но ничего не сделал. Кто-нибудь знает, как я могу это сделать?

ответ

0

На основании JavaScript, который вы используете, укажите URL-адрес, который он вызывает, вместе с любыми переменными, которые он добавляет к запросу GET/POST, а затем используйте OpenURI или HTTP-клиент какого-либо типа для запроса этого файла. Передайте это Nokogiri и проанализируйте URL-адрес файла.

Альтернативой является использование одного из драгоценных камней WATIR для управления браузером и доступа к файлу таким образом. Затем вы можете получить HTML-код или загрузить браузер и извлечь его с диска, когда это будет сделано.


я не понял, второе решение вы предложили, вы можете объяснить больше?

Иногда разработчики используют Ajax для извлечения HTML и вставки его в страницу или напрямую манипулируют HTML-страницей страницы с использованием JavaScript.

Вы можете попросить браузер, управляемый Watir, предоставить вам текущий HTML-код, а затем проанализировать его с помощью Nokogiri или другого синтаксического анализа XML, чтобы в тот момент получить данные, которые являются частью HTML DOM. Оттуда вы можете сохранить это на диск и заставить браузер Watir читать его и визуализировать. Затем нужно выяснить, как заставить браузер печатать в PDF или получить снимок экрана, чтобы превратить его в PDF.

+0

Первое решение, предложенное не работает привести ссылку не подъезд в других, отличных от браузера способами, которые посылают запрос на JS, в этом случае, браузера Ватира. Я не понял второе предложенное вами решение, не могли бы вы объяснить больше? –

1

Использование phantomjs и rasterize.js может его преобразовать.

Затем просто запустите команду

phantomjs rasterize.js $URL_OR_PATH $PDF_OUT_FILENAME Letter

Смежные вопросы