Esta é uma questão crucial para muitos:
Pesquisando na web, encontrei várias ferramentas de linha de comando que permitem converter um documento HTML em um documento PDF, porém todas elas parecem usar seu próprio mecanismo de renderização bastante incompleto, resultando em baixa qualidade
Como você pode imprimir a saída renderizada de um navegador moderno em PDF (e/ou SVG), mantendo o máximo possível de gráficos vetoriais?
Existe uma solução chamada:webkit-pdf(que renderiza tudo em gráficos bitmap)
Estou à procura deopções,alternativas,sugestõestalvez até um driver de impressora ou serviços da web?
Atualização: Até agora encontrei o seguinte
Ligações:
- Imprimir imagens de fundo por meio de folhas de estilo
- converter página da web(saída de imagem)
- pdfmyurl(nada mal; coloca um pequeno banner dentro; )
Obrigado
Responder1
A saída renderizada é, por definição, uma imagem bitmap.
Os objetos vetoriais a partir dos quais a imagem bitmap foi construída não são acessíveis a partir dessa imagem renderizada.
Você teria que retornar ao HTML e CSS originais (etc) e usar esse material original para produzir uma nova representação baseada em vetor usando uma nova implementação paralela dos algoritmos de layout que foram usados para produzir o bitmap.
A função “Imprimir como PDF” do Chrome parece preservar a natureza vetorial das fontes e algumas outras partes da imagem final – você pode ampliar indefinidamente, como mostrado abaixo, sem a pixelização óbvia obtida em imagens bitmap em PDFs.
Responder2
Você pode quererCriador de PDF(driver de impressora), é umprojeto de código abertohospedado emsourceforge.net.
Acabei de imprimir uma página HTML comVML(MSDN)gráfico vetorialincorporado do navegador IE, umSVGgráfico do navegador Firefox para o PDFCreator, e o PDFCreator retém esses dados vetoriais.
Se você não se importa com a diferença de resultados renderizados entre a tela e o dispositivo de impressora (como você mencionou no comentário sobre omeios de comunicaçãoatributo deestilotag), então PDFCreator é uma resposta.
Amostras
Saída renderizada original do navegador para o dispositivo de tela (logotipo SVG exibido no Firefox 15.0.1)
Imprimir na impressora PDFCreator (renderizado para o dispositivo de impressora)
Visualize PDF em nível de zoom 100%
Visualize PDF com nível de zoom de 150% (zoom sem perdas)
Mais amostras baseadas no gráfico vetorial VML
sim, é apenas texto girado, mas é um gráfico vetorial VML
Código HTML do gráfico vetorial VML
<html xmlns:v='urn:schemas-microsoft-com:vml'>
<head>
<style>v\: * { behavior:url(#default#VML); display:inline-block }</style>
</head>
<body>
<v:line from="0,100" to="200,0" style="float:left">
<v:path textpathok="True"/>
<v:textpath on="True" string="SuperUser.com"/>
</v:line>
<h1>Q479701</h1>
<p>
PDFCreator retains vector graph
</p>
</body>
</html>