даже после чтения этого сообщения в форуме, его все еще довольно запутанно, как создать маркированный список с помощью migradoc/pdfsharp. Я в основном хочу отобразить список таких элементов:
- Dodge
- Nissan
- Ford
- Chevy
даже после чтения этого сообщения в форуме, его все еще довольно запутанно, как создать маркированный список с помощью 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, чтобы все это было в одном месте. В реальном приложении я бы использовал этот метод (это определяемый пользователем метод, код которого приведен в в этом потоке).
Немного более кратким, чем приведенный выше ответ:
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, и может быть использован повсеместно.
С помощью PDFsharp вы должны сами нарисовать пули.
С помощью MigraDoc вы добавляете абзац и устанавливаете paragraph.Format.ListInfo для этого абзаца для создания списка маркеров.
Связанный поток показывает две вспомогательные процедуры: DefineList() устанавливает только переменную-член, поэтому в следующий раз будет создан новый список. AddToList() вызывается для каждой записи.
Просто вызовите DefineList(), чтобы начать новый список маркеров, а затем вызовите AddToList() для каждой записи. DefineList() делает большую разницу для пронумерованных списков.
Адаптируйте вспомогательные подпрограммы для ваших нужд.