Estoy enviando correos electrónicos que tienen facturas adjuntas como archivos PDF. Ya estoy, en otra parte de la aplicación, creando las facturas en una página .aspx. Me gustaría usar Server.Execute para devolver el HTML de salida y generar un PDF a partir de eso. De lo contrario, tendría que usar una herramienta de informes para "dibujar" la factura en un PDF. Eso suena por muchas razones, una de las más importantes es que tendría que actualizar tanto la página .aspx como el informe para cada cambio menor. Qué hacer ...¿Generar PDF desde ASP.NET desde contenido HTML/CSS sin formato?
Respuesta
No hay forma de generar un PDF desde una cadena HTML directamente dentro de .NET, pero hay varios controles de terceros que funcionan bien. éxito
que he tenido con éste: http://www.html-to-pdf.net y esto: http://www.htmltopdfasp.net
Las preguntas importantes son:
- Qué se representan correctamente en comparación con los 3 principales navegadores: Internet Explorer, FF y Safari/Chrome?
- ¿Se adapta bien a CSS?
- ¿El control tiene su propio motor de renderizado? Si es así, bórrelo. No desea confiar en un motor de renderizado interno: los navegadores tienen un problema bastante difícil para que todo sea perfecto.
- ¿Qué dependencias requiere el control de terceros? Cuanto menos, mejor.
Hay algunos otros, pero se ocupan de las pantallas ActiveX y tal.
El enlace htmltopdfasp no funciona. – prograde
Siempre que pueda asegurarse de utilizar el XHTML adecuado, también puede usar un producto como Alt-Soft's Xml2PDF para convertir XML (XHTML) en PDF mediante XSLT/XSL-FO.
¡Se requiere una curva de aprendizaje para dominar, pero funciona muy bien una vez que la has "conseguido"!
Marc
Licencia estándar: US $ 1,495 – Junto
@Junto: sí - entonces - crear software cuesta dinero - por lo que la herramienta no es solo ** GRATIS ** - sino que ** ES ** una versión de estación de trabajo Xml2Pdf gratis, también –
@marc -s Por supuesto, cuesta dinero, pero tampoco está de más divulgar que se trata de un producto pago y se requiere la licencia estándar para generar archivos PDF a partir de contenido HTML. – Junto
Utilizamos un producto llamado ABCpdf para esto y funciona fantástico.
Esto suena como un trabajo para Prince. Puede tomar HTML y CSS y generar un PDF, que luego puede presentar a sus usuarios. Es compatible con CSS3 mejor que la mayoría de los navegadores web (el personal incluye Håkon Wium Lie, el inventor de CSS).
Consulte el samples, especialmente los de las páginas de Wikipedia, para la hermosa salida que puede generar. También hay un interesante Google Tech Talk con los autores.
Editar: Hay una .NET wrapper disponible.
Este producto se ve bien, pero no está bien diseñado para ser empaquetado con una aplicación .NET. Parece que tienen un .dll que puedes envolver al menos. –
No puedo decir que lo haya intentado, lo he usado con MindTouch Deki, que llama directamente al .exe.Lo que puedo decir es que el resultado es magnífico: es más parecido a LaTeX que a CutePDF de Internet Explorer :) – crb
No cavar el logotipo que insertan en la primera página de cada documento – Levitikon
Dado que se está produciendo la respuesta, puede utilizar una herramienta como Report.NET: http://sourceforge.net/projects/report/
estoy de acuerdo con las respuestas que dicen que no se puede convertir directamente desde la salida a PDF, sin embargo, como se puede "re -llamar "la página y obtener el HTML como una secuencia y convertirlo. Sin embargo, no estoy seguro de qué herramienta desearía usar para hacer esto. En otras palabras, es posible, pero no estoy seguro de que valga la pena. Las libs de creación de PDF, como Informe.NET, a pesar de que obligan a reutilizar un poco de lógica y ninguna convergencia automática, es más fácil.
No he probado este componente, pero he escuchado cosas buenas de los que sí lo han hecho. El modelo se parece más a HTML, pero no estoy seguro de que puede simplemente enviar un ASPX rendida ante él para crear PDF: http://www.websupergoo.com/abcpdf-8.htm
me gustaría ir una ruta diferente. Suponiendo que está usando SQL Server, use SSRS y genere el PDF de esa manera.
Si intentas encontrar algún software html to pdf a través de GOOGLE obtendrás un montón de estas cosas. Hay alrededor de 10 líderes, pero la mayoría usa IE dlls en modo de fondo. Solo dos de ellos usan su propio motor de análisis. Pruebe el componente PDF Duo .NET en su proyecto ASP.NET si desea crear un PDF programáticamente. Es un componente liviano para una generación de facturas PDF en frío, informes, p.
Licencia del sitio: US $ 1170 – Junto
wkhtmltopdf es un exe gratuito y genial para generar pdf desde html. Está escrito en C++. Pero nReco htmltopdf es una biblioteca dotnet envoltura para esta herramienta impresionante. Implementé el uso de esta biblioteca de dotnet y fue tan bueno que lo hace todo por sí solo, solo debe proporcionar html como fuente de datos.
/// <summary>
/// Converts html into PDF using nReco dll and wkhtmltopdf.exe.
/// </summary>
private byte[] ConvertHtmlToPDF()
{
HtmlToPdfConverter nRecohtmltoPdfObj = new HtmlToPdfConverter();
nRecohtmltoPdfObj.Orientation = PageOrientation.Portrait;
nRecohtmltoPdfObj.PageFooterHtml = CreatePDFFooter();
nRecohtmltoPdfObj.CustomWkHtmlArgs = "--margin-top 35 --header-spacing 0 --margin-left 0 --margin-right 0";
return nRecohtmltoPdfObj.GeneratePdf(CreatePDFScript() + ShowHtml() + "</body></html>");
}
La función anterior es un extracto de la publicación del enlace a continuación que lo explica en detalle. HTML to PDF in ASP.Net
La pregunta inicial es sobre la conversión de otra página aspx que contiene una factura a un documento PDF. La factura probablemente está utilizando algunos datos de sesión y el usuario sugiere usar Server.Execute() para obtener el código HTML de la página de factura y luego convertir ese código a PDF. La conversión directa de la URL de la factura no es posible porque se crearía una nueva sesión durante la conversión y se perderían los datos de la sesión.
Esta es una buena técnica para conservar los datos de sesión durante la conversión que se aplica en Convert a HTML Page to PDF in Same Session ASP.NET Demo de la biblioteca EvoPdf. El código completo en C# para obtener la cadena HTML representado por la página de la factura y para convertir esa cadena a PDF es:
// Execute the invoice page and get the HTML string rendered by this page
TextWriter outTextWriter = new StringWriter();
Server.Execute("Invoice.aspx", outTextWriter);
string htmlStringToConvert = outTextWriter.ToString();
// Create a HTML to PDF converter object with default settings
HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();
// Use the current page URL as base URL
string baseUrl = HttpContext.Current.Request.Url.AbsoluteUri;
// Convert the page HTML string to a PDF document in a memory buffer
byte[] outPdfBuffer = htmlToPdfConverter.ConvertHtml(htmlStringToConvert, baseUrl);
// Send the PDF as response to browser
// Set response content type
Response.AddHeader("Content-Type", "application/pdf");
// Instruct the browser to open the PDF file as an attachment or inline
Response.AddHeader("Content-Disposition", String.Format("attachment; filename=Convert_Page_in_Same_Session.pdf; size={0}", outPdfBuffer.Length.ToString()));
// Write the PDF document buffer to HTTP response
Response.BinaryWrite(outPdfBuffer);
// End the HTTP response and stop the current page processing
Response.End();
Una solución mínima posible el uso de Server.Execute() para obtener el código HTML de la página de la factura y convertir ese código a un PDF utilizando winnovative html to pdf api for .net es:
TextWriter outTextWriter = new StringWriter();
Server.Execute("Invoice.aspx", outTextWriter);
HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();
byte[] pdfBytes = htmlToPdfConverter.ConvertHtml(outTextWriter.ToString(),
httpContext.Current.Request.Url.AbsoluteUri);
puede utilizar PDFsharp o iTextSharp para convertir hTML a PDF. PDFSharp no es gratis.
- 1. Generar archivos PDF desde asp.net mvc
- 2. Imprimir PDF desde ASP.Net sin previa vista
- 3. Uso de pdf.js para visualizar pdf desde datos sin formato
- 4. Si es posible generar un archivo PDF desde un UITableView?
- 5. ¿Cómo generar dinámicamente un pdf desde el apéndice de Google?
- 6. Generando PDF desde OpenXml
- 7. ¿Cómo generar programáticamente un PDF desde cualquier documento en OSX?
- 8. Crear shared_ptr desde el puntero sin formato
- 9. Generar PDF desde un conjunto de archivos JPEG
- 10. ¿Cómo puedo generar un índice PDF desde pdfLaTeX?
- 11. Generar PDF desde un archivo html en iPhone
- 12. Generar webservice desde WSDL con formato de documento/literal
- 13. Crear PDF desde CSV en iPhone
- 14. Generando archivos PDF desde la entrada SVG
- 15. Crear PDF imprimible desde html dom
- 16. ¿Generar clave desde cadena?
- 17. Generar ERD desde SQLyog
- 18. generar xml desde xsd
- 19. Generar .jar desde scala
- 20. Generar vCard desde AddressBook.framework
- 21. Generar hash desde UIImage
- 22. Generación PDF desde HTML (componente para .NET)
- 23. Clasificación de contenido desde la URL
- 24. ¿Cómo generar un PDF?
- 25. ¿Cómo puedo hacer Pdf desde UIImage?
- 26. Android PDF reader desde cero
- 27. crear archivo PDF desde android
- 28. ¿Cómo ejecutar MSBuild desde Powershell sin generar el proceso msbuild.exe?
- 29. ¿Hay alguna forma directa de generar pdf desde un archivo de marcado por python?
- 30. ¿Es posible visualizar HTML sin formato desde la base de datos en ASP.NET MVC 3?
posible duplicado de http://stackoverflow.com/questions/564650/convert-html-to-pdf-in-net –