If this helps anyone, I think I found my problem. The data was coming from an HTML TEXTAREA and had a trailing newline. Calling setText with the trailing newline somehow blew the fonts apart. I'm now calling StringUtils.trimToEmpty() on the string I actually set and it keeps the fonts now.
This seems like a bug to me. Do others agree? Thanks, mrg On Wed, Aug 18, 2010 at 10:25 AM, Michael Gentry <[email protected]> wrote: > Hi Mikki and others, > > I'm actually only dealing with one SlideShow which I read in from disk > (it is a template). I search for substitution text and replace it > (kind of like Velocity) and then save the template back out under a > new name. > > The core of my code that does the substitution is: > > // Loop over all the shapes in the slide to replace the substitution text. > for (Shape shape : slide.getShapes()) > { > if (shape instanceof TextBox) > { > TextBox textBox = (TextBox) shape; > > // Get the candidate substitution text. > String substitutionText = textBox.getText(); > > // If the substitution text matches a key in the substitution > map, replace it. > if (substitutionMap.containsKey(substitutionText)) > textBox.setText(substitutionMap.get(substitutionText) == > null ? "" : substitutionMap.get(substitutionText)); > } > } > > All I'm doing is setting the text to values. I'm not changing the > font name or font size, but for some reason when I save the SlideShow, > some of my TextBoxes (not all) have changed to Arial 24pt (and I don't > use Arial anywhere in the template, only Calibri). I'd have expected > only the text to change, but for some reason more is changing and I > don't know why. > > Any ideas would be appreciated. > > Thanks, > > mrg > > > On Wed, Aug 18, 2010 at 3:15 AM, mikki <[email protected]> wrote: >> >> Hi! >> >> May help you this code >> >> SlideShow write_SlideShow = new SlideShow( new HSLFSlideShow( "New_File.ppt" >> ) ); >> SlideShow read_SlideShow = new SlideShow( new HSLFSlideShow( "Old_File.ppt" >> ) ); >> // Add Font >> for (int k=0; k < read_SlideShow.getNumberOfFonts(); k++){ >> PPFont rf=read_SlideShow.getFont(k); >> int j=0; >> for (j=0; j < write_SlideShow.getNumberOfFonts(); j++){ >> if (rf.equals(write_SlideShow.getFont(j))){ >> break; >> } >> } >> if (j>=write_SlideShow.getNumberOfFonts()){ >> write_SlideShow.addFont(rf); >> } >> } >> >> -- >> View this message in context: >> http://apache-poi.1045710.n5.nabble.com/Problem-with-PowerPoint-fonts-tp2638655p2639025.html >> Sent from the POI - User mailing list archive at Nabble.com. >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
