我有一个ASP.NET用户控件,.ascx,我需要生成一个包含用户控件内容的PDF。这是否可能,如果是这样,有人能指出我正确的方向吗?
由于
答案 0 :(得分:2)
有许多第三方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.NET为常规页面请求所做的。
将输出的用户控件的内容写入文件使用:
File.WriteAllText([FILE PATH],stringWriter.ToString());
答案 1 :(得分:0)
只要用户控件仅基于文本,就不难将其作为带有任何pdf创建库的pdf输出(搜索generating pdf
或pdf creation
)。如果你的用户控件有更复杂的html标签,那么你基本上需要购买一个Html 2 Pdf库。我找不到一个支持html到pdf的可接受的免费库。
你也可以用PDF建立表格,但是根据我的经验,从html表格转换为pdf表格是非常困难的,而不需要购买图书馆。您还可以将PDF表格的构建与usercontrol分开编码,但同样很难将该功能组合到其中。