【发布时间】:2010-10-26 15:37:33
【问题描述】:
即使在阅读this forum post 之后,如何使用 migradoc / pdfsharp 创建项目符号列表仍然很令人困惑。我基本上想显示这样的项目列表:
- 闪避
- 日产
- 福特
- 雪佛兰
【问题讨论】:
即使在阅读this forum post 之后,如何使用 migradoc / pdfsharp 创建项目符号列表仍然很令人困惑。我基本上想显示这样的项目列表:
【问题讨论】:
这是一个示例(在 HelloWorld 示例中添加了几行):
// Add some text to the paragraph
paragraph.AddFormattedText("Hello, World!", TextFormat.Italic);
// Add Bulletlist begin
Style style = document.AddStyle("MyBulletList", "Normal");
style.ParagraphFormat.LeftIndent = "0.5cm";
string[] items = "Dodge|Nissan|Ford|Chevy".Split('|');
for (int idx = 0; idx < items.Length; ++idx)
{
ListInfo listinfo = new ListInfo();
listinfo.ContinuePreviousList = idx > 0;
listinfo.ListType = ListType.BulletList1;
paragraph = section.AddParagraph(items[idx]);
paragraph.Style = "MyBulletList";
paragraph.Format.ListInfo = listinfo;
}
// Add Bulletlist end
return document;
我没有使用 AddToList 方法将所有内容集中在一个地方。在实际应用中,我会使用该方法(它是用户定义的方法,代码给出in this thread)。
【讨论】:
比上面的回答简洁一点:
var document = new Document();
var style = document.AddStyle("BulletList", "Normal");
style.ParagraphFormat.LeftIndent = "0.5cm";
style.ParagraphFormat.ListInfo = new ListInfo
{
ContinuePreviousList = true,
ListType = ListType.BulletList1
};
var section = document.AddSection();
section.AddParagraph("Bullet 1", "BulletList");
section.AddParagraph("Bullet 2", "BulletList");
样式只创建一次,包括listinfo,并且可以在任何地方重复使用。
【讨论】:
ListInfo 不适用于编号列表。我也不会将它用于项目符号列表,至少在生成具有多个项目符号列表的 RTF 文件时不会。
使用 PDFsharp,您必须自己绘制项目符号。
使用 MigraDoc,您可以添加一个段落并为此段落设置 paragraph.Format.ListInfo 以创建项目符号列表。
链接的线程显示了两个帮助程序: DefineList() 只设置一个成员变量,因此下次将创建一个新列表。 为每个条目调用 AddToList()。
只需调用 DefineList() 来开始一个新的项目符号列表,然后为每个条目调用 AddToList()。 DefineList() 对编号列表有很大的影响。
根据您的需要调整帮助程序。
【讨论】: