如何生成PDF并加载ASCX asp.net用户控件的内容?

本文关键字:控件 用户 net asp PDF 何生成 加载 ASCX | 更新日期: 2023-09-27 18:14:41

我有一个ASP。. NET用户控件、.ascx和我需要生成一个包含用户控件内容的PDF。这可能吗,如果可以,有人能给我指个方向吗?

谢谢

如何生成PDF并加载ASCX asp.net用户控件的内容?

有很多第三方的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 pdfpdf creation)将其输出为pdf应该不难。如果你的用户控件有更复杂的html标签,那么你基本上需要购买一个html 2 Pdf库。我还没有找到一个可以接受的支持html到pdf的免费库。

你也可以在PDF中建立表格,但在我的经验中,如果不购买一个库,通常很难从html表格转换为PDF表格。您也可以将构建PDF表的代码与用户控件分开编写,但同样很难将该功能组合到其中。