<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://james.newtonking.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>James Newton-King : TextGlow</title><link>http://james.newtonking.com/archive/tags/TextGlow/default.aspx</link><description>Tags: TextGlow</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>TextGlow CodePlex Project</title><link>http://james.newtonking.com/archive/2009/04/19/textglow-codeplex-project.aspx</link><pubDate>Mon, 20 Apr 2009 05:50:27 GMT</pubDate><guid isPermaLink="false">bce7ef4a-1ab4-4a64-ae34-bb54d1362c7e:31641</guid><dc:creator>James Newton-King</dc:creator><slash:comments>1</slash:comments><comments>http://james.newtonking.com/archive/2009/04/19/textglow-codeplex-project.aspx#comments</comments><description>&lt;p&gt;By &lt;a href="http://james.newtonking.com/archive/2009/03/29/textglow-open-sourced.aspx#31632" target="_blank"&gt;popular demand&lt;/a&gt; TextGlow now has a CodePlex Project.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://textglow.codeplex.com/" target="_blank"&gt;&lt;strong&gt;TextGlow CodePlex Project&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Go go forth and, er, collaborate!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;margin-left:0px;border-left-width:0px;margin-right:0px;" title="Professor Frink, Professor Frink, he&amp;#39;ll make you laugh, he&amp;#39;ll make you think, he likes to run, and then the thing, with the... mm-m person..." border="0" alt="Professor Frink, Professor Frink, he&amp;#39;ll make you laugh, he&amp;#39;ll make you think, he likes to run, and then the thing, with the... mm-m person..." src="http://james.newtonking.com/images/TextGlowCodePlexProject_F929/codeplexlogo_thumb.jpg" width="200" height="78" /&gt;&amp;#160;&lt;img style="border-right-width:0px;margin:0px 0px 0px 10px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Brace yourselves gentlemen. According to the gas chromatograph, the secret ingredient is... Love!? Who&amp;#39;s been screwing with this thing?" border="0" alt="Brace yourselves gentlemen. According to the gas chromatograph, the secret ingredient is... Love!? Who&amp;#39;s been screwing with this thing?" src="http://james.newtonking.com/images/TextGlowCodePlexProject_F929/textglow.png" width="218" height="78" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://james.newtonking.com/aggbug.aspx?PostID=31641" width="1" height="1"&gt;</description><category domain="http://james.newtonking.com/archive/tags/TextGlow/default.aspx">TextGlow</category></item><item><title>TextGlow SharePoint Web Part</title><link>http://james.newtonking.com/archive/2009/04/05/textglow-sharepoint-web-part.aspx</link><pubDate>Mon, 06 Apr 2009 02:20:22 GMT</pubDate><guid isPermaLink="false">bce7ef4a-1ab4-4a64-ae34-bb54d1362c7e:31624</guid><dc:creator>James Newton-King</dc:creator><slash:comments>0</slash:comments><comments>http://james.newtonking.com/archive/2009/04/05/textglow-sharepoint-web-part.aspx#comments</comments><description>&lt;p&gt;Jeroen Ritmeijer has taken the &lt;a href="http://james.newtonking.com/archive/2009/03/29/textglow-open-sourced.aspx" target="_blank"&gt;TextGlow source code&lt;/a&gt; and integrated it into a SharePoint web part. Check out the article he wrote about the new web part &lt;a href="http://www.muhimbi.com/blog/2009/04/displaying-ms-word-files-in-sharepoint.html" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img title="I ate the blue ones ... they taste like burning. " style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="668" alt="I ate the blue ones ... they taste like burning. " src="http://james.newtonking.com/images/TextGlowSharePointWebPart_C921/TextGlowSharePoint.jpg" width="604" border="0" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://james.newtonking.com/aggbug.aspx?PostID=31624" width="1" height="1"&gt;</description><category domain="http://james.newtonking.com/archive/tags/.NET/default.aspx">.NET</category><category domain="http://james.newtonking.com/archive/tags/OpenXML/default.aspx">OpenXML</category><category domain="http://james.newtonking.com/archive/tags/TextGlow/default.aspx">TextGlow</category></item><item><title>TextGlow Open Sourced</title><link>http://james.newtonking.com/archive/2009/03/29/textglow-open-sourced.aspx</link><pubDate>Sun, 29 Mar 2009 20:55:35 GMT</pubDate><guid isPermaLink="false">bce7ef4a-1ab4-4a64-ae34-bb54d1362c7e:31602</guid><dc:creator>James Newton-King</dc:creator><slash:comments>14</slash:comments><comments>http://james.newtonking.com/archive/2009/03/29/textglow-open-sourced.aspx#comments</comments><description>&lt;p&gt;&lt;img title="You don’t win friends with salad." style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="163" alt="You don’t win friends with salad." src="http://james.newtonking.com/images/TextGlowOpenSourced_8A75/TextGlow.jpg" width="406" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;The source code for &lt;a href="http://james.newtonking.com/archive/2008/03/06/silverlight-2-0-ooxml-textglow.aspx" target="_blank"&gt;TextGlow&lt;/a&gt;, a Silverlight application I wrote and was launched a year ago at MIX08 to much &lt;a href="http://james.newtonking.com/archive/2008/03/12/textglow-coverage-roundup.aspx" target="_blank"&gt;fanfare&lt;/a&gt;, has been released as open source under the Microsoft Public License.&lt;/p&gt;  &lt;p&gt;TextGlow was one of the first Silverlight 2.0 applications released and it showcased many of the new features and possibilities of Office Open XML and Silverlight.&lt;/p&gt;  &lt;p&gt;The source code for TextGlow has been released along with an article published at OpenXML Developer, &lt;a href="http://openxmldeveloper.com/articles/TextGlow.aspx" target="_blank"&gt;TextGlow - View Open XML Word documents with Silverlight&lt;/a&gt;. The article is a high level overview of the internals of TextGlow to help developers get started with their own applications.&lt;/p&gt;  &lt;p&gt;I feel compelled to put in a disclaimer that the source code is somewhat… rough in certain places. I was the sole developer on the project and had just a couple of months to try and recreate as much as Word as possible. Fighting to keep what I had written against the constant stream of pre-MIX Silverlight 2.0 betas didn’t help either &lt;img src="http://james.newtonking.com/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/p&gt;  &lt;p&gt;You can find a link to the source code at the bottom of the &lt;a href="http://openxmldeveloper.com/articles/TextGlow.aspx" target="_blank"&gt;article&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://james.newtonking.com/aggbug.aspx?PostID=31602" width="1" height="1"&gt;</description><category domain="http://james.newtonking.com/archive/tags/TextGlow/default.aspx">TextGlow</category><category domain="http://james.newtonking.com/archive/tags/Intergen/default.aspx">Intergen</category></item><item><title>TextGlow Coverage Roundup</title><link>http://james.newtonking.com/archive/2008/03/11/textglow-coverage-roundup.aspx</link><pubDate>Tue, 11 Mar 2008 22:08:00 GMT</pubDate><guid isPermaLink="false">bce7ef4a-1ab4-4a64-ae34-bb54d1362c7e:31072</guid><dc:creator>James Newton-King</dc:creator><slash:comments>2</slash:comments><comments>http://james.newtonking.com/archive/2008/03/11/textglow-coverage-roundup.aspx#comments</comments><description>&lt;p&gt;&lt;img src="http://james.newtonking.com/images/TextGlowCoverageRoundup_99D8/textglow.png" style="border-width:0px;" title="Hi. I&amp;#39;m Troy McClure. You may remember me from such self help tapes as &amp;#39;Smoke yourself thin&amp;#39; and &amp;#39;Get some confidence, Stupid!" alt="Hi. I&amp;#39;m Troy McClure. You may remember me from such self help tapes as &amp;#39;Smoke yourself thin&amp;#39; and &amp;#39;Get some confidence, Stupid!" width="189" border="0" height="70" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.textglow.com" target="_blank"&gt;www.textglow.com&lt;/a&gt; - The TextGlow press release displayed in TextGlow (+1 for recursiveness!)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Blog posts&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.intergen.co.nz/Blog/?PostID=34efcef5-c060-40bf-be5c-06ff134fdfd6" target="_blank"&gt;Intergen Blog&lt;/a&gt; - Announcing TextGlow - a world first from Intergen, NZ  &lt;/li&gt;
&lt;li&gt;&lt;a href="http://james.newtonking.com/archive/2008/03/06/silverlight-2-0-ooxml-textglow.aspx" target="_blank"&gt;James Newton-King&lt;/a&gt; - Silverlight 2.0 + OOXML = TextGlow  &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.syringe.net.nz/2008/03/06/Silverlight20OfficeOpenXMLTextGlow.aspx" target="_blank"&gt;Chris Auld&lt;/a&gt; - Silverlight 2.0 + Office Open XML == TextGlow  &lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/tims/archive/2008/03/06/a-great-early-silverlight-2-showcase-textglow.aspx" target="_blank"&gt;Tim Sneath&lt;/a&gt; - A Great Early Silverlight 2 Showcase: TextGlow  &lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.technet.com/gray_knowlton/archive/2008/03/07/silverlight-viewer-for-open-xml.aspx" target="_blank"&gt;Gray Knowlton&lt;/a&gt; - Silverlight viewer for Open XML  &lt;/li&gt;
&lt;li&gt;&lt;a href="http://osrin.net/2008/03/07/new-zealands-intergen-deliver-openxml-viewing-using-silverlight-20/" target="_blank"&gt;Oliver Bell&lt;/a&gt; - New Zealand&amp;rsquo;s Intergen Deliver OpenXML Viewing Using Silverlight  &lt;/li&gt;
&lt;li&gt;&lt;a href="http://gavinb.net/archive/2008/03/07/intergenite-delivers-in-browser-viewer-for-docx.aspx" target="_blank"&gt;Gavin Barron&lt;/a&gt; - Intergenite delivers in browser viewer for docx&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Videos&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://youtube.com/watch?v=Os74kNoQ3y0" target="_blank"&gt;YouTube&lt;/a&gt; - Intergen TextGlow: Open XML Document (DOCX) in Silverlight  &lt;/li&gt;
&lt;li&gt;&lt;a href="http://visitmix.com/blogs/News/Intergen/" target="_blank"&gt;VisitMIX&lt;/a&gt; - Straight from Word to Web without Office: Intergen&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Radio (!?!)&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.radionz.co.nz/audio/national/twu/bits_and_bytes" target="_blank"&gt;Radio NZ&lt;/a&gt; - This Way Up&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;NZ Media&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://computerworld.co.nz/news.nsf/tech/6845F290082F5A7BCC2574030018AD4A" target="_blank"&gt;Computerworld&lt;/a&gt; - Intergen launches new software in Las Vegas  &lt;/li&gt;
&lt;li&gt;&lt;a href="http://computerworld.co.nz/news.nsf/devt/49446C9143581889CC25740B00752786" target="_blank"&gt;Computerworld&lt;/a&gt; - MIX08 &amp;#39;fizzes&amp;#39; over Intergen applications &lt;/li&gt;
&lt;li&gt;&lt;a href="http://james.newtonking.com/blogfiles/textglow/Infotech_TextGlow.pdf" target="_blank"&gt;InfoTech&lt;/a&gt; - Silverlight shed on Word docs  &lt;/li&gt;
&lt;li&gt;&lt;a href="http://james.newtonking.com/blogfiles/textglow/odt_textglow.pdf" target="_blank"&gt;Otago Daily Times&lt;/a&gt; - NZ company launches software in Las Vegas  &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.geekzone.co.nz/content.asp?contentid=7673" target="_blank"&gt;Geekzone&lt;/a&gt; - Intergen releases Office Open XML web application&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(plus lots lots more from around the world)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://james.newtonking.com/aggbug.aspx?PostID=31072" width="1" height="1"&gt;</description><category domain="http://james.newtonking.com/archive/tags/TextGlow/default.aspx">TextGlow</category></item><item><title>Silverlight 2.0 + OOXML = TextGlow</title><link>http://james.newtonking.com/archive/2008/03/06/silverlight-2-0-ooxml-textglow.aspx</link><pubDate>Thu, 06 Mar 2008 10:05:00 GMT</pubDate><guid isPermaLink="false">bce7ef4a-1ab4-4a64-ae34-bb54d1362c7e:31044</guid><dc:creator>James Newton-King</dc:creator><slash:comments>40</slash:comments><comments>http://james.newtonking.com/archive/2008/03/06/silverlight-2-0-ooxml-textglow.aspx#comments</comments><description>&lt;p&gt;&lt;img src="http://james.newtonking.com/images/Silverlight2.0OOXMLTextGlow_141BE/textglow_thumb.png" alt="Let us all bask in television&amp;#39;s warm glowing warming glow." title="Let us all bask in television&amp;#39;s warm glowing warming glow." width="189" align="right" border="0" height="70" /&gt; Over the last couple of months I have had the opportunity to work on an exciting project called &lt;a href="http://www.textglow.net/" target="_blank"&gt;TextGlow&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;TextGlow is a Silverlight 2.0 application for viewing Word 2007 documents on the Internet. With TextGlow it is possible to instantly view a document within a web page, with no Microsoft Office applications installed. Since Silverlight is cross platform the user doesn&amp;#39;t even have to be running Windows!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Demo&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;TextGlow displaying its own press release. Click the fullscreen button (second from the left) for a better view: &lt;/p&gt;
&lt;div id="silverlightControlHost" style="width:644px;height:624px;"&gt; 		
&lt;object data="data:application/x-silverlight," type="application/x-silverlight-2-b1" width="100%" height="100%"&gt;
&lt;param name="source" value="/BlogFiles/TextGlow/TextGlow.Control.xap" /&gt;
&lt;param name="initParams" value="documentPath=/BlogFiles/TextGlow/TextGlow.docx" /&gt;
&lt;param name="background" value="white" /&gt; 			 			&lt;a href="http://go.microsoft.com/fwlink/?LinkID=108182" style="text-decoration:none;"&gt;      			&lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none;" /&gt; 			&lt;/a&gt; 		
&lt;/object&gt;
     &lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;How it Works&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://james.newtonking.com/images/Silverlight2.0OOXMLTextGlow_141BE/150pxSilverlight_1_thumb.png" alt="See those blue and silver guys, Maggie? They&amp;#39;re the Dallas Cowboys. They&amp;#39;re Daddy&amp;#39;s favorite team, and he wants them to lose by at least three points." title="See those blue and silver guys, Maggie? They&amp;#39;re the Dallas Cowboys. They&amp;#39;re Daddy&amp;#39;s favorite team, and he wants them to lose by at least three points." width="100" align="right" border="0" height="111" /&gt; The first step to TextGlow displaying a document is going out and downloading it. TextGlow is a Silverlight application and runs completely client side, and that means it needs a local copy to work with. This process happens automatically using the new &lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.webclient(VS.95).aspx" target="_blank"&gt;WebClient&lt;/a&gt; class in Silverlight 2.0. Like you would expect from a class called WebClient it provides simple web request, but what makes WebClient great are the download progress events it provides. Making a progress bar to show the status of a download is a snap.&lt;/p&gt;
&lt;p&gt;Next the various files inside the document are extracted. An OOXML document (docx) is actually just a zip file containing XML and other resource files, such as any images that might appear in the document. Fortunately Silverlight has built in zip file support using the &lt;a href="http://msdn2.microsoft.com/en-us/library/cc190632(VS.95).aspx" target="_blank"&gt;Application.GetResourceStream&lt;/a&gt; method.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://james.newtonking.com/images/Silverlight2.0OOXMLTextGlow_141BE/openxmldeveloper_thumb.gif" alt="I bent my Wookie." title="I bent my Wookie." width="240" align="right" border="0" height="64" /&gt;Now that TextGlow has the OOXML it parses the XML and builds an object model of the document. To parse the XML I used &lt;a href="http://go.microsoft.com/fwlink/?LinkId=109813" target="_blank"&gt;LINQ to XML&lt;/a&gt;, which is new in Silverlight 2.0. After an initial learning curve (mainly suppressing the memory of many years of working with horrible DOM APIs &lt;img src="http://james.newtonking.com/emoticons/emotion-5.gif" alt="Wink" /&gt;), I found LINQ to XML to be wonderful to work with. I blogged about a couple of the &lt;a href="http://james.newtonking.com/archive/2007/12/11/linq-to-xml-over-large-documents.aspx"&gt;cool features&lt;/a&gt; I discovered while working with LINQ to XML along the way.&lt;/p&gt;
&lt;p&gt;Using the object model of the document TextGlow then creates WPF controls to display the content. Writing custom Silverlight WPF controls to render the content was definitely the hardest aspect of the project. When I started work on it with the Silverlight 1.1 Alpha there were no layout controls like StackPanel or Grid. Everything was absolutely position and I had to write my own flow layout controls. Paragraphs and complex flowing text was also surprisingly difficult to get right in Silverlight. Fortunatly Silverlight 2.0 includes controls like these and makes writing an application like TextGlow much easier.&lt;/p&gt;
&lt;p&gt;The final step in display a document is simply WPF plying its magic and rendering the WPF controls. The user now has the Word 2007 document render on their screen using nothing but the power of Silverlight.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Thanks to...&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;TextGlow has be a great application to work on and it was awesome being able to design and build my own idea.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href="http://naskhan.com/" target="_blank"&gt;Nas&lt;/a&gt; for mocking up the UI. If the UI was left up to me TextGlow would make Notepad look good &lt;img src="http://james.newtonking.com/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/p&gt;
&lt;p&gt;Big thanks to &lt;a href="http://www.syringe.net.nz/" target="_blank"&gt;Chris Auld&lt;/a&gt; for providing a launch pad for the idea and then providing regular injections of enthusiasm into the project.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you&amp;#39;re interested in seeing more of TextGlow, visit &lt;a href="http://www.textglow.com" target="_blank"&gt;www.textglow.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fjames.newtonking.com%2farchive%2f2008%2f03%2f06%2fsilverlight-2-0-ooxml-textglow.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fjames.newtonking.com%2farchive%2f2008%2f03%2f06%2fsilverlight-2-0-ooxml-textglow.aspx" alt="kick it on DotNetKicks.com" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Update:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a target="_blank" href="http://james.newtonking.com/archive/2009/03/29/textglow-open-sourced.aspx"&gt;TextGlow Open Sourced&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://james.newtonking.com/aggbug.aspx?PostID=31044" width="1" height="1"&gt;</description><category domain="http://james.newtonking.com/archive/tags/.NET/default.aspx">.NET</category><category domain="http://james.newtonking.com/archive/tags/OpenXML/default.aspx">OpenXML</category><category domain="http://james.newtonking.com/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://james.newtonking.com/archive/tags/TextGlow/default.aspx">TextGlow</category></item></channel></rss>