Hi,
I would like to use a custom bullet style formatting after inserting some text into my word document with insertHtml method. I successfully manage to change the style of the text inside each ListItem Paragraph, but unfortunately i failed to change the bullet formatting itself. Is there a way to do that?
Here is my code:
Style customStyle = doc.getStyles().get("customStyle");//my custom style for bullets
builder.insertHtml(htmlContent);
Paragraphs paragraphs = doc.getFirstSection().getBody().getParagraphs();
int count = 0;
for (Node node : paragraphs.toArray())
{
Paragraph paragraph = (Paragraph)node;
if (paragraph.isListItem())
{
com.aspose.words.Style style = doc.getStyles().add(StyleType.PARAGRAPH, "MyStyle" + count++);
style.getFont().setBold(true);
// the following code has no effect on the bullet style
style.getListFormat().setList(doc.getLists().add(customStyle));
paragraph.getParagraphFormat().setStyle(style);
}
}
Thx in advance.
Hi
Thanks for your request. Please try using the following code:
// Open document
Document doc = new Document("C:\\Temp\\in.doc");
// Get collection of Paragraphs
NodeCollection paragraphs = doc.getChildNodes(NodeType.PARAGRAPH, true);
// loop through all parahraphs
for (int i = 0; i < paragraphs.getCount(); i++)
{
Paragraph par = (Paragraph)paragraphs.get(i);
// Check whether current paragraph is list item
if (par.isListItem())
{
// Change formating of the bullet
par.getListFormat().getListLevel().getFont().setBold(true);
}
}
// Save output document
doc.save("c:\\Temp\\out.doc");
see the following link for more information:
https://reference.aspose.com/words/java/com.aspose.words/listlevel/
Hope this helps.
Best regards.
Hi,
Thanks for your help, the previous code works well for the text style of the ListItem. But i just want to change the shape (or the color) of the bullets itself used in my word document (after using insertHtml), from a circle to a triangle, or simply apply a custom one already defined in the document (in order to change the normal bullet shape by the one i called “customStyle”) :
Style customStyle = doc.getStyles().get("customStyle");//custom **List** style for bullets
Is it possible to do that?
Regards.
Hi
Thanks for your request. Yes, of course you can achieve this. Please try using the following code:
// Open document
Document doc = new Document("C:\\Temp\\in.doc");
// Get collection of Paragraphs
NodeCollection paragraphs = doc.getChildNodes(NodeType.PARAGRAPH, true);
// Get style custom style
Style myLstStyle = doc.getStyles().get("myListStyle");
// Create new List from style defined in the document
List lst = doc.getLists().add(myLstStyle);
// loop through all parahraphs
for (int i = 0; i < paragraphs.getCount(); i++)
{
Paragraph par = (Paragraph)paragraphs.get(i);
// Check whether current paragraph is list item
if (par.isListItem())
{
// Set custom style
par.getListFormat().setList(lst);
}
}
// Save output document
doc.save("c:\\Temp\\out.doc");
Best regards,
I need this code also. However I can’t seem to be able to create the equvilant code in VB. Ultimatly I would just like to force all bullets in the output word document to be Square for all levels. Is there a better way to do this? All content is being inserted with .insertHTML
Thanks,
-Jabin
Hi
Thank for your request. I thin the following code could help you.
'Open a template document
Dim doc As Document = New Document("C:\Temp\in.doc")
'Get collection of Paragraphs from the document
Dim paragraphs As NodeCollection = doc.GetChildNodes(NodeType.Paragraph, True)
'Loop through all paragraphs
For Each par As Paragraph In paragraphs
'Check whether current paragraph is list item
If (par.IsListItem) Then
'If so, change its bullet
par.ListFormat.ListLevel.NumberStyle = NumberStyle.Bullet
par.ListFormat.ListLevel.Font.Name = "Wingdings"
par.ListFormat.ListLevel.NumberFormat = Chr(167)
End If
Next
'Save output document
doc.Save("C:\Temp\out.doc")
Best regards.
That is very close to what I need. However that code is also replaceing the numbers from numbered lists
with the square bullet. Is it possible to also check for existing numbering before replacing with the square bullet? I see where to apply numbers etc but not where to check for existing number format.
EDIT: I was able to make it work using this change to the code
Dim paragraphs As NodeCollection = outputDoc.GetChildNodes(NodeType.Paragraph, True)
'Loop through all paragraphs
For Each par As Paragraph In paragraphs
'Check whether current paragraph is list item
If (par.IsListItem) Then
If par.ListFormat.ListLevel.NumberStyle.Equals(NumberStyle.Bullet) Then 'If so, change its bullet style to SQUARE
par.ListFormat.ListLevel.NumberStyle = NumberStyle.Bullet
par.ListFormat.ListLevel.Font.Name = "Wingdings"
par.ListFormat.ListLevel.NumberFormat = Chr(167)
End If
End If
Next
Hi
It is nice that you have found solution.
Best regards.