2008-09-06 10 views
6

Cuando imprime desde Google Docs (utilizando el enlace "imprimir", no File/Print), termina imprimiendo un archivo PDF de formato agradable en lugar de depender del motor de impresión del navegador. Lo mismo es cierto para algunos de los informes en Google Analytics. . . los informes impresos como PDF son hermosos. ¿Cómo lo hacen? No puedo imaginar que utilicen algo como Adobe Acrobat para facilitarlo, pero tal vez lo hagan. He visto algunos costosos convertidores HTML a PDF en línea de vez en cuando, pero nunca lo he cansado. ¿Alguna idea?¿Cómo hace Google esos impresionantes informes PDF en Analytics y cuándo imprime un documento de Google Doc, etc.?

Respuesta

13

Si está buscando específicamente cómo lo hace Google. Si mira la página PDF Properties, usan Prince 6.0 (vea princexml.com)

Hay muchos otros generadores de PDF disponibles. He tenido un gran éxito con PDFlib para trabajos complicados.

alt text

-3

Rendering un PDF es difícil problema, complejo. Sin embargo, generarlos, no lo es. Simplemente invente algunas entidades y genere. Se trata del mismo dominio de problemas que generar HTML para la página web versus mostrarlo (renderizarlo).

-1

Bueno, dudo que sea tan fácil como generar HTML. . . Quiero decir, antes que nada, PDF no es un formato legible para humanos y no es texto plano (como SVG). De hecho, compararía un archivo SVG con un archivo PDF, ya que ambos tienen un control preciso sobre el diseño en una página impresa. Pero SVG es diferente en cuanto a que es XML (y también en que no es compatible por completo en el navegador ... sigue buscando en SVG también). Ahora que lo pienso, SVG probablemente sea mi próxima pregunta.

Sé que Google no usa .NET y dudo que usen Java, por lo que debe haber algunas otras bibliotecas que utilizan para generar los archivos PDF. Más importante aún, ¿cómo crean los PDF sin tener que reescribir todo como un PDF en lugar de hacerlo como HTML? Quiero decir, tiene que haber algún código compartido para cuando generan la vista HTML en oposición a la vista PDF. Ahora que lo pienso, tal vez la vista PDF y la vista HTML estén completamente separadas y solo tengan dos vistas y, por lo tanto, el estilo de desarrollo MVC parece ser el camino a seguir.

1

he tenido éxito con pd4ml. Tiene una biblioteca de etiquetas, por lo que puede convertir cualquier HTML existente en PDF por

<pd4ml:transform> 
<!-- Your HTML is here --> 

<c:import url="/page.html" /> 
</pd4ml:transform> 
3

gran alternativa libre a PrinceXML: wkhtmltopdf. Hay muchas librerías de contenedor para varios idiomas, pero solo he usado las de Ruby. Sin embargo, el producto está a la par con PrinceXML en mi humilde opinión.