如何生成PDF并加载ASCX asp.net用户控件的内容?
本文关键字:控件 用户 net asp PDF 何生成 加载 ASCX | 更新日期: 2023-09-27 18:14:41
我有一个ASP。. NET用户控件、.ascx和我需要生成一个包含用户控件内容的PDF。这可能吗,如果可以,有人能给我指个方向吗?
谢谢
有很多第三方的PDF创建工具。我们在我的工作中使用的一个效果很好的是PdfSharp
至于将用户控件输出为文本,这是您需要做的:
Page page = new Page();
HtmlForm form = new HtmlForm();
[USERCONTROL] uc = (ReportHeaderInfoUC)page.LoadControl("~/UserControls/[NAME OF YOUR USER CONTROL].ascx");
page.Controls.Add(form);
form.Controls.Add(uc);
//call the function on the user control that populates the control and pass in any data needed (if any)
uc.Populate(data);
StringWriter stringWriter = new StringWriter();
this.Server.Execute(page, stringWriter, false);
你在这里所做的基本上是创建一个新的WebForm,将用户控件添加到其中,并让服务器将输出呈现到流,这基本上是ASP。
要将输出的用户控件的内容写入文件,请使用:
文件。WriteAllText([FILE PATH], stringWriter.ToString());
只要用户控件仅基于文本,那么使用任何pdf创建库(搜索generating pdf
或pdf creation
)将其输出为pdf应该不难。如果你的用户控件有更复杂的html标签,那么你基本上需要购买一个html 2 Pdf库。我还没有找到一个可以接受的支持html到pdf的免费库。
你也可以在PDF中建立表格,但在我的经验中,如果不购买一个库,通常很难从html表格转换为PDF表格。您也可以将构建PDF表的代码与用户控件分开编写,但同样很难将该功能组合到其中。