A boa notícia : há uma maneira de capturar seu pdf em sua totalidade.
A má notícia : é um pouco longo e o pdf pode não sair 100% correto!
(É melhor que nada, certo?)
Então, para que tudo isso funcione, você precisará fazer o seguinte:
- Pegue uma versão do NodeJS de aqui e instale-a
-
a . Se você tiver
git
instalado, basta clonar o mozilla/pdf.js
repo de github
, assim como git clone git://github.com/mozilla/pdf.js.git pdfjs
e cd
no diretório
b . se você não tiver git
, precisará baixar o repositório de código inteiro daqui: https://github.com/mozilla/pdf.js/archive/master.zip
descompacte-o e abra command prompt
e cd
na raiz da pasta
- executar
node make server
O que você tem feito até agora é criar um servidor web rodando em localhost:8888
que é capaz de renderizar pdfs usando JavaScript
. Você pode ver um exemplo de pdf indo para a seguinte página: http://localhost:8888/web/viewer.html?file=/examples/learning/helloworld.pdf
Em seguida, você precisará baixar o PhantomJS.
- Pegue em aqui
- Descompacte-o onde desejar e depois no prompt de comando
cd
na pasta bin
- Copie o arquivo
rasterize.js
da pasta examples
de phantomjs
para a pasta bin
(Eu sei que é um pouco sujo, mas podemos resolvê-lo mais tarde, certo?)
- Abra
rasterize.js
porque precisamos alterar algo.
- Vá para a linha
45
e altere a hora de 200
para algo como 5000
por enquanto. O código deve se parecer com: link
- Coloque uma cópia do arquivo
pdf
que você deseja capturar em uma pasta chamada test
na pasta raiz pdfjs
- Por fim, execute o seguinte comando em
phantomjs.exe rasterize.js http://localhost:8888/web/viewer.html?file=/test/xxx.pdf test.png 1920px*1080px
Quais são esses parâmetros que eu ouço você dizer?
O primeiro diz phantomjs
qual script executar. Isso é fácil, no nosso caso é a versão modificada de rasterize.js
!
O segundo é o URL para carregar, que é o servidor local executando pdfjs
. Observe que você precisará substituir o xxx
pelo nome do seu arquivo pdf
.
O terceiro parâmetro é o nome e o formato do arquivo para o qual você salvará a captura.
Finalmente, o último parâmetro é o tamanho da captura. Você precisará brincar com o tamanho para ter certeza de capturar toda a página.