public HRContractBLL(SqlConnection conn) { this.conn = conn; this.fontpath = Functions.GetAppConfigString("FontPath", "") + "\\simsun.ttc"; this._templetbase = Functions.GetAppConfigString("TempletFileRootPath", ""); this._fieldsInfo = PDFTemplet.LoadFromJSONFile(_templetbase+"\\TempletFields.json"); ; }
private void GenerateFieldRow(PDFTemplet fieldsInfo,KeyValuePair<string, string> de) { string fieldKey = de.Value.ToString();//value!!! //string fieldValue = pdfReader.AcroFields.GetField(fieldKey); bool editable = fieldsInfo.GetItem(fieldKey).Editable;//该字段是否可以被编辑 if (!editable) return; string showtitle = fieldsInfo.GetItem(fieldKey).FieldTitle; string note = fieldsInfo.GetItem(fieldKey).Note; TableRow row = new TableRow(); TableCell cell_1 = new TableCell(); TableCell cell_2 = new TableCell(); Literal lt = new Literal(); TextBox tb = new TextBox(); Literal ltnote = new Literal(); if (showtitle.Equals("")) showtitle = fieldKey; lt.Text = "<span title='" + fieldKey + "'>" + showtitle + " </span>:"; tb.Text = "";// fieldValue; tb.ID = "txt_" + fieldKey; //textbox的命名为txt_fieldkey ltnote.Text = note; //this.Controls.Add(tb); cell_1.Controls.Add(lt); cell_2.Controls.Add(tb); cell_2.Controls.Add(ltnote); row.Cells.Add(cell_1); row.Cells.Add(cell_2); FieldsHolderTable.Rows.Add(row); }
private void CreateUI() { //获取字段模板配置信息(位于模板目录) if (!File.Exists(this._templetbase + "\\TempletFields.json")) { Response.Write("CreateUI.字段模板json文件不存在"); return; } _fieldsInfo = PDFTemplet.LoadFromJSONFile(this._templetbase+"\\TempletFields.json"); string docpath = Functions.ParseStr(ViewState["templetdocpath"]); if (docpath.Equals("")) return; //创建控件 from templetfile string templefile = this._templetbase + "\\" + this.CorpID + "\\" + docpath; if (!docpath.Equals("")) CreateFieldControls(_fieldsInfo, templefile); ////绑定数据db-->ui //string personid = Functions.ParseStr(ViewState["personid"]); //if (personid.Equals("")) return; //DataFromDBToUI(_fieldsInfo); }
//创建pdf中field对应的输入控件,依赖fieldsInfo中的字段属性 private void CreateFieldControls(PDFTemplet fieldsInfo ,string templetefileserverpath) { this.FieldsHolderTable.Rows.Clear(); PdfReader pdfReader = new PdfReader(templetefileserverpath); //将pdf中的字段,存在于fieldInfo中的,放入到sl中,其他放到dictionary中 SortedList<string, string> sortedkeys = new SortedList<string, string>(); Dictionary<string, string> unsortedkeys = new Dictionary<string, string>(); foreach (DictionaryEntry de in pdfReader.AcroFields.Fields) { string fieldKey = de.Key.ToString(); string ordervalue = fieldsInfo.GetItem(fieldKey).Order; if (ordervalue.Equals("-1")) { unsortedkeys.Add(fieldKey, fieldKey); }//key与value相同!!! else { sortedkeys.Add(ordervalue, fieldKey); } } //循环sorted list foreach (KeyValuePair<string, string> de in sortedkeys) { GenerateFieldRow(fieldsInfo, de); } //循环unsorted list foreach (KeyValuePair<string, string> de in unsortedkeys) { GenerateFieldRow(fieldsInfo, de); } }