A gerar ficheiros PDF com JavaScript

estou a tentar converter dados XML em ficheiros PDF a partir de uma página web e esperava poder fazer isto inteiramente dentro do JavaScript. Preciso de ser capaz de desenhar texto, imagens e formas simples. Eu adoraria ser capaz de fazer isso inteiramente no navegador.

Author: Xufox, 2009-04-12

6 answers

Acabei de escrever uma biblioteca chamada jsPDF que gera PDFs usando apenas Javascript. Ainda é muito jovem, e vou adicionar recursos e correcções de erros em breve. Também tem algumas idéias para workarounds em navegadores que não suportam URIs de dados. Está licenciado sob uma licença liberal do MIT.

Deparei-me com esta pergunta antes de começar a escrevê-la e pensei em voltar e dizer-te:

Gerar PDFs em Javascript

Exemplo criar um "Hello World" PDF file.

// Default export is a4 paper, portrait, using milimeters for units
var doc = new jsPDF()

doc.text('Hello world!', 10, 10)
doc.save('a4.pdf')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.5/jspdf.debug.js"></script>
 349
Author: James Hall, 2018-05-28 12:18:46

Outra biblioteca de javascript que vale a pena mencionar é pdfmake .

O suporte do navegador não parece ser tão forte como o jsPDF, nem parece haver uma opção para as formas, mas as opções para a formatação do texto são mais avançadas do que as opções actualmente disponíveis no jsPDF.

 100
Author: mg1075, 2014-05-07 12:13:18

Eu mantenho O PDFKit, que também alimenta o pdfmake (já mencionado aqui). Ele funciona tanto Nodo quanto no navegador, e suporta um monte de coisas que outras bibliotecas não:

  • incorporar tipos de letra sobretidos, com suporte para unicode.
  • muitas coisas avançadas de disposição de texto (colunas, quebra de páginas, quebra de linhas unicode completas, texto básico Rico, etc.).
  • Estou a trabalhar em mais fontes para tipografia avançada (ligaduras OpenType/ AAT, substituição contextual, etc.). Em breve: veja o ramo fontkit se estiver interessado.
  • mais coisas gráficas: gradientes, etc.
  • Construído com ferramentas modernas como o browserify e os fluxos. Utilizável tanto no navegador como no nó.

Check out http://pdfkit.org/ para um tutorial completo para ver por si mesmo o que PDFKit pode fazer. E para um exemplo de que tipos de documentos podem ser produzidos, confira os documentos como um PDF gerado a partir de alguns arquivos de Markdown usando o PDFKit em si: http://pdfkit.org/docs/guide.pdf.

Você também pode experimentá-lo interativamente no navegador aqui: http://pdfkit.org/demo/browser.html.

 46
Author: devongovett, 2015-02-05 03:35:12
Outro projecto interessante é o texlive.js .

Permite-lhe compilar (La) Tex para PDF no navegador.

 7
Author: Kpym, 2016-05-30 13:39:01

Você pode usar este serviço gratuito adicionando um link que cria pdf a partir de qualquer url (por exemplo, http://www.phys.org):

Http://freehtmltopdf.com/?convert=http%3A%2F%2Fwww.phys.org&size=US_Letter&orientation=portrait&framesize=800&language=en

 2
Author: numbtongue, 2015-04-22 01:57:36

Mesmo que você pudesse gerar o PDF na memória em JavaScript, você ainda teria a questão de como transferir esses dados para o usuário. É difícil para JavaScript apenas empurrar um arquivo no usuário.

Para obter o ficheiro para o Utilizador, você gostaria de fazer um envio do servidor para que o navegador faça aparecer a janela de gravação.

Dito isto, não é muito difícil gerar PDFs. Lê a especificação.
 -15
Author: Frank Krueger, 2009-04-12 23:21:16