Asp.net C的PDF或其他“报告查看器”选项#
|
我和我目前的项目绑定了.这是一个工资单应用程序,我正在使用C#开发ASP.net webforms.我的老板说,这个网站的理想功能是点击付款查询日期,打开PDF并显示薪水支票信息.我已经做了几天的研究,试图找到最好的解决方案.到目前为止,我没有运气.我发现了一些不同的东西,比如iTextSharp,但一年的许可证现在太贵了.我也看过基于php的tcpdf.我还研究过CrystalReports和Active Reports.购买许可证也太贵了.我也研究过XML到PDF解决方案,但我找不到任何确定的东西.由于我对软件开发的商业世界很陌生,并且没有高级开发人员可以依赖,所以我几乎已经死了.我知道我们将从基于DOS的应用程序中将薪水下载到CSV文件中,该应用程序执行我们的时钟输入和输出.然后,我将CSV文件导入SQL Server 2012 Express.非常感谢您的想法,因为我不知道从哪里开始!先谢谢你! 解决方法我最近发现的HTML到PDF转换器是 WKHTMLtoPDF它是开源的,并使用WebKit将HTML转换为PDF,因此它符合标准. 您可以如何使用它的一个例子是 using (var pdfStream = new FileStream(dlg.FileName,FileMode.OpenOrCreate))
{
// pass in the HTML you want to appear in the PDF,and the file stream it writes to
Printer.GeneratePdf(htmlStream,pdfStream);
}
其中GeneratePdf定义为 public static void GeneratePdf(Stream html,Stream pdf)
{
Process process;
StreamWriter stdin;
var psi = new ProcessStartInfo();
psi.FileName = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"Lib","wkhtmltopdf.exe");
psi.WorkingDirectory = Path.GetDirectoryName(psi.FileName);
// run the conversion utility
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
psi.Arguments = "-q -n --disable-smart-shrinking - -";
process = Process.Start(psi);
try
{
stdin = process.StandardInput;
stdin.AutoFlush = true;
//stdin.Write(html.ReadToEnd());
stdin.Write(new StreamReader(html).ReadToEnd());
stdin.Dispose();
process.StandardOutput.BaseStream.CopyTo(pdf);
process.StandardOutput.Close();
pdf.Position = 0;
process.WaitForExit(10000);
}
catch (Exception ex)
{
throw ex;
}
finally
{
process.Dispose();
}
}
在您的情况下,您不是将其写入文件流,而是将其作为PDF写入HTTP输出流. 但请注意,此示例更适合将PDF文件写入磁盘,而不是输出流,因此您需要稍微做一些,以使其适合您. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – RedirectToAction不工作
- asp.net-mvc – 在嵌套内容的区域上使用_ViewStart
- asp.net-mvc-3 – ajax – 防止双击提交
- asp.net – 如何使用窗口身份验证获取电子邮件地址
- asp.net – 从通用列表中将ListItem添加到DropDownList
- asp.net-mvc – ASP.NET MVC UpdateModel()方法如何工作?
- 在ASP.net C#中伪造浏览器请求
- 如何测量Live ASP.NET MVC Web应用程序的内存使用情况?
- asp.net-mvc – 如何使用Entity Framework和Membership表初
- asp.net-mvc – 使用AD的ASP.NET MVC表单Auth在本地工作但在
- ASP.NET CSS CSS语法问题中的类与CSSClass的区别
- asp.net-mvc – System.Web.Optimization与Micro
- asp.net 大文件上传 之 改版了的SlickUpload.Htt
- 会话如何在asp.net中工作?
- asp.net – Visual Studio 2013更改现有项目的身
- 这个ASP.NET功能在哪里记录? %= string format
- asp.net-mvc – ASP.NET MVC帐户控制器使用指南?
- asp.net – Visual Studio 2010和Visual Studio
- asp.net-mvc – 什么是防伪令牌盐的使用?
- asp.net-mvc-4 – IIS 7.5上的ASP.NET MVC 4,返回
