33using EPPlus . Fonts . OpenType . TextShaping ;
44using EPPlus . Fonts . OpenType . Utils ;
55using OfficeOpenXml . Interfaces . Drawing . Text ;
6+ using OfficeOpenXml . Interfaces . Fonts ;
67
78namespace TestProject1
89{
@@ -135,9 +136,16 @@ public void LoremIpsumTesting()
135136 } ;
136137
137138 var handler = new TextHandler ( mf ) ;
138- double maxPixelWidth = 53d ;
139139
140- var wrappedStrings = handler . WrapText ( text , maxPixelWidth ) ;
140+ var ptMax = 39.68503937007874015748031496063f ;
141+
142+ ShapingOptions options = new ShapingOptions ( ) ;
143+
144+ var layout = OpenTypeFonts . GetTextLayoutEngineForFont ( mf ) ;
145+
146+ var wrapAlternative = layout . WrapRichText ( new List < string > ( ) { text } , new List < MeasurementFont > ( ) { mf } , ptMax ) ;
147+
148+ var wrappedStrings = handler . WrapText ( text , ptMax , options ) ;
141149
142150 var curIndex = 0 ;
143151
@@ -151,7 +159,8 @@ public void LoremIpsumTesting()
151159 Assert . AreEqual ( "ng elit." , wrappedStrings [ curIndex ++ ] ) ;
152160 Assert . AreEqual ( "Nulla" , wrappedStrings [ curIndex ++ ] ) ;
153161 Assert . AreEqual ( "pulvinar" , wrappedStrings [ curIndex ++ ] ) ;
154- Assert . AreEqual ( "interdum" , wrappedStrings [ curIndex ++ ] ) ;
162+ Assert . AreEqual ( "interdu" , wrappedStrings [ curIndex ++ ] ) ;
163+ Assert . AreEqual ( "m" , wrappedStrings [ curIndex ++ ] ) ;
155164 Assert . AreEqual ( "imperdie" , wrappedStrings [ curIndex ++ ] ) ;
156165 Assert . AreEqual ( "t." , wrappedStrings [ curIndex ++ ] ) ;
157166 Assert . AreEqual ( "Praesent" , wrappedStrings [ curIndex ++ ] ) ;
@@ -166,6 +175,27 @@ public void LoremIpsumTesting()
166175 Assert . AreEqual ( "convallis" , wrappedStrings [ curIndex ++ ] ) ;
167176 }
168177
178+ [ TestMethod ]
179+ public void WrapDifficultSpotSpace ( )
180+ {
181+ var text = "tellus. Morbi " ;
182+ var pointWidth = 54.141732283464566929133858267717f ;
183+
184+ var mf = new MeasurementFont ( )
185+ {
186+ FontFamily = "Aptos Narrow" ,
187+ Style = MeasurementFontStyles . Regular ,
188+ Size = 11.0f ,
189+ } ;
190+
191+ var handler = new TextHandler ( mf ) ;
192+
193+ var wrappedStrings = handler . WrapText ( text , pointWidth ) ;
194+
195+ Assert . AreEqual ( "tellus. " , wrappedStrings [ 0 ] ) ; //Difficult part
196+ Assert . AreEqual ( "Morbi " , wrappedStrings [ 1 ] ) ;
197+ }
198+
169199 [ TestMethod ]
170200 public void LoremIpsum20Paragraphs ( )
171201 {
@@ -182,7 +212,7 @@ public void LoremIpsum20Paragraphs()
182212
183213 double maxPixelWidth = 72d ;
184214
185- var wrappedStrings = handler . WrapText ( Lorem20Str , maxPixelWidth ) ;
215+ var wrappedStrings = handler . WrapText ( Lorem20Str , maxPixelWidth . PixelToPoint ( ) ) ;
186216
187217 const string SavedComparisonString = "Lorem\r \n ipsum dolor\r \n sit amet,\r \n consectetur\r \n adipiscing\r \n elit. Nulla\r \n pulvinar\r \n interdum\r \n imperdiet.\r \n Praesent ut\r \n auctor urna.\r \n Phasellus\r \n sollicitudin\r \n quam vitae\r \n est\r \n convallis,\r \n eu mattis\r \n lorem\r \n efficitur.\r \n Mauris nulla\r \n libero,\r \n tincidunt id\r \n ipsum non,\r \n lobortis\r \n tristique\r \n mauris.\r \n Donec ut\r \n enim sed\r \n enim\r \n fermentum\r \n molestie vel\r \n quis odio.\r \n Morbi a\r \n fermentum\r \n massa, sit\r \n amet\r \n ultrices est.\r \n Aenean\r \n ante mi,\r \n fermentum\r \n nec\r \n rhoncus et,\r \n vulputate\r \n vel sapien.\r \n Donec\r \n tempus, leo\r \n quis luctus\r \n rhoncus,\r \n augue odio\r \n pharetra\r \n libero, ac\r \n blandit urna\r \n turpis sed\r \n diam.\r \n Vivamus\r \n augue\r \n purus,\r \n eleifend et\r \n justo\r \n facilisis,\r \n imperdiet\r \n rhoncus\r \n sem.\r \n Quisque\r \n accumsan\r \n pellentesqu\r \n e elit, eget\r \n finibus\r \n massa\r \n accumsan\r \n in. Fusce eu\r \n accumsan\r \n enim. Cras\r \n pulvinar\r \n enim vel\r \n tellus\r \n lacinia,\r \n consectetur\r \n euismod\r \n tortor\r \n consectetur\r \n . Praesent\r \n tincidunt\r \n pretium\r \n eros, ac\r \n auctor\r \n magna\r \n luctus sed.\r \n Ut porta\r \n lectus\r \n quam, non\r \n ornare\r \n mauris\r \n lacinia sit\r \n amet.\r \n Nullam\r \n egestas\r \n dolor quis\r \n magna\r \n porttitor, ac\r \n iaculis nisi\r \n hendrerit.\r \n Proin at\r \n mollis\r \n lacus, in\r \n porttitor\r \n nunc.\r \n Aliquam\r \n erat\r \n volutpat.\r \n Sed vel\r \n egestas\r \n risus, at\r \n aliquam\r \n arcu.\r \n Vestibulum\r \n quis\r \n lobortis\r \n nulla. Etiam\r \n pellentesqu\r \n e auctor\r \n nulla, eget\r \n tincidunt\r \n felis\r \n rhoncus id.\r \n Sed metus\r \n ante,\r \n efficitur id\r \n dui eu,\r \n fermentum\r \n mollis odio.\r \n Phasellus\r \n ullamcorper\r \n iaculis\r \n augue vel\r \n consequat.\r \n Etiam\r \n fringilla\r \n euismod\r \n interdum.\r \n Ut molestie\r \n massa id\r \n fringilla\r \n lobortis.\r \n Vestibulum\r \n malesuada,\r \n ante vel\r \n mattis\r \n ultrices,\r \n sem ante\r \n molestie\r \n augue, non\r \n tristique dui\r \n mi non\r \n nibh.\r \n Maecenas\r \n dictum,\r \n sem eget\r \n convallis\r \n rhoncus,\r \n lacus enim\r \n porta\r \n neque, in\r \n posuere dui\r \n ex a sapien.\r \n Nam lacus\r \n nibh,\r \n posuere sed\r \n elit eget,\r \n condimentu\r \n m facilisis\r \n ligula. Cras\r \n consectetur\r \n lacus\r \n ullamcorper\r \n velit aliquet\r \n bibendum\r \n eget vel\r \n nulla.\r \n Aenean\r \n varius ac\r \n erat quis\r \n ullamcorper\r \n . Donec\r \n laoreet arcu\r \n a lorem\r \n volutpat\r \n faucibus.\r \n Vivamus\r \n vehicula leo\r \n ut erat\r \n luctus\r \n scelerisque.\r \n Morbi\r \n posuere ex\r \n et magna\r \n egestas\r \n facilisis.\r \n Fusce\r \n scelerisque\r \n volutpat\r \n erat\r \n bibendum\r \n hendrerit.\r \n Nam blandit\r \n mi ut metus\r \n pulvinar, vel\r \n tempus\r \n lacus\r \n euismod.\r \n Quisque\r \n imperdiet\r \n sit amet\r \n sapien sed\r \n ultricies.\r \n Phasellus\r \n sodales,\r \n ipsum vitae\r \n tincidunt\r \n facilisis,\r \n nulla ligula\r \n faucibus\r \n felis, eget\r \n vehicula\r \n ante lacus\r \n eu lorem.\r \n Integer\r \n congue\r \n diam ac\r \n viverra\r \n tristique.\r \n Curabitur\r \n tristique\r \n dolor quis\r \n quam\r \n pretium, et\r \n scelerisque\r \n quam\r \n dictum.\r \n Maecenas\r \n vitae\r \n sodales\r \n ligula.\r \n Pellentesqu\r \n e maximus\r \n diam vel\r \n porta\r \n convallis. Ut\r \n aliquam\r \n eros quis\r \n porta\r \n pellentesqu\r \n e. Fusce in\r \n ex ut mi\r \n egestas\r \n cursus.\r \n Aliquam\r \n erat\r \n volutpat.\r \n Cras laoreet\r \n condimentu\r \n m laoreet.\r \n Sed eget\r \n facilisis\r \n tellus.\r \n Morbi\r \n viverra odio\r \n sed odio\r \n placerat\r \n mollis. Duis\r \n turpis\r \n metus,\r \n dignissim\r \n varius urna\r \n quis, viverra\r \n dignissim\r \n dui.\r \n Vivamus\r \n viverra at\r \n nisi quis\r \n convallis.\r \n Suspendiss\r \n e fringilla\r \n risus et ante\r \n sollicitudin,\r \n sed eleifend\r \n sem\r \n placerat.\r \n Proin\r \n pretium\r \n blandit\r \n arcu, eget\r \n rhoncus\r \n risus\r \n hendrerit at.\r \n Interdum et\r \n malesuada\r \n fames ac\r \n ante ipsum\r \n primis in\r \n faucibus.\r \n Phasellus\r \n vulputate\r \n efficitur\r \n maximus.\r \n Cras blandit\r \n nulla eu nisi\r \n auctor\r \n tempus.\r \n Sed pretium\r \n lacus ac\r \n magna\r \n vestibulum,\r \n aliquam\r \n faucibus\r \n orci luctus.\r \n Mauris enim\r \n lorem,\r \n varius ut\r \n ante quis,\r \n varius\r \n viverra\r \n lectus.\r \n Fusce\r \n blandit nibh\r \n vel feugiat\r \n efficitur.\r \n Donec\r \n maximus id\r \n justo ac\r \n mollis.\r \n Vestibulum\r \n ante ipsum\r \n primis in\r \n faucibus\r \n orci luctus\r \n et ultrices\r \n posuere\r \n cubilia\r \n curae; Nulla\r \n placerat\r \n lectus et\r \n purus\r \n dictum, id\r \n congue nisi\r \n euismod.\r \n Maecenas\r \n euismod\r \n fermentum\r \n diam, sit\r \n amet\r \n gravida\r \n magna\r \n suscipit a.\r \n Quisque\r \n consectetur\r \n arcu eu\r \n nunc\r \n sodales\r \n scelerisque.\r \n Nulla non\r \n tincidunt\r \n nulla.\r \n Pellentesqu\r \n e ut tortor\r \n vel enim\r \n convallis\r \n malesuada.\r \n Aliquam\r \n ultricies\r \n bibendum\r \n ultrices.\r \n Mauris\r \n rutrum ac\r \n nisl vel\r \n luctus.\r \n Donec quis\r \n nibh vitae\r \n orci ultricies\r \n gravida.\r \n Aliquam\r \n vitae velit\r \n porttitor\r \n lorem\r \n bibendum\r \n fringilla\r \n volutpat a\r \n eros.\r \n Curabitur at\r \n commodo\r \n tortor. Etiam\r \n ultricies,\r \n neque et\r \n iaculis\r \n euismod,\r \n diam ligula\r \n luctus mi,\r \n vitae\r \n lobortis felis\r \n lorem eu\r \n nulla. Sed a\r \n semper ex.\r \n Interdum et\r \n malesuada\r \n fames ac\r \n ante ipsum\r \n primis in\r \n faucibus.\r \n Nulla\r \n mauris elit,\r \n pulvinar ac\r \n tortor et,\r \n luctus\r \n hendrerit\r \n nisl. In\r \n egestas\r \n auctor urna\r \n vitae\r \n laoreet.\r \n Praesent\r \n bibendum\r \n egestas\r \n convallis.\r \n Proin non\r \n suscipit\r \n tellus.\r \n Nullam at\r \n nibh in urna\r \n laoreet\r \n sodales non\r \n vel tellus.\r \n Donec in\r \n enim dui.\r \n Phasellus\r \n quis quam\r \n tincidunt,\r \n pellentesqu\r \n e lorem ac,\r \n scelerisque\r \n neque.\r \n Integer nec\r \n tempus\r \n urna. Donec\r \n elit massa,\r \n eleifend eu\r \n sapien sit\r \n amet,\r \n mollis\r \n pellentesqu\r \n e est.\r \n Nullam\r \n tristique\r \n tellus\r \n iaculis arcu\r \n consectetur\r \n pretium.\r \n Sed\r \n venenatis\r \n convallis\r \n scelerisque.\r \n Suspendiss\r \n e varius\r \n urna sit\r \n amet purus\r \n accumsan,\r \n id ultricies\r \n erat\r \n efficitur.\r \n Cras non\r \n ipsum eget\r \n nulla\r \n efficitur\r \n commodo\r \n sit amet\r \n non lacus.\r \n Proin viverra\r \n enim sit\r \n amet enim\r \n tempus\r \n ullamcorper\r \n . Class\r \n aptent taciti\r \n sociosqu ad\r \n litora\r \n torquent per\r \n conubia\r \n nostra, per\r \n inceptos\r \n himenaeos.\r \n Duis ac\r \n massa\r \n interdum,\r \n gravida ex\r \n egestas,\r \n finibus\r \n purus. Nunc\r \n consectetur\r \n commodo\r \n lacus, ac\r \n convallis\r \n quam\r \n lobortis eu.\r \n Sed\r \n convallis\r \n tempor\r \n commodo.\r \n Nulla sed\r \n convallis\r \n mauris.\r \n Donec\r \n venenatis\r \n nisi est, ac\r \n ullamcorper\r \n mi pretium\r \n quis. Donec\r \n vitae eros at\r \n ipsum\r \n interdum\r \n scelerisque\r \n nec vitae\r \n nisi. Sed\r \n vestibulum\r \n erat ac\r \n bibendum\r \n dapibus.\r \n Morbi nec\r \n elit id quam\r \n tristique\r \n cursus id\r \n sed sem.\r \n Praesent\r \n non ante\r \n enim.\r \n Pellentesqu\r \n e habitant\r \n morbi\r \n tristique\r \n senectus et\r \n netus et\r \n malesuada\r \n fames ac\r \n turpis\r \n egestas.\r \n Praesent\r \n non mauris\r \n dui.\r \n Aliquam\r \n rhoncus\r \n mattis ante\r \n sed\r \n venenatis.\r \n Vivamus\r \n vehicula\r \n sed sapien\r \n sed dictum.\r \n In aliquet,\r \n urna\r \n efficitur\r \n tincidunt\r \n lobortis,\r \n nibh justo\r \n tristique\r \n purus, sed\r \n volutpat\r \n risus magna\r \n et\r \n libero.Susp\r \n endisse\r \n lectus justo,\r \n varius eget\r \n arcu et,\r \n semper\r \n laoreet erat.\r \n Quisque\r \n eget lacus\r \n ornare,\r \n pellentesqu\r \n e erat sit\r \n amet,\r \n vulputate\r \n felis. Duis\r \n luctus,\r \n massa a\r \n pellentesqu\r \n e mollis,\r \n massa elit\r \n convallis\r \n mi, vel\r \n bibendum\r \n ex ex eu\r \n purus.\r \n Suspendiss\r \n e vel\r \n fermentum\r \n urna, ac\r \n commodo\r \n enim.\r \n Mauris\r \n tincidunt\r \n cursus elit,\r \n a volutpat\r \n libero\r \n commodo\r \n et. Etiam\r \n dapibus\r \n libero\r \n venenatis\r \n tellus\r \n lobortis, vel\r \n lacinia elit\r \n faucibus.\r \n Maecenas\r \n semper sed\r \n quam quis\r \n finibus.\r \n Integer\r \n efficitur,\r \n libero\r \n imperdiet\r \n sollicitudin\r \n commodo,\r \n elit arcu\r \n vulputate\r \n est, eget\r \n finibus mi\r \n urna sit\r \n amet\r \n magna.\r \n Cras\r \n ullamcorper\r \n consequat\r \n ornare.\r \n Fusce\r \n convallis\r \n nunc vel\r \n risus\r \n cursus, at\r \n maximus\r \n ligula\r \n cursus.\r \n Pellentesqu\r \n e vulputate\r \n risus libero,\r \n eget cursus\r \n nibh\r \n sodales\r \n sed. Donec\r \n accumsan\r \n sem et\r \n massa\r \n semper, id\r \n dignissim\r \n velit\r \n vehicula.Cr\r \n as cursus\r \n ipsum ac\r \n erat\r \n vehicula,\r \n nec iaculis\r \n purus\r \n dictum.\r \n Quisque\r \n lacinia elit\r \n vitae leo\r \n dictum, vel\r \n dignissim\r \n velit\r \n dapibus.\r \n Aenean sem\r \n nisi,\r \n faucibus\r \n interdum\r \n justo eu,\r \n euismod\r \n porttitor ex.\r \n Morbi et\r \n lectus\r \n lectus. Duis\r \n neque felis,\r \n suscipit at\r \n scelerisque\r \n eu,\r \n scelerisque\r \n id orci.\r \n Curabitur et\r \n placerat\r \n ipsum.\r \n Proin\r \n gravida\r \n sapien nisl,\r \n et varius\r \n ipsum\r \n mollis nec.\r \n Quisque\r \n dignissim\r \n consectetur\r \n feugiat.\r \n Aenean\r \n eros purus,\r \n laoreet\r \n interdum\r \n rutrum at,\r \n aliquet sit\r \n amet\r \n lectus.\r \n Donec\r \n gravida\r \n lorem ut\r \n tincidunt\r \n laoreet.\r \n Donec\r \n consequat\r \n viverra\r \n ligula, in\r \n accumsan\r \n mi\r \n bibendum\r \n scelerisque.\r \n Quisque ac\r \n risus justo.\r \n Morbi\r \n magna\r \n arcu,\r \n egestas nec\r \n luctus\r \n commodo,\r \n cursus eget\r \n nunc.\r \n Vivamus\r \n euismod\r \n lorem ex, et\r \n maximus\r \n felis\r \n hendrerit\r \n eget.\r \n Nullam\r \n ullamcorper\r \n euismod\r \n ligula, et\r \n iaculis\r \n ligula\r \n ultricies a.\r \n Fusce\r \n aliquam,\r \n enim vel\r \n fermentum\r \n ultrices, elit\r \n quam\r \n semper\r \n erat, vitae\r \n semper velit\r \n augue non\r \n magna.Quis\r \n que\r \n maximus\r \n semper\r \n arcu, id\r \n pellentesqu\r \n e est\r \n tempus a.\r \n Phasellus\r \n lacus elit,\r \n auctor sit\r \n amet lacinia\r \n a, dapibus\r \n vitae velit.\r \n Phasellus ut\r \n pharetra\r \n justo, ut\r \n ultricies\r \n erat. Sed\r \n molestie\r \n sapien vel\r \n interdum\r \n lobortis.\r \n Nulla\r \n facilisi.\r \n Vestibulum\r \n ante ipsum\r \n primis in\r \n faucibus\r \n orci luctus\r \n et ultrices\r \n posuere\r \n cubilia\r \n curae; Nulla\r \n nec mauris\r \n quis nisi\r \n vulputate\r \n gravida quis\r \n nec\r \n velit.Nam et\r \n congue\r \n ipsum.\r \n Nulla vel elit\r \n non dolor\r \n mollis\r \n aliquet vel\r \n at magna.\r \n Pellentesqu\r \n e nec\r \n facilisis elit.\r \n In vulputate\r \n quis sem\r \n porta\r \n suscipit.\r \n Nullam sed\r \n ex ornare\r \n nibh\r \n suscipit\r \n mattis quis\r \n non lacus.\r \n Mauris vel\r \n ex urna.\r \n Vivamus\r \n ultricies\r \n sapien sit\r \n amet sapien\r \n vehicula\r \n gravida.\r \n Donec\r \n feugiat\r \n volutpat\r \n quam.\r \n Vestibulum\r \n auctor\r \n dictum nisl,\r \n id hendrerit\r \n metus\r \n ullamcorper\r \n sed. Nulla\r \n maximus\r \n lacus vel\r \n mollis\r \n maximus.\r \n Nulla\r \n laoreet\r \n placerat\r \n quam eu\r \n viverra.\r \n Etiam\r \n feugiat\r \n accumsan\r \n nisl a\r \n condimentu\r \n m. Sed\r \n ultricies\r \n ante ante,\r \n ac auctor\r \n ligula\r \n gravida nec.\r \n Praesent a\r \n neque\r \n dignissim,\r \n sagittis felis\r \n sit amet,\r \n condimentu\r \n m turpis.\r \n Fusce at leo\r \n vel est\r \n blandit\r \n malesuada.\r \n Pellentesqu\r \n e et neque\r \n non metus\r \n pellentesqu\r \n e imperdiet.\r \n Praesent\r \n pellentesqu\r \n e lacinia\r \n lorem, et\r \n tristique\r \n tellus\r \n efficitur id.\r \n Suspendiss\r \n e aliquet\r \n ultricies\r \n justo vitae\r \n interdum.\r \n Cras\r \n tristique\r \n viverra\r \n quam, eget\r \n gravida mi\r \n fermentum\r \n imperdiet.\r \n Sed\r \n imperdiet\r \n vitae purus\r \n ut volutpat.\r \n Nulla\r \n lacinia elit\r \n in\r \n fermentum\r \n consectetur\r \n . Phasellus\r \n commodo\r \n ut nisl sit\r \n amet\r \n sagittis.\r \n Duis ac\r \n ornare orci.\r \n Vivamus vel\r \n enim\r \n posuere,\r \n pharetra ex\r \n vel,\r \n elementum\r \n est.\r \n Vestibulum\r \n commodo\r \n luctus\r \n metus eget\r \n maximus.\r \n Suspendiss\r \n e a nulla a\r \n odio\r \n eleifend\r \n faucibus.\r \n Suspendiss\r \n e semper\r \n lacus non\r \n porttitor\r \n aliquet.\r \n Cras ac\r \n scelerisque\r \n magna, et\r \n pulvinar\r \n justo.\r \n Integer\r \n cursus\r \n pulvinar\r \n fringilla.\r \n Mauris\r \n imperdiet\r \n nibh sit\r \n amet\r \n tempor\r \n laoreet.\r \n Morbi\r \n tincidunt\r \n tortor ex, sit\r \n amet\r \n maximus\r \n purus\r \n tristique\r \n quis.\r \n Quisque\r \n sed\r \n hendrerit\r \n velit. Mauris\r \n mattis nibh\r \n ut eros\r \n luctus, eget\r \n mattis\r \n massa\r \n auctor.\r \n Phasellus\r \n eu neque at\r \n augue\r \n gravida\r \n sagittis nec\r \n non tortor.\r \n Etiam\r \n porttitor\r \n sem\r \n sodales mi\r \n ullamcorper\r \n gravida. In\r \n in dictum\r \n orci. In vitae\r \n vestibulum\r \n quam. Cras\r \n augue eros,\r \n tincidunt ac\r \n elit posuere,\r \n sollicitudin\r \n efficitur\r \n lectus.\r \n Praesent\r \n quis\r \n sodales\r \n nisl. Proin\r \n sit amet\r \n molestie\r \n est. In\r \n commodo\r \n mauris vel\r \n mauris\r \n efficitur,\r \n nec mollis\r \n mauris\r \n sagittis.\r \n Cras ligula\r \n nibh,\r \n egestas sit\r \n amet eros\r \n in, lacinia\r \n tristique\r \n magna.\r \n Cras risus\r \n libero,\r \n lacinia eget\r \n libero vitae,\r \n maximus\r \n aliquet\r \n nibh. Mauris\r \n id sodales\r \n purus, vitae\r \n dictum\r \n lectus. Cras\r \n consectetur\r \n ligula velit,\r \n tempus\r \n pulvinar\r \n lacus\r \n porttitor\r \n vitae.\r \n Phasellus\r \n eget tellus\r \n ipsum.\r \n Donec\r \n interdum\r \n laoreet elit\r \n non\r \n vestibulum.\r \n Cras sed\r \n urna\r \n ullamcorper\r \n , aliquam\r \n erat eget,\r \n porta orci.\r \n Vestibulum\r \n eget congue\r \n nulla. Sed\r \n sem tortor,\r \n euismod at\r \n rutrum id,\r \n sagittis a\r \n nunc. Duis\r \n in nibh\r \n facilisis,\r \n dignissim\r \n purus ut,\r \n hendrerit\r \n magna. Sed\r \n semper\r \n ligula id\r \n massa\r \n elementum,\r \n non\r \n malesuada\r \n velit\r \n egestas.\r \n Nullam\r \n dictum, mi\r \n nec\r \n euismod\r \n sagittis,\r \n ligula leo\r \n ullamcorper\r \n dolor, quis\r \n faucibus\r \n odio metus\r \n eget magna.\r \n Ut gravida\r \n metus non\r \n metus\r \n bibendum\r \n bibendum.\r \n In sagittis\r \n eleifend\r \n aliquet.\r \n Interdum et\r \n malesuada\r \n fames ac\r \n ante ipsum\r \n primis in\r \n faucibus.\r \n Nam mollis\r \n sagittis\r \n felis, in\r \n faucibus\r \n tortor\r \n pretium vel.\r \n Nam nec\r \n enim\r \n metus.\r \n Donec in\r \n augue arcu.\r \n Proin non\r \n lobortis\r \n purus, sit\r \n amet lacinia\r \n elit.\r \n Suspendiss\r \n e quis eros\r \n condimentu\r \n m, blandit\r \n justo sit\r \n amet,\r \n lobortis nisl.\r \n Suspendiss\r \n e maximus\r \n massa sed\r \n urna tempor\r \n ornare.\r \n Nunc\r \n malesuada\r \n purus odio,\r \n eu luctus\r \n lectus\r \n auctor nec.\r \n Morbi\r \n auctor\r \n pellentesqu\r \n e auctor.\r \n Sed\r \n ullamcorper\r \n , ex vitae\r \n aliquam\r \n vulputate,\r \n est diam\r \n feugiat mi,\r \n id porttitor\r \n lectus orci\r \n ac leo.\r \n Donec sit\r \n amet velit\r \n pulvinar,\r \n venenatis\r \n turpis ut,\r \n interdum\r \n ligula.\r \n Interdum et\r \n malesuada\r \n fames ac\r \n ante ipsum\r \n primis in\r \n faucibus.\r \n Vestibulum\r \n eu lacus\r \n urna.\r \n Maecenas\r \n sem nulla,\r \n accumsan\r \n eu ultricies\r \n sed, tempor\r \n vel magna.\r \n Cras aliquet\r \n sollicitudin\r \n sapien ac\r \n pulvinar.\r \n Praesent ac\r \n sodales mi.\r \n Integer vitae\r \n mauris\r \n massa.\r \n Maecenas\r \n iaculis orci\r \n et faucibus\r \n interdum.\r \n Nunc nec\r \n maximus\r \n felis, sed\r \n finibus\r \n quam.\r \n Pellentesqu\r \n e felis\r \n massa,\r \n vestibulum\r \n in tellus\r \n vitae,\r \n congue\r \n tincidunt\r \n justo. Nunc\r \n vitae enim\r \n malesuada,\r \n bibendum\r \n ante nec,\r \n varius\r \n tellus.\r \n Praesent\r \n vitae nisi id\r \n quam\r \n auctor\r \n lacinia at\r \n non quam.\r \n Nam nec\r \n ligula sit\r \n amet felis\r \n auctor\r \n sagittis.\r \n Nunc in\r \n risus eu\r \n urna varius\r \n laoreet quis\r \n sit amet\r \n felis. Morbi\r \n varius\r \n tempor orci,\r \n eu\r \n vestibulum\r \n nunc\r \n vestibulum\r \n ac. Nunc\r \n vehicula\r \n velit\r \n eleifend\r \n consequat\r \n porta.\r \n Suspendiss\r \n e maximus\r \n dapibus\r \n orci, in\r \n vulputate\r \n massa\r \n pretium ac.\r \n Quisque\r \n malesuada\r \n aliquet\r \n aliquet." ;
188218
@@ -229,19 +259,14 @@ public void LoremIpsum20ParagraphsMultipleFragments()
229259
230260 double maxPixelWidth = 72d ;
231261
232- MeasurementFont font = new MeasurementFont ( )
233- {
234- FontFamily = "Aptos Narrow" ,
235- Size = 11 ,
236- Style = MeasurementFontStyles . Regular
237- } ;
238-
239262 List < string > fragments = new List < string > ( ) { Lorem20Str } ;
240- List < MeasurementFont > fonts = new List < MeasurementFont > ( ) { font } ;
263+ List < MeasurementFont > fonts = new List < MeasurementFont > ( ) { mf } ;
241264
242265 //TextFragmentCollectionSimple collection = new TextFragmentCollectionSimple(fonts, fragments);
243266
244- var wrappedStrings = handler . WrapText ( Lorem20Str , maxPixelWidth . PixelToPoint ( ) ) ;
267+ var pointWidth = 54.141732283464566929133858267717f ;
268+
269+ var wrappedStrings = handler . WrapText ( Lorem20Str , pointWidth ) ;
245270 var savedStrings = SavedComparisonString . Split ( "\r \n " ) ;
246271
247272 List < string > differingStrings = new ( ) ;
@@ -256,13 +281,13 @@ public void LoremIpsum20ParagraphsMultipleFragments()
256281 //bool writeFiles = true;
257282
258283 //if (/*differingStrings.Count() > 0*/ writeFiles)
259- //{
260- // File.WriteAllText("C:\\temp\\LoremIpsum20_NEW.txt", string.Join("\r\n", wrappedStrings.ToArray()));
261- // File.WriteAllText("C:\\temp\\LoremIpsum20_OLD.txt", SavedComparisonString);
284+ //// {
285+ File . WriteAllText ( "C:\\ temp\\ LoremIpsum20_NEW.txt" , string . Join ( "\r \n " , wrappedStrings . ToArray ( ) ) ) ;
286+ File . WriteAllText ( "C:\\ temp\\ LoremIpsum20_OLD.txt" , SavedComparisonString ) ;
262287
263- // var currStr = File.ReadAllText("C:\\temp\\LoremIpsum20_NEW.txt");
264- // Assert.AreEqual(SavedComparisonString, currStr);
265- //}
288+ var currStr = File . ReadAllText ( "C:\\ temp\\ LoremIpsum20_NEW.txt" ) ;
289+ Assert . AreEqual ( SavedComparisonString , currStr ) ;
290+ //// }
266291
267292 Assert . AreEqual ( 0 , differingStrings . Count ( ) ) ;
268293 }
0 commit comments