Estoy usando jQuery/FLOT para dibujar un gráfico, me gustaría que el usuario pueda descargar una versión en PDF del gráfico. Estoy escribiendo el PDF usando ColdFusion. Después de crear el gráfico, entonces envío el html del gráfico div, vía ajax a un script CF que usa cfdocument para escribir el pdf. El problema es que en el PDF, solo muestra el eje y las etiquetas, no los datos del gráfico real. ¿Alguien sabe de una forma de obtener la imagen real que se crea dinámicamente en el lienzo?datos FLOT como imagen para escribir en PDF
Respuesta
no creo que esto ha sido implementado en flot todavía ver http://code.google.com/p/flot/issues/detail?id=175
Gracias por ese enlace. Voy a recurrir a cfchart y gráficos web XML archivo – Kelly
Salida CutyCapt (http://cutycapt.sourceforge.net/), parece que funciona con Flot.
También puede tomar una instantánea de su canvas
usando toDataURL()
y suplente en un elemento img
, que el convertidor de PDF debe ser capaz de manejar:
var canvas = $("canvas.base")[0];
var tmpimg = canvas.toDataURL("image/png");
//console.log(tmpimg);
$("body").append('<img src="'+tmpimg+'"/>');
Tenga en cuenta que la imagen producida es simplemente la canvas
contenidos (es decir, el gráfico en sí) y no incluye los ejes o la leyenda. Puede que tenga que hacer una sustitución/alineación complicada de la imagen en el marcador de posición de flot, pero le proporciona una imagen utilizable para comenzar.
Esto es solo un ligero repaso de la respuesta aceptada al this question y pensé que alguien aquí podría encontrarlo útil.
Puede representar el gráfico en el servidor con un navegador sin cabeza como phantomJS (motor WebKit).
Solo necesita una secuencia de comandos que toma una URL y representa la salida como una cadena codificada en Base64 para la secuencia de la consola o escribe una imagen.
Por lo que sé, es la única forma de hacerlo.
Aquí hay un guión para PhantomJS que da salida a una página web determinada como base64 imagen cuerdas:
var page = require('webpage').create();
var system = require('system');
var pageUrl = system.args[1];
page.viewportSize = { width: 1280, height: 720 };
page.open(pageUrl , function() {
console.log(page.renderBase64('PNG'));
phantom.exit();
});
Esta es la forma más sólida para lograr una imagen o PDF de un gráfico Flot. Las secuencias de comandos htmltocanvas y canvastoimage son muy limitadas. PhantomJS hace que el HTML incluya un lienzo como lo haría un navegador web real. Esta solución probablemente funcione mejor si configura su propio servicio web para html-to-image/pdf y crea una página especial compatible con la impresión para cada página que desea convertir a imagen o PDF. – Ryan
- 1. Datos externos para trazar con jQuery Flot
- 2. Renderizar marco de flash (SWF) como imagen (PDF, PNG, JPG)
- 3. Mostrar PDF como formulario HTML
- 4. Convertir imagen a PDF en Android
- 5. Crear imagen en miniatura para PDF en Java
- 6. Usando Pisa para escribir un pdf en el disco
- 7. Degradados en Flot
- 8. Imagen PDF en documento PDF usando ReportLab (Python)
- 9. RDLC Imagen incrustada distorsionada en PDF
- 10. Añadir imagen en pdf con gambas
- 11. PDF para crear una imagen en el Nodo JS
- 12. conversión de PDF a imagen
- 13. Gráfico logarítmico en FLOT
- 14. Es imposible acceder al archivo PDF como datos binarios
- 15. WPF imagen deslizar para cambiar la imagen como en iOS
- 16. Escribir texto en la imagen en Java
- 17. Escribir texto transparente en la imagen
- 18. Flot Data Labels
- 19. Como llegar Ghostscript para utilizar fuentes incrustadas en PDF
- 20. ¿Cómo exportar una página PDF como una imagen usando la biblioteca PDFsharp .NET?
- 21. Escribir flujo de PDF en el flujo de respuesta
- 22. MATLAB - escribir imagen en un archivo eps
- 23. Escribir/dibujar sobre un documento de plantilla PDF en PHP
- 24. R: trama con pdf como fondo
- 25. Etiqueta de eje en Flot
- 26. Guardar Open XML como PDF
- 27. iPhone - ver PDF como en iBooks
- 28. Extraer imagen de PDF con/CCITTFaxDecode filter
- 29. ¿Cómo escribir datos en plist?
- 30. ActionScript 3 ¿Especificación como PDF?
Están añadiendo soporte para que a través del plug-in de la lona de texto en la próxima versión (0.8). Ya puede usar la versión beta: http://www.flotcharts.org/blog/2013/03/06/announcing-flot-08-beta/ Una vez implementado esto, necesitará acceder directamente al elemento del lienzo de la trama y obtenerlo como una imagen, suba la imagen al servidor y agréguela a su pdf. – Hoffmann
Puede verificar esta respuesta en: http://stackoverflow.com/a/30811190/1953178 –