Auto-Resize FormattedString
- 
					
					
					
					
 Hi, I'm looking for a solution to find the maximum value of FontSize that can be set to allow a FormattedString() to occupy all the available space in a TextBox. For TextBox using a simple string, I have already coded this snippet that returns the maximum fontSize value: def get_max_fontSize_textBox(font, text, box, align=None, fS=200): font(FONT) fontSize(fS) hyphenation(False) overflow = textOverflow(text, box, align) while overflow: font(FONT) fS -= 1 fontSize(fS) overflow = textOverflow(text, box, align) return fSI would like to achieve exactly the same thing, but using FormattedString() instead of a str. The problem is how to build again the FormattedString() in the while overflow loop. 
 
- 
					
					
					
					
 why trying to find the pointSize? just scale everything with textWidth/boxWidth
 
- 
					
					
					
					
 I hadn't thought about this solution! 
 Thanks, @frederik!newPage("A4Landscape") box_w, box_h = width()-100, height()-100 box_x, box_y = 50, 50 txt = FormattedString() txt.fontSize(90) txt.align("center") txt.append("LOOOOOOOOOOOOOOONG STRING\n"*30) txt_w = textSize(txt)[0] txt_h = textSize(txt)[1] width_ratio = box_w/txt_w height_ratio = box_h/txt_h sf = min(width_ratio , height_ratio, 1) scale(sf) textBox(txt, (box_x/sf, box_y/sf, box_w/sf, box_h/sf))
 
