【问题标题】:String manipulation/extract a substring & PDF file produced from a HTML file using iTextSharp, a .NET PDF library for creating the PDF file字符串操作/提取使用 iTextSharp 从 HTML 文件生成的子字符串和 PDF 文件,iTextSharp 是一个用于创建 PDF 文件的 .NET PDF 库
【发布时间】:2016-11-15 22:10:09
【问题描述】:

我在使用 iTextSharp 和字符串操作/提取包含“[number]”的子字符串并生成 PDF 文件时遇到问题。我之前的问题发布在这里: String manipulation & PDF output file

我正在使用这个函数来提取包含“[..]”的子字符串

<script>
</script>

<script>
function extract() {
  var str = "van4[15]";
  return str.substring(0, str.lastIndexOf("["));
}
document.getElementById("demo").innerHTML = extract(); </script>

它是一个:ASP.Net MVC 网页。该视图有一个带有 Location 、 RoomName.... 的网格和一个用于 PDF 打印的复选框。网格上的记录/数据来自 SQL db。此位置字段数据包含末尾“[编号]”的几条记录。如果用户在单击“打印为 PDF”按钮后选中一条记录的复选框,则应生成 PDF 文件。

我正在使用string contents = System.IO.File.ReadAllText(HTMLFilePath) 读取文件位置,房间名称。它是这个 Html 文件的一部分。

打印按钮后面的代码以:

public ActionResult ReportsPDF(PrintFormReportModel Obj) { string HTMLFilePath = Server.MapPath("~/Views/Reports/RoomSignReport.htm");

这个文件 RoomSignReport.htm 是我试图通过从位置数据中提取包含 [..] 的子字符串来修改的文件)。任务是提取包含 [number] 的子字符串,这就是我想出使用函数 extract() 的原因。不幸的是,使用 &lt;script&gt; 函数 extract(..&lt;/script&gt; 在 PDF 文件的顶部显示 &lt;script&gt; 标记的内容,而不是在此处显示结果:&lt;p id="demo"&gt;&lt;/p&gt;

【问题讨论】:

    标签: javascript html .net asp.net-mvc itext


    【解决方案1】:

    我自己解决了这个任务。对于可能需要此主题帮助的任何人,我在此处添加代码 sn-p:

    if (ReportList.Count > 0)
    {
        PdfWriter writer = PdfWriter.GetInstance(Report, new FileStream(FullPath, FileMode.Create));
        Report.Open();
        try
        {
            if (ListRoomSign.Count > 0)
            {
                foreach (var ObjReportList in ReportList)
                {
                    foreach (var ObjRoomSignList in ListRoomSign)
                    {
                        .....
                        string contents = System.IO.File.ReadAllText(HTMLFilePath);
    
                        //Remove square brackets value from room name
                        if (ObjReportList.Location.Contains("["))
                        {
                            ObjReportList.Location = ObjReportList.Location.ToString().Substring(0, ObjReportList.Location.ToString().LastIndexOf("["));
                        }
                        //
                        contents = contents.Replace("[RoomName]", ObjReportList.Location);
                        var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(contents), null);
                        foreach (var htmlElement in parsedHtmlElements)
                        {
                            Report.Add(htmlElement as IElement);
                        }
                        Report.NewPage();                                        
                    }
                }   
            }
    
            Report.Close();
        }
        catch (Exception)
        {
            FullPath = string.Empty;
        }
    }
    return FullPath;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-17
      • 2016-01-25
      相关资源
      最近更新 更多