2016-11-15 32 views
0

我使用iTextSharp和字符串操作/提取包含「[number] 「並生成PDF文件。我以前的問題被張貼在這裏: String manipulation & PDF output file使用iTextSharp(用於創建PDF文件的.NET PDF庫)從HTML文件生成的字符串操作/提取子字符串和PDF文件

我使用這個功能來提取包含字符串「[..]」

<script> 
</script> 

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

它是:ASP.Net MVC網頁。該視圖具有包含位置,房間名稱和用於PDF打印的複選框的網格。網格上的記錄/數據來自SQL數據庫。此位置字段數據包含結尾「[編號]」處的幾條記錄。如果用戶在點擊「打印到PDF」按鈕後選擇一個記錄的複選框應該產生PDF文件。我使用string contents = System.IO.File.ReadAllText(HTMLFilePath)來讀取Location,RoomName的文件。它是這個Html文件的一部分。

後面打印按鈕的代碼開頭:

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

如果這個文件RoomSignReport.htm是,我試圖通過提取包含子串來修改一個[..]形成的位置數據)。任務是提取包含[數字]的子字符串,這就是爲什麼我想出使用函數extract()的原因。不幸的是使用<script>函數提取物(..在PDF的頂部</script>顯示文件<script>標籤的內容,而不是在這裏顯示的結果是:<p id="demo"></p>

回答

0

我自己解決這個任務對於任何可能需要的幫助與這個主題,我在此處添加代碼片段:

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; 
相關問題