Хорошая новость: есть способ запечатлеть ваш PDF полностью.
Плохая новость: это немного затянуто, и PDF не может быть на 100% правильным!
(Это лучше, чем ничего, верно?)
Итак, чтобы все это заработало, вам нужно сделать следующее:
- Загрузите версию NodeJS отсюда и установите ее
- а. Если у вас установлен
git
просто mozilla/pdf.js
из github
следующим образом.
git clone git://github.com/mozilla/pdf.js.git pdfjs
и cd
б) если у вас нет git
вам нужно скачать весь репозиторий кода отсюда: https://github.com/mozilla/pdf.js/archive/master.zip
распакуйте его, а затем откройте command prompt
и cd
в корень папки
- запустить
node make server
На данный момент вы создали веб-сервер, работающий на localhost:8888
который может отображать PDF-файлы с использованием JavaScript
. Вы можете просмотреть пример pdf, перейдя на следующую страницу: http://localhost:8888/web/viewer.html?file=/examples/learning/helloworld.pdf
Далее вам нужно скачать PhantomJS.
- Хватай отсюда
- Распакуйте его куда угодно, а затем из командной строки
cd
в папку bin
- Скопируйте файл
rasterize.js
из папки examples
phantomjs
в папку bin
(я знаю, что он немного грязный, но мы можем разобраться с этим позже, верно?)
- Откройте
rasterize.js
потому что нам нужно что-то изменить.
- Перейдите к строке
45
и измените время с 200
на 5000
. Код должен выглядеть следующим образом: https://gist.github.com/HaykoKoryun/eba33f2011d3d69b773b
- Поместите копию
pdf
файла, который вы хотите записать, в папку с именем test
в корневой папке pdfjs
- Наконец, выполните следующую команду
phantomjs.exe rasterize.js http://localhost:8888/web/viewer.html?file=/test/xxx.pdf test.png 1920px*1080px
Что это за параметры, которые я слышу?
Первый сообщает phantomjs
какой скрипт запускать. Это легко, в нашем случае это модифицированная версия rasterize.js
!
Второй - это URL-адрес для загрузки, который является локальным веб- сервером , на котором выполняется pdfjs
. Обратите внимание, что вам нужно заменить xxx
на имя вашего pdf
файла.
Третий параметр - это имя и формат файла, в который вы хотите сохранить запись.
Наконец, последний параметр - это размер захвата. Вам нужно будет поиграть с размером, чтобы убедиться, что вы захватили всю страницу.