问题
In my Solution I am using bullet list in PDF files.
It looks something like that:
• 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
What I want :
• 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
Code 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;
}
Is there any way to catch newline event?
回答1:
Simply set the LeftIndent of the MyBulletList style to match the first tab stop, set the FirstLineIndent to a negative value to make space for the bullet - and that's all.
To keep it simple: the minimum requirements (assuming "paragraph" is the result of AddParagraph):
paragraph.Format.LeftIndent = "2.5cm";
paragraph.Format.FirstLineIndent = "-0.5cm";
paragraph.Format.ListInfo.ListType = ListType.BulletList1;
Here is sample code that uses a style (the style was previously created, the code snippet only modifies it):
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;
As mentioned before: the whole "trick" is setting LeftIndent and use a negative FirstLineIndent to position the bullet.
To add a style, get the Styles from the Document and call:
document.Styles.AddStyle("Bulletlist", "Normal");
来源:https://stackoverflow.com/questions/9633135/migradoc-bullet-list-holes