2012-01-31 20 views
11

Tengo una visualización generada por d3 (una biblioteca de visualización de JavaScript similar a Protovis o Raphael, que dibuja cosas usando elementos SVG). El vis es interactivo, por lo que el usuario puede interactuar con él y editarlo. Una vez que el usuario esté satisfecho con su visualización, me gustaría que el usuario pueda exportar esta visualización en formato PDF. He intentado varias bibliotecas HTML a PDF y no funcionan con elementos SVG.Exportar elementos SVG a PDF?

Está bien si la solución es del lado del cliente o del servidor. Estoy usando el lado del servidor PHP, pero las implementaciones de Python o Java también pueden funcionar.

Compatibilidad con el navegador: idealmente sería compatible con todos los navegadores modernos, pero mínimamente me gustaría admitir las últimas versiones de Firefox y navegadores webkit.

+0

** jsPDF ** se puede utilizar para agregar SVG a un archivo PDF. Ver esta conversación: http://stackoverflow.com/questions/5913338/embedding-svg-in-pdf-exporting-svg-to-pdf-using-js – stackex

Respuesta

6

No conozco ninguna biblioteca PDF sólida en el lado del cliente.

Una manera rápida sería enviar el contenido svg a un servidor, y usar algo como batik para java para convertir svg a pdf y luego enviar la respuesta al cliente nuevamente.

Aquí hay un relacionado SO for the converstion.

+2

Highcharts (usando gráficos svg en el lado del cliente) utiliza Batik para generar pdf/jpg de esta manera y funciona muy bien. (http://www.highcharts.com/documentation/how-to-use#exporting). – eolsson

+0

Wow. estupendo. Sabía sobre Highcharts, pero no sabía que esta integrado. Gracias por el enlace! –

+0

Acabo de obtener Batik trabajando, gracias por el enlace a esa discusión. – raviparikh

5

También hay wkhtml2pdf, que puede representar cualquier cosa que pueda hacer el webkit como PDF. Si desea renderizar una combinación de SVG y HTML, o si desea ejecutar JavaScript antes de tomar la instantánea de PDF, es genial para eso.

1

PhantomJS también puede rasterizar url/HTML a PDF. Mismo backend (QTWebKit) con wkhtml2pdf.

Cuestiones relacionadas