|
124 | 124 | using OpenXmlPowerTools.HtmlToWml;
|
125 | 125 | using OpenXmlPowerTools.HtmlToWml.CSS;
|
126 | 126 | using System.Text.RegularExpressions;
|
127 |
| -using System.Windows.Forms; |
128 | 127 |
|
129 | 128 | namespace OpenXmlPowerTools.HtmlToWml
|
130 | 129 | {
|
@@ -1230,65 +1229,7 @@ private static XElement FontMerge(XElement higherPriorityFont, XElement lowerPri
|
1230 | 1229 | runText = sb.ToString();
|
1231 | 1230 | }
|
1232 | 1231 |
|
1233 |
| - try |
1234 |
| - { |
1235 |
| - using (Font f = new Font(ff, (float)sz / 2f, fs)) |
1236 |
| - { |
1237 |
| - const TextFormatFlags tff = TextFormatFlags.NoPadding; |
1238 |
| - var proposedSize = new Size(int.MaxValue, int.MaxValue); |
1239 |
| - var sf = TextRenderer.MeasureText(runText, f, proposedSize, tff); |
1240 |
| - // sf returns size in pixels |
1241 |
| - return sf.Width / multiplier; |
1242 |
| - } |
1243 |
| - } |
1244 |
| - catch (ArgumentException) |
1245 |
| - { |
1246 |
| - try |
1247 |
| - { |
1248 |
| - const FontStyle fs2 = FontStyle.Regular; |
1249 |
| - using (Font f = new Font(ff, (float)sz / 2f, fs2)) |
1250 |
| - { |
1251 |
| - const TextFormatFlags tff = TextFormatFlags.NoPadding; |
1252 |
| - var proposedSize = new Size(int.MaxValue, int.MaxValue); |
1253 |
| - var sf = TextRenderer.MeasureText(runText, f, proposedSize, tff); |
1254 |
| - return sf.Width / multiplier; |
1255 |
| - } |
1256 |
| - } |
1257 |
| - catch (ArgumentException) |
1258 |
| - { |
1259 |
| - const FontStyle fs2 = FontStyle.Bold; |
1260 |
| - try |
1261 |
| - { |
1262 |
| - using (var f = new Font(ff, (float)sz / 2f, fs2)) |
1263 |
| - { |
1264 |
| - const TextFormatFlags tff = TextFormatFlags.NoPadding; |
1265 |
| - var proposedSize = new Size(int.MaxValue, int.MaxValue); |
1266 |
| - var sf = TextRenderer.MeasureText(runText, f, proposedSize, tff); |
1267 |
| - // sf returns size in pixels |
1268 |
| - return sf.Width / multiplier; |
1269 |
| - } |
1270 |
| - } |
1271 |
| - catch (ArgumentException) |
1272 |
| - { |
1273 |
| - // if both regular and bold fail, then get metrics for Times New Roman |
1274 |
| - // use the original FontStyle (in fs) |
1275 |
| - var ff2 = new FontFamily("Times New Roman"); |
1276 |
| - using (var f = new Font(ff2, (float)sz / 2f, fs)) |
1277 |
| - { |
1278 |
| - const TextFormatFlags tff = TextFormatFlags.NoPadding; |
1279 |
| - var proposedSize = new Size(int.MaxValue, int.MaxValue); |
1280 |
| - var sf = TextRenderer.MeasureText(runText, f, proposedSize, tff); |
1281 |
| - // sf returns size in pixels |
1282 |
| - return sf.Width / multiplier; |
1283 |
| - } |
1284 |
| - } |
1285 |
| - } |
1286 |
| - } |
1287 |
| - catch (OverflowException) |
1288 |
| - { |
1289 |
| - // This happened on Azure but interestingly enough not while testing locally. |
1290 |
| - return 0; |
1291 |
| - } |
| 1232 | + return MetricsGetter.GetTextWidth(ff, fs, sz, runText) / multiplier; |
1292 | 1233 | }
|
1293 | 1234 |
|
1294 | 1235 | // The algorithm for this method comes from the implementer notes in [MS-OI29500].pdf
|
|
0 commit comments