Trying to chase down the differences between LibreOffice and Word has been frustrating, to say the least.
To be honest, I am even more lost in ODFDOM than I am in Simple API. I will try to take a look at the regression tests, but you may be overestimating my caliber as a programmer. I was hoping for just a little more help, but I'll try. Joseph D. Wagner -----Original Message----- From: Svante Schubert [mailto:[email protected]] Sent: Tuesday, January 9, 2018 1:50 AM To: [email protected] Subject: Re: Trouble with Footer Font Size - Adding Page X of Y to Footer Hello Joeseph, the first interesting thing to mention from ODF perspective is that the text of a footer and header is part of the page style within the styles.xml. Therefore any automatic styles being used for header and footer are not within the content.xml, but styles.xml - and only those. Let us not discuss the pro and con of this design, let me simply state, that I am not a fan of it of the overall result :) In your example, it seems that the LibreOffice styles are not connecting to each other, ie. a32e835 at the paragraph and a2b0e5e at the paragraph style should be the same string, but this might be as well a copy paste error from different files. To alter the ODF styles, you might want to go a level deeper into the ODFDOM project <http://incubator.apache.org/odftoolkit/odfdom/ProjectOverview.html>. Again take a look at the regression tests, where to find the desired elements. In general, every XML element has a generated DOM class with the prefix local name and either Attribute or Element suffix, for instance, TextSpanElement class. Hope it helps! Cheers, Svante ᐧ 2018-01-09 3:32 GMT+01:00 Joseph D. Wagner <[email protected]>: > I am trying to add a "Page X of Y" footer to the bottom of a text > document. I got everything working *EXCEPT* the font size. > > 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("Pa > ge\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.) > > Interesting, counterexample. 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. > > I performed a diff comparison on the output form odftoolkit(-) and the > output from Word(+). It seems the key difference is lines like these > in > styles.xml: > > - <style:style style:family="paragraph" style:name="a2b0e5e"> > - <style:paragraph-properties fo:text-align="center" > style:line-break="strict" style:punctuation-wrap="hanging" > style:text-autospace="ideograph-alpha" style:writing-mode="page"/> > - <style:text-properties fo:color="#000000" fo:country="US" > fo:font-size="10.0pt" fo:language="en" style:font-name="Courier New" > style:font-name-asian="Lucida Sans Unicode" > style:font-name-complex="Tahom a" > style:font-size-asian="12pt" style:font-size-complex="12pt"/> > + <style:style style:name="P2" style:parent-style-name="Normal" > style:family="paragraph"> > + <style:paragraph-properties fo:text-align="center"/> > + <style:text-properties style:font-name="Courier New"/> > + </style:style> > + <style:style style:name="T3" > style:parent-style-name="DefaultParagraphFont" > style:family="text"> > + <style:text-properties style:font-name="Courier New" > fo:color="#FF0000" fo:font-size="8pt" style:font-size-asian="8pt" > style:font-size-complex="8pt"/> > + </style:style> > + <style:style style:name="T4" > style:parent-style-name="DefaultParagraphFont" > style:family="text"> > + <style:text-properties style:font-name="Courier New" > fo:color="#FF0000" fo:font-size="8pt" style:font-size-asian="8pt" > style:font-size-complex="8pt"/> > + </style:style> > + <style:style style:name="T5" > style:parent-style-name="DefaultParagraphFont" > style:family="text"> > + <style:text-properties style:font-name="Courier New" > fo:color="#FF0000" fo:font-size="8pt" style:font-size-asian="8pt" > style:font-size-complex="8pt"/> > + </style:style> > + <style:style style:name="T6" > style:parent-style-name="DefaultParagraphFont" > style:family="text"> > + <style:text-properties style:font-name="Courier New" > fo:color="#FF0000" fo:font-size="8pt" style:font-size-asian="8pt" > style:font-size-complex="8pt"/> > </style:style> > > > - <style:footer> > - <text:section text:display="true" text:name="Page Numbers" > text:style-name="aec74e3"> > - <text:p text:style-name="a32e835">Page <text:span><text:page-number > style:num-format="" text:select-page="current"/> o f > </text:span><text:span><text:page-count style:num-format=""/></text:sp > an></text:p> > - </text:section> > - </style:footer> > > + <style:footer> > + <text:p text:style-name="Normal"> > + <text:span text:style-name="T3">Page </text:span> > + <text:span text:style-name="T4"> > + <text:page-number text:fixed="false">1</text:page-number> > + </text:span> > + <text:span text:style-name="T5"> of </text:span> > + <text:span text:style-name="T6"> > + <text:page-count>14</text:page-count> > + </text:span> > + </text:p> > + </style:footer> > > Unfortunately, I don't know what code I should write to force > odftoolkit to generate appropriate styles and text properties fields. > > Could someone please help me figure this one out? > > Thanks. > > Joseph D. Wagner > >
