Interesting follow-up. It works when I set the font larger, like 16,
but it doesn't work when I set the font smaller, like 10 or 8.
Joseph D. Wagner
On 01/06/2018 02:49 AM, Joseph D. Wagner wrote:
I wrote this code:
// Adds Page X of Y to the footer
Font fontsmaller = new Font("Arial",
StyleTypeDefinitions.FontStyle.REGULAR, 8);
Footer footer = doc.getFooter();
Section footersection = footer.appendSection("Page Numbers");
Paragraph footerparagraph =
footersection.addParagraph("Page\u00A0");
footerparagraph.setFont(fontsmaller); // Doesn't work here either
Fields.createCurrentPageNumberField(footerparagraph.getOdfElement());
footerparagraph.appendTextContent("\u00A0of\u00A0");
Fields.createPageCountField(footerparagraph.getOdfElement());
footerparagraph.setFont(fontsmaller); // Doesn't work here either
It seems to work EXCEPT the part of changing the font size. In Word,
the font ends up being the default size of 12. (Works as expected in
LibreOffice.)
I also wrote this variant, just in case setFont needs to be executed
in some kind of order:
// Adds Page X of Y to the footer
Font fontsmaller = new Font("Arial",
StyleTypeDefinitions.FontStyle.REGULAR, 8);
Footer footer = doc.getFooter();
Section footersection = footer.appendSection("Page Numbers");
Paragraph footerparagraph = footersection.addParagraph("");
footerparagraph.setFont(fontsmaller); // Doesn't work here either
footerparagraph.appendTextContent("Page\u00A0");
Fields.createCurrentPageNumberField(footerparagraph.getOdfElement());
footerparagraph.appendTextContent("\u00A0of\u00A0");
Fields.createPageCountField(footerparagraph.getOdfElement());
footerparagraph.setFont(fontsmaller); // Doesn't work here
Here's a counterexample of when it works in both LiberOffice and Word,
but only for the main body.
// Special handling for first line
Paragraph p = doc.getParagraphByIndex(0, false);
p.setFont(font);
infile.readLine();
p.appendTextContent(infile.readLine());
// Loops over all other lines
String inline = new String();
while ((inline = infile.readLine()) != null) {
p.appendTextContent("\r\n" + inline.replaceAll("\n",
"\r\n"));
}
infile.close();
Notice how I have to keep appending to an existing paragraph. Once I
try to add a new paragraph, setFont doesn't set the size correctly, in
Word.
Any help with this would be appreciated.
Joseph D. Wagner
P.S. I had to add a non-breaking space to get it to correct add "Page
X of Y". Otherwise, in Word, it would say "Page Xof Y"