Spire.Doc系列教程(7):給 Word 文檔添加內(nèi)容控件
內(nèi)容控件簡介
內(nèi)容控件在Word文檔中充當(dāng)著特定內(nèi)容的容器,不同的內(nèi)容控件可以指定不同的內(nèi)容類型(例如日期、圖片或文本等)以及能否編輯此內(nèi)容。我們從Word 2013中選取了以下幾種常見的內(nèi)容控件進(jìn)行介紹:
名稱 |
簡介 |
下拉列表內(nèi)容控件 |
下拉列表包含了一個(gè)預(yù)先定義好的列表。和組合框不同的是下拉列表不允許用戶編輯項(xiàng)。 |
純文本內(nèi)容控件 |
純文本內(nèi)容控件只能包含文本,不能包含其他項(xiàng),例如表格、圖片或其他內(nèi)容控件。 |
格式文本內(nèi)容控件 |
與純文本內(nèi)容控件不同,格式文本內(nèi)容控件可以包含除文本以外的其他項(xiàng),例如表格、圖片或其他內(nèi)容控件。 |
日期選取器內(nèi)容控件 |
日期選取器內(nèi)容控件包含一個(gè)日歷控件,用于幫助用戶輸入日期。 |
組合框內(nèi)容控件 |
組合框控件包含一個(gè)可以直接編輯的列表。它結(jié)合了文本框和下拉列表的屬性,用戶可以在框中鍵入值或者從下拉列表中選擇值。 |
圖片內(nèi)容控件 |
圖片內(nèi)容控件用于顯示圖片。用戶可以在制作模板時(shí)指定圖片,也可以通過單擊此控件來選擇需要插入的圖片。 |
添加內(nèi)容控件
Spire.Doc組件支持用戶在Word文檔中添加多種內(nèi)容控件。以下代碼將展示如何使用Spire.Doc組件給Word文檔添加上述表格中所介紹的內(nèi)容控件。
//創(chuàng)建一個(gè)新的word文檔 Document document = new Document(); //添加一個(gè)section到文檔 Section section = document.AddSection(); //添加一個(gè)段落到section Paragraph paragraph = section.AddParagraph(); //添加下拉列表內(nèi)容控件 StructureDocumentTagInline sdt = new StructureDocumentTagInline(document); paragraph.ChildObjects.Add(sdt); sdt.SDTProperties.SDTType = SdtType.DropDownList; //為控件設(shè)置標(biāo)題和標(biāo)簽 sdt.SDTProperties.Alias = "下拉列表"; sdt.SDTProperties.Tag = "下拉列表"; //添加下拉選項(xiàng) SdtDropDownList sddl = new SdtDropDownList(); sddl.ListItems.Add(new SdtListItem("男", "1")); sddl.ListItems.Add(new SdtListItem("女", "2")); sdt.SDTProperties.ControlProperties = sddl; //設(shè)置控件顯示的初始選項(xiàng) TextRange rt = new TextRange(document); rt.Text = sddl.ListItems[0].DisplayText; sdt.SDTContent.ChildObjects.Add(rt); //添加純文本內(nèi)容控件 paragraph = section.AddParagraph(); sdt = new StructureDocumentTagInline(document); paragraph.ChildObjects.Add(sdt); sdt.SDTProperties.SDTType = SdtType.Text; //為控件設(shè)置標(biāo)題和標(biāo)簽 sdt.SDTProperties.Alias = "純文本"; sdt.SDTProperties.Tag = "純文本"; //設(shè)置顯示文本 SdtText text = new SdtText(false); text.IsMultiline = true; sdt.SDTProperties.ControlProperties = text; rt = new TextRange(document); rt.Text = "此處只能輸入文本"; sdt.SDTContent.ChildObjects.Add(rt); //添加格式文本內(nèi)容控件 paragraph = section.AddParagraph(); sdt = new StructureDocumentTagInline(document); paragraph.ChildObjects.Add(sdt); sdt.SDTProperties.SDTType = SdtType.RichText; //為控件設(shè)置標(biāo)題和標(biāo)簽 sdt.SDTProperties.Alias = "格式文本"; sdt.SDTProperties.Tag = "格式文本"; //設(shè)置顯示文本 SdtText richText = new SdtText(true); richText.IsMultiline = true; sdt.SDTProperties.ControlProperties = richText; rt = new TextRange(document); rt.Text = "輸入格式化的文本、表格和圖片等"; sdt.SDTContent.ChildObjects.Add(rt); //添加日期選取器內(nèi)容控件 paragraph = section.AddParagraph(); sdt = new StructureDocumentTagInline(document); paragraph.ChildObjects.Add(sdt); sdt.SDTProperties.SDTType = SdtType.DatePicker; //為控件設(shè)置標(biāo)題和標(biāo)簽 sdt.SDTProperties.Alias = "日期選取器"; sdt.SDTProperties.Tag = "日期選取器"; //設(shè)置日歷模式 SdtDate date = new SdtDate(); date.CalendarType = CalendarType.Default; date.DateFormat = "yyyy.MM.dd"; date.FullDate = DateTime.Now; sdt.SDTProperties.ControlProperties = date; //設(shè)置顯示日期 rt = new TextRange(document); rt.Text = "1990.02.08"; sdt.SDTContent.ChildObjects.Add(rt); //添加組合框內(nèi)容控件 paragraph = section.AddParagraph(); sdt = new StructureDocumentTagInline(document); paragraph.ChildObjects.Add(sdt); sdt.SDTProperties.SDTType = SdtType.ComboBox; //為控件設(shè)置標(biāo)題和標(biāo)簽 sdt.SDTProperties.Alias = "組合框"; sdt.SDTProperties.Tag = "組合框"; //添加選項(xiàng) SdtComboBox cb = new SdtComboBox(); cb.ListItems.Add(new SdtListItem("英國", "1")); cb.ListItems.Add(new SdtListItem("日本", "2")); cb.ListItems.Add(new SdtListItem("意大利", "3")); sdt.SDTProperties.ControlProperties = cb; //添加顯示文本 rt = new TextRange(document); rt.Text = cb.ListItems[0].DisplayText; sdt.SDTContent.ChildObjects.Add(rt); //添加圖片內(nèi)容控件 paragraph = section.AddParagraph(); sdt = new StructureDocumentTagInline(document); paragraph.ChildObjects.Add(sdt); sdt.SDTProperties.SDTType = SdtType.Picture; //為控件設(shè)置標(biāo)題和標(biāo)簽 sdt.SDTProperties.Alias = "圖片"; sdt.SDTProperties.Tag = "圖片"; //添加圖片 DocPicture pic = new DocPicture(document) { Width = 10, Height = 10 }; pic.LoadImage(Image.FromFile(@"C:\Users\Administrator\Desktop\YourLogo.png")); sdt.SDTContent.ChildObjects.Add(pic); //保存文檔 document.SaveToFile("Controls.docx", FileFormat.Docx);