Hi,
I think we may have found a bug in TextFrame.Height when used with different fonts.
The code below should create a slide with a single TextFrame. We add lots of text and try to remove one character at a time until it it is under a certain height.
This works when the font is the default Arial. However, if you change the font (as below) the number of characters removed remains constant.
This means that for Arial Narrow too many characters are removed, so you end up with half of the last line emtpy. With Verdana not enough characters are removed so the text overfows the rectangle.
Any help would be much appreciated.
Thanks,
Mike
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/vnd.ms-powerpoint";
Response.AddHeader("Content-Disposition", "attachment; filename=output.ppt");
string sContent = "Vivamus tincidunt tortor non diam euismod iaculis. Ut justo nulla, porta a iaculis a, elementum ac mauris. Pellentesque pulvinar, massa non aliquet dignissim, massa ligula tempus libero, non egestas nunc dolor rhoncus dui. Nam ipsum eros, ultricies et lobortis a, rutrum at turpis. Phasellus sollicitudin felis vitae erat adipiscing nec accumsan ante egestas. Vivamus consectetur nisi nec magna tincidunt quis condimentum massa molestie. Sed non lorem eget turpis venenatis vestibulum eget a nisl. Quisque vitae justo mi, in elementum lacus. Vestibulum condimentum leo in nibh gravida fermentum. Mauris venenatis orci vel sapien mollis non ullamcorper justo commodo. Integer imperdiet, sapien sit amet scelerisque tempor, nibh diam eleifend neque, a lobortis nunc eros et justo. Nam turpis magna, facilisis vel tincidunt at, aliquet vitae purus. Aliquam mauris justo, blandit euismod convallis condimentum, facilisis ac tortor. Vivamus tincidunt tortor non diam euismod iaculis. Ut justo nulla, porta a iaculis a, elementum ac mauris. Pellentesque pulvinar, massa non aliquet dignissim, massa ligula tempus libero, non egestas nunc dolor rhoncus dui. Nam ipsum eros, ultricies et lobortis a, rutrum at turpis. Phasellus sollicitudin felis vitae erat adipiscing nec accumsan ante egestas. Vivamus consectetur nisi nec magna tincidunt quis condimentum massa molestie. Sed non lorem eget turpis venenatis vestibulum eget a nisl. Quisque vitae justo mi, in elementum lacus. Vestibulum condimentum leo in nibh gravida fermentum. Mauris venenatis orci vel sapien mollis non ullamcorper justo commodo. Integer imperdiet, sapien sit amet scelerisque tempor, nibh diam eleifend neque, a lobortis nunc eros et justo. Nam turpis magna, facilisis vel tincidunt at, aliquet vitae purus. Aliquam mauris justo, blandit euismod convallis condimentum, facilisis ac tortor. Vivamus tincidunt tortor non diam euismod iaculis. Ut justo nulla, porta a iaculis a, elementum ac mauris. Pellentesque pulvinar, massa non aliquet dignissim, massa ligula tempus libero, non egestas nunc dolor rhoncus dui. Nam ipsum eros, ultricies et lobortis a, rutrum at turpis. Phasellus sollicitudin felis vitae erat adipiscing nec accumsan ante egestas. Vivamus consectetur nisi nec magna tincidunt quis condimentum massa molestie. Sed non lorem eget turpis venenatis vestibulum eget a nisl. Quisque vitae justo mi, in elementum lacus. Vestibulum condimentum leo in nibh gravida fermentum. Mauris venenatis orci vel sapien mollis non ullamcorper justo commodo. Integer imperdiet, sapien sit amet scelerisque tempor, nibh diam eleifend neque, a lobortis nunc eros et justo. Nam turpis magna, facilisis vel tincidunt at, aliquet vitae purus. Aliquam mauris justo, blandit euismod convallis condimentum, facilisis ac tortor. Vivamus tincidunt tortor non diam euismod iaculis. Ut justo nulla, porta a iaculis a, elementum ac mauris. Pellentesque pulvinar, massa non aliquet dignissim, massa ligula tempus libero, non egestas nunc dolor rhoncus dui. Nam ipsum eros, ultricies et lobortis a, rutrum at turpis. Phasellus sollicitudin felis vitae erat adipiscing nec accumsan ante egestas. Vivamus consectetur nisi nec magna tincidunt quis condimentum massa molestie. Sed non lorem eget turpis venenatis vestibulum eget a nisl. Quisque vitae justo mi, in elementum lacus. Vestibulum condimentum leo in nibh gravida fermentum. Mauris venenatis orci vel sapien mollis non ullamcorper justo commodo. Integer imperdiet, sapien sit amet scelerisque tempor, nibh diam eleifend neque, a lobortis nunc eros et justo. Nam turpis magna, facilisis vel tincidunt at, aliquet vitae purus. Aliquam mauris justo, blandit euismod convallis condimentum, facilisis ac tortor. ";
Presentation oPres = new Presentation();
oPres.Fonts[0].FontName = "Verdana";
Rectangle oRect = oPres.Slides[0].Shapes.AddRectangle(1000, 10, 4000, 1000);
TextFrame oFrame = oRect.AddTextFrame(sContent);
oFrame.AnchorText = AnchorText.TopBaseline;
oFrame.WrapText = true;
oFrame.FitShapeToText = true;
Portion oPortion = oFrame.Paragraphs[0].Portions[0];
oPortion.FontHeight = 10;
while (oRect.Height > 1500)
{
string sCurrentContent = oPortion.Text;
oPortion.Text = sCurrentContent.Remove(sCurrentContent.Length - 2);
}
oPres.Write(Response.OutputStream);
}