MigraDoc项目符号列表(孔)

本文关键字:列表 项目 符号 MigraDoc | 更新日期: 2023-09-27 18:27:10

在我的解决方案中,我使用PDF文件中的项目符号列表。

它看起来像这样:

• Solcellepaneler kræver hverken autoriseret service eller tidskrævende vedligehold.
• Solceller er støjfri, forurener ikke og har ingen bevægelige dele, hvilket mindsker
service og vedligehold
• Solceller kan integreres i bygningers arkitektur eller anvendes som
bygningselement i form af tag, facader eller solafskærmning
• Solceller har lang levetid, med en produktionsgaranti på hele 25 år
• 10 kvadrameter solceller sparer ca. ½ ton CO2 om året

我想要什么:

• Solcellepaneler kræver hverken autoriseret service eller tidskrævende vedligehold.
• Solceller er støjfri, forurener ikke og har ingen bevægelige dele, hvilket mindsker
  service og vedligehold
• Solceller kan integreres i bygningers arkitektur eller anvendes som
  bygningselement i form af tag, facader eller solafskærmning
• Solceller har lang levetid, med en produktionsgaranti på hele 25 år
• 10 kvadrameter solceller sparer ca. ½ ton CO2 om året

代码atm:

List<string> items = new List<string>();
            items.Add("Solcellepaneler kræver hverken autoriseret service eller tidskrævende vedligehold.");
            items.Add("Solceller er støjfri, forurener ikke og har ingen bevægelige dele, hvilket mindsker service og vedligehold");
            items.Add("Solceller kan integreres i bygningers arkitektur eller anvendes som bygningselement i form af tag, facader eller solafskærmning");
            items.Add("Solceller har lang levetid, med en produktionsgaranti på hele 25 år ");
            items.Add("10 kvadrameter solceller sparer ca. ½ ton CO2 om året");

        Style style = document.AddStyle("MyBulletList", "Normal");
        style.ParagraphFormat.LeftIndent = "0.5cm";
        for (int idx = 0; idx < items.Count; ++idx)
        {
            ListInfo listinfo = new ListInfo();
            listinfo.ContinuePreviousList = idx > 0;
            listinfo.ListType = ListType.BulletList1;
            SolcellDummyText = HvadErSolceller.AddParagraph(items[idx]);
            SolcellDummyText.Style = "MyBulletList";
            SolcellDummyText.Format.ListInfo = listinfo;
            listinfo.ContinuePreviousList = true;
        }

有什么方法可以捕捉换行事件吗?

MigraDoc项目符号列表(孔)

只需设置MyBulletList样式的LeftIndent以匹配第一个制表位,将FirstLineIndent设置为负值即可为项目符号腾出空间,仅此而已。

简单地说:最低要求(假设"段落"是AddParagraph的结果):

paragraph.Format.LeftIndent = "2.5cm";
paragraph.Format.FirstLineIndent = "-0.5cm";
paragraph.Format.ListInfo.ListType = ListType.BulletList1;

以下是使用样式的示例代码(样式是以前创建的,代码片段仅对其进行修改):

style = styles["BulletList"];
style.ParagraphFormat.RightIndent = 12;
style.ParagraphFormat.TabStops.ClearAll();
style.ParagraphFormat.TabStops.AddTabStop(Unit.FromCentimeter(2.5), TabAlignment.Left);
style.ParagraphFormat.LeftIndent = "2.5cm";
style.ParagraphFormat.FirstLineIndent = "-0.5cm";
style.ParagraphFormat.SpaceBefore = 0;
style.ParagraphFormat.SpaceAfter = 0;

如前所述:整个"技巧"是设置LeftIndent并使用负的FirstLineIndent来定位项目符号。

要添加样式,请从文档中获取样式并调用:

document.Styles.AddStyle("Bulletlist", "Normal");