15

即使在阅读了这个论坛帖子之后,如何使用 migradoc / pdfsharp 创建项目符号列表仍然很令人困惑。我基本上想显示这样的项目列表:

  • 躲闪
  • 日产
  • 福特
  • 雪佛兰
4

3 回答 3

21

这是一个示例(向 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 方法将所有内容集中在一个地方。在一个真实的应用程序中,我会使用该方法(它是一个用户定义的方法,代码在这个线程中给出)。

于 2010-10-31T08:27:44.587 回答
9

比上面的答案更简洁一点:

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,并且可以在任何地方重复使用。

于 2017-03-22T20:26:35.950 回答
3

使用 PDFsharp,您必须自己绘制项目符号。

使用 MigraDoc,您可以添加一个段落并为此段落设置段落.Format.ListInfo 以创建一个项目符号列表。

链接的线程显示了两个帮助程序:DefineList() 只设置一个成员变量,因此下次将创建一个新列表。为每个条目调用 AddToList()。

只需调用 DefineList() 来开始一个新的项目符号列表,然后为每个条目调用 AddToList()。DefineList() 对编号列表有很大的不同。

根据您的需要调整助手例程。

于 2010-10-27T07:39:03.207 回答