我在这里遇到了一个复杂的问题。
背景:我正在编辑一个表单引擎项目,该项目根据每个请求的 XML 定义动态创建它的控件,以使用 Aspose.PDF 添加 PDF 生成功能。简而言之,表单引擎作为一组控件,充当填写表单(文本框、电话号码、日期控件等)的基本功能。每个控件及其属性都在 xml 文件中定义并对应于一个 xml架构。现在,当表单完成时,会有一个 formRepeater 控件检索先前填充的页面并格式化数据以在 Web 浏览器中打印。我必须替换它来生成一个 pdf 文件。
我所做的:我添加了一个名为 GeneratePdf 的新抽象方法,所有 FormControls 都必须实现它,并且我为我的控件容器 PreRender 事件中的每个控件和子控件调用此方法。该方法将根据每个控件而有所不同,但这是目前的基本方法
public override void GeneratePdf(Aspose.Pdf.Generator.Pdf file)
{
//Add the control HTML in a new section of the PDF File
var section = file.Sections.Add();
var sb = new StringBuilder();
var writer = new HtmlTextWriter(new StringWriter(sb));
this.RenderControl(writer);
var html = new Aspose.Pdf.Generator.Text(section, sb.ToString());
html.IsHtmlTagSupported = true;
section.Paragraphs.Add(html);
}
我的问题:我使用 Stringbuilder 成功检索了我的控件的 HTML,但是如果控件作为标准 ASP.NET 控件在其中,则子控件的 HTML 不会呈现。为什么?
谢谢,