<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.atalasoft.com/cs/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>Lou Franco's ECM Imaging Blog</title><link>http://www.atalasoft.com/cs/blogs/loufranco/default.aspx</link><description>ECM Imaging News, Technologies, and Opinion</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>31 Apps in 31 Days is Launched</title><link>http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/05/01/31-apps-in-31-days-is-launched.aspx</link><pubDate>Thu, 01 May 2008 18:46:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:13853</guid><dc:creator>loufranco</dc:creator><slash:comments>0</slash:comments><comments>http://www.atalasoft.com/cs/blogs/loufranco/comments/13853.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/loufranco/commentrss.aspx?PostID=13853</wfw:commentRss><description>&lt;p&gt;Today, we launched &lt;a href="http://www.atalasoft.com/cs/blogs/31appsin31days/default.aspx"&gt;31 Apps in 31 days&lt;/a&gt;, where the engineers at Atalasoft are going to deliver one application made with &lt;a href="http://www.atalasoft.com/products/dotimage"&gt;DotImage&lt;/a&gt; each day in May (including weekends).&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.atalasoft.com/cs/blogs/stevehawley/"&gt;Steve&lt;/a&gt; is first up with a &lt;a href="http://www.atalasoft.com/cs/blogs/31appsin31days/archive/2008/05/01/Get-Motivated.aspx"&gt;Motivational Poster generator&lt;/a&gt;. At Atalasoft, if you break the build, you own the build chicken until you fix it. The transfer of the chicken is announced with a blood-curdling chicken scream.&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.atalasoft.com/cs/photos/loufranco/picture13852.aspx"&gt;&lt;img src="http://www.atalasoft.com/cs/photos/loufranco/images/13852/425x340.aspx"&gt;&lt;/a&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I feel motivated already (mmmmm..... Dropped caps). &lt;br&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/05/01/31-apps-in-31-days-is-launched.aspx&amp;amp;;subject=31+Apps+in+31+Days+is+Launched" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/05/01/31-apps-in-31-days-is-launched.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/05/01/31-apps-in-31-days-is-launched.aspx&amp;amp;;title=31+Apps+in+31+Days+is+Launched" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/05/01/31-apps-in-31-days-is-launched.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/05/01/31-apps-in-31-days-is-launched.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/05/01/31-apps-in-31-days-is-launched.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/05/01/31-apps-in-31-days-is-launched.aspx&amp;amp;title=31+Apps+in+31+Days+is+Launched" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/05/01/31-apps-in-31-days-is-launched.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/05/01/31-apps-in-31-days-is-launched.aspx&amp;amp;;title=31+Apps+in+31+Days+is+Launched" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/05/01/31-apps-in-31-days-is-launched.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/05/01/31-apps-in-31-days-is-launched.aspx&amp;amp;;title=31+Apps+in+31+Days+is+Launched&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/05/01/31-apps-in-31-days-is-launched.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=13853" width="1" height="1"&gt;</description></item><item><title>Writing Code 39 Barcodes with Javascript</title><link>http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/25/writing-code-39-barcodes-with-javascript.aspx</link><pubDate>Fri, 25 Apr 2008 16:01:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:13760</guid><dc:creator>loufranco</dc:creator><slash:comments>3</slash:comments><comments>http://www.atalasoft.com/cs/blogs/loufranco/comments/13760.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/loufranco/commentrss.aspx?PostID=13760</wfw:commentRss><description>&lt;p&gt;I previously showed how easy it is to &lt;a href="http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/24/code-39-barcode-generation.aspx"&gt;generate Code 39 Barcodes using DotImage&lt;/a&gt;, now I want to show you how to do it in pure JavaScript.&lt;/p&gt;

&lt;p&gt;I wanted to make it easy to deploy so I don't use images. Luckily, 1D barcodes are easy to make with just colored table cells, so I just generate a one row table with a column for each bar.&amp;nbsp; I set the width of the column to be the width of the bar and then color it either black or white. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;Here's a page where you &lt;a href="http://www.atalasoft.com/products/dotimage/barcodewriterdemo.aspx"&gt;generate barcodes with just JavaScript&lt;/a&gt;. The code is attached to this entry.&lt;/p&gt;&lt;p&gt;To use it, just add Barcode.js to your site, include it in a script tag, then use the AtalasoftBarcode39 object to draw the barcode (there is a file called BarcodeTest.html in the zip file to show an example).&amp;nbsp; Here's some sample code&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&amp;lt;script src="Barcode.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br&gt;function writeBC(s)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var bc = new AtalasoftBarcode39(s);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById('bcArea').innerHTML =&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; bc.getBarcode(50, 2, 8);&lt;br&gt;}&lt;/p&gt;&lt;p&gt;writeBC("ABC123")&lt;br&gt;&amp;lt;/script&amp;gt; &lt;/p&gt;&lt;p&gt;&amp;lt;div id="bcArea"&amp;gt;&amp;lt;/div&amp;gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The three arguments to getBarcode are the height and the widths of the narrow bars, and the width of the wide bars.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/25/writing-code-39-barcodes-with-javascript.aspx&amp;amp;;subject=Writing+Code+39+Barcodes+with+Javascript" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/25/writing-code-39-barcodes-with-javascript.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/25/writing-code-39-barcodes-with-javascript.aspx&amp;amp;;title=Writing+Code+39+Barcodes+with+Javascript" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/25/writing-code-39-barcodes-with-javascript.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/25/writing-code-39-barcodes-with-javascript.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/25/writing-code-39-barcodes-with-javascript.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/25/writing-code-39-barcodes-with-javascript.aspx&amp;amp;title=Writing+Code+39+Barcodes+with+Javascript" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/25/writing-code-39-barcodes-with-javascript.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/25/writing-code-39-barcodes-with-javascript.aspx&amp;amp;;title=Writing+Code+39+Barcodes+with+Javascript" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/25/writing-code-39-barcodes-with-javascript.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/25/writing-code-39-barcodes-with-javascript.aspx&amp;amp;;title=Writing+Code+39+Barcodes+with+Javascript&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/25/writing-code-39-barcodes-with-javascript.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=13760" width="1" height="1"&gt;</description><enclosure url="http://www.atalasoft.com/cs/blogs/loufranco/attachment/13760.ashx" length="1367" type="application/zip" /></item><item><title>Technogically savvy photographers</title><link>http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/24/technogically-savvy-photographers.aspx</link><pubDate>Thu, 24 Apr 2008 14:16:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:13757</guid><dc:creator>loufranco</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/loufranco/comments/13757.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/loufranco/commentrss.aspx?PostID=13757</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.atalasoft.com/cs/controlpanel/blogs/"&gt;&lt;/a&gt;I just noticed this blog entry from &lt;a href="http://www.picturetom.com/2007/12/11/digital-imaging-and-professional-photographers-infotrends-2007-survey-results/"&gt;picturetom&lt;/a&gt; pointing to an interesting study on &lt;a href="http://store.infotrendsresearch.com/product_p/84509.htm"&gt;trends in digital photography&lt;/a&gt; available for purchase from InfoTrends.&lt;/p&gt;&lt;p&gt;One of our customers, &lt;a href="http://www.cardinalphoto.com/"&gt;David Cardinal&lt;/a&gt; from &lt;a href="http://www.proshooters.com/"&gt;ProShooters&lt;/a&gt;, fits this bill:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;‘Today´s photographers are technologically savvy, as a significant
majority is using image editing software and many are using RAW
conversion and color management software’, commented Ed Lee, Director
at InfoTrends.&lt;br&gt;&lt;br&gt;
‘It´s particularly interesting to note that 83% of professional
photographers are using the Web as part of their business and about 30%
use an online photo service provider. This suggests that a variety of
Web services providers could see future growth opportunities.’ &lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;David is a photographer who can code and about a year ago wrote a &lt;a href="http://www.ddj.com/windows/199204018"&gt;review on choosing an imaging toolkit&lt;/a&gt; (ours) for Dr. Dobb's. &lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;At Pro Shooters (www.proshooters.com), our primary product is
DigitalPro for Windows, an image-management system for digital
photographers. We sell to serious photographers who have large image
libraries and often need to process hundreds or even thousands of
images at a time. As a result, we serve a niche market and can only
afford a small programming team. That means we need to be more
productive than the competition to stay ahead. So, instead of trying to
do everything ourselves, we rely on tools such as third-party libraries
in areas where we can find excellent tools that don't compromise on
quality and features.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;David also pushes us to continually expand our RAW support (mostly supporting more and more cameras) -- DotImage 6.0 and the upcoming 6.0b both have support for more cameras than previous releases.&lt;br&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/24/technogically-savvy-photographers.aspx&amp;amp;;subject=Technogically+savvy+photographers" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/24/technogically-savvy-photographers.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/24/technogically-savvy-photographers.aspx&amp;amp;;title=Technogically+savvy+photographers" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/24/technogically-savvy-photographers.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/24/technogically-savvy-photographers.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/24/technogically-savvy-photographers.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/24/technogically-savvy-photographers.aspx&amp;amp;title=Technogically+savvy+photographers" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/24/technogically-savvy-photographers.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/24/technogically-savvy-photographers.aspx&amp;amp;;title=Technogically+savvy+photographers" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/24/technogically-savvy-photographers.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/24/technogically-savvy-photographers.aspx&amp;amp;;title=Technogically+savvy+photographers&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/24/technogically-savvy-photographers.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=13757" width="1" height="1"&gt;</description><category domain="http://www.atalasoft.com/cs/blogs/loufranco/archive/tags/Atalasoft/default.aspx">Atalasoft</category></item><item><title>Improving OCR Accuracy</title><link>http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/18/improving-ocr-accuracy.aspx</link><pubDate>Fri, 18 Apr 2008 18:50:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:13718</guid><dc:creator>loufranco</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/loufranco/comments/13718.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/loufranco/commentrss.aspx?PostID=13718</wfw:commentRss><description>&lt;p&gt;OCR Engines are very good at reading text from clean machine print documents. If you have older scans or if the documents are not meant to be easily read by a machine, there are still some things you can do to improve your accuracy.&lt;/p&gt;&lt;p&gt;This report from the GPO on &lt;a href="http://www.gpo.gov/projects/pdfs/WhitePaper-OptimizingOCRAccuracy.pdf"&gt;Optimizing OCR Accuracy&lt;/a&gt; made some interesting findings, but also some errors which I will try to explain.&lt;/p&gt;&lt;p&gt;The report cites that thresholding the documents didn't improve accuracy and shows this result:&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.atalasoft.com/cs/photos/loufranco/images/13716/original.aspx" hspace="5"&gt; The issue is not that thresholding wouldn't help. In fact, since most OCR engines can only work on thresholded documents, they will do it for you if you do not. They are right to point out that the scans should be done at full color -- but that's because you then get a chance to apply the thresholding yourself (instead of letting the scanner do it). If you use a good thresholding algorithm, you can do quite a bit better.&lt;/p&gt;&lt;p&gt;Using DynamicThresholdCommand from &lt;a href="http://www.atalasoft.com/products/dotimage/documentimaging/"&gt;DotImage Document Imaging&lt;/a&gt; and SpeckRemovalCommand from &lt;a href="http://www.atalasoft.com/products/dotimage/adc/"&gt;Advanced Document Cleanup&lt;/a&gt; with default parameters, I got this result:&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.atalasoft.com/cs/photos/loufranco/images/13717/425x322.aspx" height="322" hspace="5" width="425"&gt;&lt;/p&gt;&lt;p&gt;I don't have the original, so I cannot check OCR accuracy, but I bet I will get a better result than they found using the default threshold in Photoshop. In any case, a threshold must be done before OCR, so either you do it under your control or the OCR engine will do it for you.&lt;br&gt;&lt;/p&gt;&lt;p&gt;Another problem they found is with downsampling. They had scans at high DPI, but the OCR vendor recommendation was for 300 DPI so they downsampled. I am sure that the OCR vendor meant &lt;span style="font-style:italic;"&gt;at least&lt;/span&gt; 300 DPI, and they did not have to do this. It is sure that you will reduce OCR accuracy with downsampling as you have to lose information in downsampling. Even if you do apply it, you must make sure to choose a good algorithm -- there are benefits to downsampling (increased speed), but if accuracy is the main concern, then you should not do it.&lt;/p&gt;&lt;p&gt;The use of image processing before OCR can increase accuracy, but you must use the proper algorithm. A limiting factor of their tests is that applied their pre-preprocessing steps manually with Photoshop and therefore could not try a lot of different options. By using an image processing toolkit, you can easily run a lot of tests in batch. You are essentially solving an optimization problem, so applying a hill-climbing or genetic algorithm would help decide the best processing choice for your collection of documents.&lt;br&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/18/improving-ocr-accuracy.aspx&amp;amp;;subject=Improving+OCR+Accuracy" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/18/improving-ocr-accuracy.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/18/improving-ocr-accuracy.aspx&amp;amp;;title=Improving+OCR+Accuracy" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/18/improving-ocr-accuracy.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/18/improving-ocr-accuracy.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/18/improving-ocr-accuracy.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/18/improving-ocr-accuracy.aspx&amp;amp;title=Improving+OCR+Accuracy" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/18/improving-ocr-accuracy.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/18/improving-ocr-accuracy.aspx&amp;amp;;title=Improving+OCR+Accuracy" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/18/improving-ocr-accuracy.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/18/improving-ocr-accuracy.aspx&amp;amp;;title=Improving+OCR+Accuracy&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/18/improving-ocr-accuracy.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=13718" width="1" height="1"&gt;</description></item><item><title>Book Review: ADO.NET 3.5 Cookbook</title><link>http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/14/book-review-ado-net-3-5-cookbook.aspx</link><pubDate>Mon, 14 Apr 2008 12:10:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:13682</guid><dc:creator>loufranco</dc:creator><slash:comments>0</slash:comments><comments>http://www.atalasoft.com/cs/blogs/loufranco/comments/13682.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/loufranco/commentrss.aspx?PostID=13682</wfw:commentRss><description>&lt;p&gt;&lt;i&gt;(Full Disclosure: I was a tech reviewer for this book and received a free copy)&lt;/i&gt;&lt;/p&gt;&lt;img src="http://www.atalasoft.com/cs/photos/loufranco/images/13681/original.aspx" title="ADO.NET 3.5 Cookbook" alt="ADO.NET 3.5 Cookbook" align="right" height="236" hspace="5" width="180"&gt;&lt;p&gt;I read the &lt;a href="http://www.oreilly.com/catalog/9780596101404/index.html"&gt;ADO.NET 3.5 Cookbook&lt;/a&gt; last November coincidentally while I was writing automatic image fetching from SQL Server and OleDB databases into &lt;a href="http://www.atalasoft.com/Products/DotImage/Default.aspx"&gt;DotImage 6.0&lt;/a&gt; (DbImageSoruce).&lt;/p&gt;&lt;p&gt;I've been using the various incarnations of Microsoft data access technologies for quite some time and have been using ADO.NET for a few years, so I wondered whether I was going to learn anything new from this book. It covers all of the territory to get started (connection strings, basic usage of ADO.NET classes, etc.), but what I really appreciated was that it topics that advanced ADO.NET users would find useful and I certainly learned a few new tricks.&lt;/p&gt;&lt;p&gt;The topic on writing provider and database independent code (Section 10.22) which covers how to do it right if you are targeting .NET 1.1 (which we do) was particularly useful to me. Chapter 10 (Optimizing .NET Data Access) is just generally a good chapter no matter what your level and covers asynchronous SQL calls (executing and cancelling), ASP.NET data caching, paging queries, SQL Server stored procedure debugging and more.&lt;/p&gt;&lt;p&gt;The other thing I liked was the general best practices advice that was sprinkled into the recipes in appropriate places. If you are new to writing DB code, read the "Storing Connection Strings" section (1.1) carefully so that you do it correctly. Bill not only explains how, but why. And since this is the first recipe, it sets the tone for the rest of the book as being practical ("here's the code"), but also gives you the background to understand it.&lt;br&gt;&lt;/p&gt;&lt;p&gt;Since my job was to actually run every code snippet, I can vouch for their quality. Most are built off the AdventureWorks sample database that comes with SQL Server Express, so they are ready to run. The rest come with full DDL to create what you need (databases, stored procedures, etc), and the code and SQL is &lt;a href="http://www.oreilly.com/catalog/9780596101404/"&gt;available online&lt;/a&gt; so you don't have to type it in.&lt;/p&gt;&lt;p&gt;And, of course, since it's updated for ADO.NET 3.5, it includes information on LINQ and SQL Server 2008.&amp;nbsp;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/14/book-review-ado-net-3-5-cookbook.aspx&amp;amp;;subject=Book+Review%3a+ADO.NET+3.5+Cookbook" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/14/book-review-ado-net-3-5-cookbook.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/14/book-review-ado-net-3-5-cookbook.aspx&amp;amp;;title=Book+Review%3a+ADO.NET+3.5+Cookbook" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/14/book-review-ado-net-3-5-cookbook.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/14/book-review-ado-net-3-5-cookbook.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/14/book-review-ado-net-3-5-cookbook.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/14/book-review-ado-net-3-5-cookbook.aspx&amp;amp;title=Book+Review%3a+ADO.NET+3.5+Cookbook" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/14/book-review-ado-net-3-5-cookbook.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/14/book-review-ado-net-3-5-cookbook.aspx&amp;amp;;title=Book+Review%3a+ADO.NET+3.5+Cookbook" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/14/book-review-ado-net-3-5-cookbook.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/14/book-review-ado-net-3-5-cookbook.aspx&amp;amp;;title=Book+Review%3a+ADO.NET+3.5+Cookbook&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/14/book-review-ado-net-3-5-cookbook.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=13682" width="1" height="1"&gt;</description></item><item><title>RTC Events</title><link>http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/11/rtc-events.aspx</link><pubDate>Fri, 11 Apr 2008 17:19:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:13673</guid><dc:creator>loufranco</dc:creator><slash:comments>0</slash:comments><comments>http://www.atalasoft.com/cs/blogs/loufranco/comments/13673.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/loufranco/commentrss.aspx?PostID=13673</wfw:commentRss><description>&lt;p&gt;If you are in the Springfield, Massachusetts area, you might want to check out the &lt;a href="http://rtacentral.com"&gt;RTC&lt;/a&gt;. Today, I attended an event that they put together, called &lt;a href="http://rtacentral.com/featured_event.php?ID=74"&gt;Breaking Through: IT-Enabled Business Opportunities&lt;/a&gt;. The next one builds on some of the ideas in it, and is on &lt;a href="http://rtacentral.com/featured_event.php?ID=76"&gt;Social Networks&lt;/a&gt; (May 2nd).&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.paulgillin.com/"&gt;Paul Gillin&lt;/a&gt; gave the keynote about the new influencers (bloggers, online-communities and social networks). He offered some examples as inspiration for trying to use these phenomenons as an alternative to mass-media and traditional advertising based campaigns (&lt;a href="http://www.youtube.com/watch?v=qg1ckCkm8YI"&gt;Will it Blend&lt;/a&gt;). He also gave some examples of what the new influencers can do if you get things wrong (&lt;a href="http://www.youtube.com/watch?v=xmpDSBAh6RY&amp;amp;feature=related"&gt;AOL Hell&lt;/a&gt;), and what you can do if it happens to you (respond quickly).&lt;br&gt;&lt;/p&gt;&lt;p&gt;The panel brought together some IT executives to talk about key IT trends. On the ECM Imaging front, many of the participants mentioned Document Imaging as a key initiative. Drivers for that included increasing productivity, cutting costs (and paper), collaboration and a key issue was searchability of the resulting repository.&lt;br&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/11/rtc-events.aspx&amp;amp;;subject=RTC+Events" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/11/rtc-events.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/11/rtc-events.aspx&amp;amp;;title=RTC+Events" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/11/rtc-events.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/11/rtc-events.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/11/rtc-events.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/11/rtc-events.aspx&amp;amp;title=RTC+Events" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/11/rtc-events.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/11/rtc-events.aspx&amp;amp;;title=RTC+Events" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/11/rtc-events.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/11/rtc-events.aspx&amp;amp;;title=RTC+Events&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/11/rtc-events.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=13673" width="1" height="1"&gt;</description></item><item><title>31 Apps in 31 Days</title><link>http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/10/31-apps-in-31-days.aspx</link><pubDate>Thu, 10 Apr 2008 15:56:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:13667</guid><dc:creator>loufranco</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/loufranco/comments/13667.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/loufranco/commentrss.aspx?PostID=13667</wfw:commentRss><description>&lt;p&gt;Next month, Atalasoft is going to deliver 31 Apps in 31 Days (one for each day in May). We are inviting anyone outside of Atalasoft that wants to participate to submit applications. We're looking for small, useful desktop applications that use DotImage and that you are willing to distribute for free (you can have an upgrade to a pay version).&lt;br&gt;&lt;/p&gt;&lt;p&gt;Applications submitted by non-Atalasoft employees are eligible for a prize. If you want to join in, go the to the &lt;a href="http://www.atalasoft.com/events/31AppsIn31Days/"&gt;31 Apps sign up page&lt;/a&gt; and we'll tell you how to submit your entry.&lt;br&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/10/31-apps-in-31-days.aspx&amp;amp;;subject=31+Apps+in+31+Days" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/10/31-apps-in-31-days.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/10/31-apps-in-31-days.aspx&amp;amp;;title=31+Apps+in+31+Days" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/10/31-apps-in-31-days.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/10/31-apps-in-31-days.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/10/31-apps-in-31-days.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/10/31-apps-in-31-days.aspx&amp;amp;title=31+Apps+in+31+Days" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/10/31-apps-in-31-days.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/10/31-apps-in-31-days.aspx&amp;amp;;title=31+Apps+in+31+Days" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/10/31-apps-in-31-days.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/10/31-apps-in-31-days.aspx&amp;amp;;title=31+Apps+in+31+Days&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/10/31-apps-in-31-days.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=13667" width="1" height="1"&gt;</description></item><item><title>What Code Camp gets right</title><link>http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/08/what-code-camp-gets-right.aspx</link><pubDate>Tue, 08 Apr 2008 12:10:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:13645</guid><dc:creator>loufranco</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/loufranco/comments/13645.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/loufranco/commentrss.aspx?PostID=13645</wfw:commentRss><description>&lt;p&gt;So, &lt;a href="http://www.atalasoft.com/cs/blogs/rickm/archive/2008/04/07/code-camp-9-in-waltham-a-retrospective.aspx"&gt;Rick&lt;/a&gt;, &lt;a href="http://www.atalasoft.com/cs/blogs/jake/archive/2008/04/07/code-camp-9-thoughts-and-impressions.aspx"&gt;Jacob&lt;/a&gt;, &lt;a href="http://www.atalasoft.com/cs/blogs/insertqualityhere/archive/2008/04/07/code-camp-shananagins.aspx"&gt;Adam&lt;/a&gt; and &lt;a href="http://www.atalasoft.com/cs/blogs/support/archive/2008/04/07/code-camp-9-the-legal-kill-limit-on-campers-has-been-raised-to-three.aspx"&gt;Elaine&lt;/a&gt; have all given their impressions. I guess I should chime in.&lt;/p&gt;&lt;p&gt;The thing that struck me about Code Camp is that with a couple of people organizing, some sponsors and volunteer speakers, you can put on a technical conference that just blows away what's out there. Sure, the food could be better (how would you feed 500+ people on a budget? Pizza!), and everyone sure would want access to wifi, but here's what I think Code Camp gets right.&lt;/p&gt;&lt;p&gt;1. Free. For someone who has to manage a budget, this makes the decision easy. We put up five developers in a hotel in Boston and took them out to dinner, and it still cost less than sending just one developer to a standard conference.&lt;br&gt; &lt;/p&gt;&lt;p&gt;2. Hardly any vendor presentations (if any). The &lt;a href="http://thedevcommunity.org/CodeCamps/Manifesto.aspx"&gt;Code Camp manifesto&lt;/a&gt; makes it very hard (all code must be free). I gave a presentation on writing cmdlets in Powershell.&amp;nbsp; To do that, I needed some interesting .NET objects to wrap, so I chose DotImage -- however, I don't think anyone would think I was hawking DotImage -- but, just to make sure, we gave away free copies of &lt;a href="http://www.atalasoft.com/products/dotimage/photo/"&gt;DotImage Photo&lt;/a&gt; so that all of the people that came to the talk can run &lt;a href="http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/06/my-notes-for-extending-powershell-to-do-image-processing.aspx"&gt;my&lt;/a&gt; &lt;a href="http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/07/my-notes-for-extending-powershell-to-do-image-processing-part-ii.aspx"&gt;code&lt;/a&gt;. (fully functioning copies, not evals). Ok, I guess showing MS tools and API's are vendor presentations, but most of that is available for free too.&lt;/p&gt;&lt;p&gt;Vendors need to be very careful about just giving demos at conferences -- look at what &lt;a href="http://groups.google.com/group/comp.lang.python/browse_thread/thread/2b6cb0e7245347be"&gt;Bruce Eckels had to say about the last Pycon&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;I believe that this year's Pycon organizers suffered from inexperience and naivete, because they didn't know that some vendors will ask for anything just to see how far they can push it. And that it's a negotiation, that you must push back rather than give in just because the conference might get some money for it. More importantly, that the imperative to grow Pycon does not mean "at all costs." I've already spoken to more than one vendor who was dismayed by the state of things, so we are not talking about all vendors here by any means.&lt;br&gt;&lt;br&gt;At first the morning plenary sessions -- where the entire conference audience was in a single room -- just seemed a bit commercial. But then I slowly figured out that the so-called "diamond keynotes" were actually sold to vendors. It must have sounded great to some vendors: you get to pitch to everyone and nothing else is going on so the audience is trapped. &lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;From what I saw at AjaxWorld last year and heard from this year's -- they are also leaning more towards vendor presentations. Code Camp presentations (even by vendors or authors selling books) were full of useful content -- I never felt like I was being sold to.&lt;br&gt;&lt;/p&gt;&lt;p&gt;3. Very developer centric -- all attendees were invited to give presentations -- this is the perfect place to get some practice giving talks. Most presentations showed code and built something in the time allotted. I saw a game built in XNA, an IronPyton extension added to a .NET application, a bunch of useful HTTP Handlers and modules built from scratch, and a lot more.&lt;br&gt;&lt;/p&gt;&lt;p&gt;4. Access to experts -- I have pages of notes for ideas for how to improve our product and process at Atalasoft. Michael Cummings told me about &lt;a href="http://www.almostserio.us/articles/2006/03/09/using-internals-across-assemblies"&gt;InternalsVisibleTo&lt;/a&gt;, which alone was worth spending the weekend in Waltham. I got a chance to talk to Edwin Ames after seeing his presentation on &lt;a href="http://thedevcommunity.org/Events/PresentationSummary.aspx?id=188&amp;amp;pid=238"&gt;TDD, Behavior Driven Development and mocking frameworks&lt;/a&gt;, and he told me more about &lt;a href="http://sourceforge.net/projects/nmock2/"&gt;NMock2&lt;/a&gt; and &lt;a href="http://www.ayende.com/projects/rhino-mocks/downloads.aspx"&gt;Rhino&lt;/a&gt;. I got some info on &lt;a href="http://blogs.msdn.com/pedram/archive/2007/06/04/store-any-data-in-sql-server-2008-katmai.aspx"&gt;FileSystem fields in SQL Server 2008&lt;/a&gt; from &lt;a href="http://www.itandm.com/Blog/tabid/68/Default.aspx"&gt;Matthew Roche&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/08/what-code-camp-gets-right.aspx&amp;amp;;subject=What+Code+Camp+gets+right" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/08/what-code-camp-gets-right.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/08/what-code-camp-gets-right.aspx&amp;amp;;title=What+Code+Camp+gets+right" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/08/what-code-camp-gets-right.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/08/what-code-camp-gets-right.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/08/what-code-camp-gets-right.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/08/what-code-camp-gets-right.aspx&amp;amp;title=What+Code+Camp+gets+right" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/08/what-code-camp-gets-right.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/08/what-code-camp-gets-right.aspx&amp;amp;;title=What+Code+Camp+gets+right" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/08/what-code-camp-gets-right.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/08/what-code-camp-gets-right.aspx&amp;amp;;title=What+Code+Camp+gets+right&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/08/what-code-camp-gets-right.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=13645" width="1" height="1"&gt;</description></item><item><title>My notes for Extending Powershell to do Image Processing, Part II</title><link>http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/07/my-notes-for-extending-powershell-to-do-image-processing-part-ii.aspx</link><pubDate>Mon, 07 Apr 2008 11:20:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:13626</guid><dc:creator>loufranco</dc:creator><slash:comments>3</slash:comments><comments>http://www.atalasoft.com/cs/blogs/loufranco/comments/13626.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/loufranco/commentrss.aspx?PostID=13626</wfw:commentRss><description>&lt;P&gt;Ok, here's how you create a CmdLet that uses DotImage:&lt;/P&gt;1 Download the attached zip open the solution&lt;BR&gt;
&lt;P&gt;2. Build it -- my dll is named AtalasoftSnapin.dll&lt;/P&gt;
&lt;P&gt;&lt;I&gt;Here is the code for GetImage.cs, the implementation of the get-image cmdlet&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt; System;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt; System.ComponentModel;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt; System.Management.Automation;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt; Atalasoft.Imaging;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;namespace&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt; Atalasoft.Commands&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="COLOR:green;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;// the name of the cmdlet is get-image&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;[&lt;SPAN style="COLOR:teal;"&gt;Cmdlet&lt;/SPAN&gt;(&lt;SPAN style="COLOR:maroon;"&gt;"Get"&lt;/SPAN&gt;, &lt;SPAN style="COLOR:maroon;"&gt;"Image"&lt;/SPAN&gt;)]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR:teal;"&gt;GetImageCommand&lt;/SPAN&gt; : &lt;SPAN style="COLOR:teal;"&gt;Cmdlet&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt; _filename;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:green;"&gt;// it has one parameter and it is mandatory&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="COLOR:green;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;and can be piped in&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;[&lt;SPAN style="COLOR:teal;"&gt;Parameter&lt;/SPAN&gt;(Mandatory=&lt;SPAN style="COLOR:blue;"&gt;true&lt;/SPAN&gt;, Position=0,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;ValueFromPipeline=&lt;SPAN style="COLOR:blue;"&gt;true&lt;/SPAN&gt;)]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt; Filename&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;get&lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;return&lt;/SPAN&gt; _filename;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;set&lt;/SPAN&gt; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_filename = &lt;SPAN style="COLOR:blue;"&gt;value&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;protected&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;void&lt;/SPAN&gt; BeginProcessing()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:green;"&gt;// take the string they pass, treat it as &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="COLOR:green;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;a filename, and load it into an image&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;protected&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;void&lt;/SPAN&gt; ProcessRecord()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;WriteObject(&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR:teal;"&gt;AtalaImage&lt;/SPAN&gt;(_filename));&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;protected&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;void&lt;/SPAN&gt; EndProcessing()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;
&lt;P&gt;3. Install it with these lines in Powershell&lt;/P&gt;
&lt;BLOCKQUOTE&gt;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\installutil AtalasoftSnapin.dll&lt;BR&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;add-pssnapin AtalasoftSnapin&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;4. Now in Powershell, you can type&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;gt; get-image "full path to image"&lt;BR&gt;&amp;gt; dir *.jpg | get-image&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;After adding in the cmdlets for gray-image and combinechannels-image, you can now create the red-blue 3D images I showed.&lt;/P&gt;
&lt;P&gt;1. Take two pictures, one with your left eye, and one with your right&lt;BR&gt;2. Make them both gray:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;gt; get-image "path to image" | gray-image | save-image "output image"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;3. And now put the left image in the red channel, and the right image in the blue and green.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;gt; combinechannels-image -r (get-image "left image") -g (get-image "right image") -b (get-image "right image") | save-image "3d image"&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;replace "left image" and "right image" with the names of your gray images. replace "3d image" with the name of your output image&lt;/I&gt;&lt;BR&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You might think that the whole point of the presentation was to get this picture (click for larger version):&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.atalasoft.com/cs/photos/images/picture13617.aspx"&gt;&lt;IMG height=319 hspace=5 src="http://www.atalasoft.com/cs/photos/images/images/13617/425x319.aspx" width=425&gt;&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;But, it's not -- the point of the presentation is to get this picture:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.atalasoft.com/cs/photos/images/picture13618.aspx"&gt;&lt;IMG height=319 hspace=5 src="http://www.atalasoft.com/cs/photos/images/images/13618/425x319.aspx" width=425&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A solution with my code is attached below.&amp;nbsp;&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/07/my-notes-for-extending-powershell-to-do-image-processing-part-ii.aspx&amp;amp;;subject=My+notes+for+Extending+Powershell+to+do+Image+Processing%2c+Part+II" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/07/my-notes-for-extending-powershell-to-do-image-processing-part-ii.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/07/my-notes-for-extending-powershell-to-do-image-processing-part-ii.aspx&amp;amp;;title=My+notes+for+Extending+Powershell+to+do+Image+Processing%2c+Part+II" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/07/my-notes-for-extending-powershell-to-do-image-processing-part-ii.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/07/my-notes-for-extending-powershell-to-do-image-processing-part-ii.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/07/my-notes-for-extending-powershell-to-do-image-processing-part-ii.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/07/my-notes-for-extending-powershell-to-do-image-processing-part-ii.aspx&amp;amp;title=My+notes+for+Extending+Powershell+to+do+Image+Processing%2c+Part+II" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/07/my-notes-for-extending-powershell-to-do-image-processing-part-ii.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/07/my-notes-for-extending-powershell-to-do-image-processing-part-ii.aspx&amp;amp;;title=My+notes+for+Extending+Powershell+to+do+Image+Processing%2c+Part+II" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/07/my-notes-for-extending-powershell-to-do-image-processing-part-ii.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/07/my-notes-for-extending-powershell-to-do-image-processing-part-ii.aspx&amp;amp;;title=My+notes+for+Extending+Powershell+to+do+Image+Processing%2c+Part+II&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/07/my-notes-for-extending-powershell-to-do-image-processing-part-ii.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=13626" width="1" height="1"&gt;</description><enclosure url="http://www.atalasoft.com/cs/blogs/loufranco/attachment/13626.ashx" length="7271" type="application/x-zip-compressed" /></item><item><title>My notes for Extending Powershell to do Image Processing, Part I</title><link>http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/06/my-notes-for-extending-powershell-to-do-image-processing.aspx</link><pubDate>Sun, 06 Apr 2008 20:10:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:13619</guid><dc:creator>loufranco</dc:creator><slash:comments>7</slash:comments><comments>http://www.atalasoft.com/cs/blogs/loufranco/comments/13619.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/loufranco/commentrss.aspx?PostID=13619</wfw:commentRss><description>&lt;P&gt;Ok, you're going to want to &lt;A href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx"&gt;install Powershell before reading the rest of this&lt;/A&gt;. Once, you've done that, try typing these commands at the prompt (type in what appears after the &amp;gt;, the text in italics is just commentary):&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;I&gt;Here's the hello world program&lt;/I&gt;&lt;BR&gt;&amp;gt; "hello world"&lt;BR&gt;&lt;I&gt;Remember, the result of your expression is just printed by the shell. "hello world" is a .NET System.String&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;Here's some other primitives and simple expressions:&lt;BR&gt;&lt;/I&gt;&amp;gt; 3&lt;BR&gt;&amp;gt; 3+4&lt;BR&gt;&amp;gt; 1GB&lt;BR&gt;&amp;gt; "hello " + "world"&lt;BR&gt;&amp;gt; "hello world".substring(6)&lt;BR&gt;&amp;gt; 1..10&lt;/P&gt;
&lt;P&gt;&lt;I&gt;Remember that Powershell's directory primitives operate on a provider interface.&amp;nbsp; You can call dir and cd on anything that implements it (like the registry)&lt;BR&gt;&lt;/I&gt;&amp;gt; cd HKLM:\&lt;BR&gt;&amp;gt; dir&lt;BR&gt;&amp;gt; cd SOFTWARE\Microsoft\Windows&lt;BR&gt;&amp;gt; dir&lt;BR&gt;&amp;gt; c:&lt;BR&gt;&amp;gt; dir&lt;/P&gt;
&lt;P&gt;&lt;I&gt;There is extensive built-in help:&lt;BR&gt;&lt;/I&gt;&amp;gt; get-help get-process&lt;BR&gt;&amp;gt; get-command *process*&lt;BR&gt;&amp;gt; "hello" | get-member&lt;BR&gt;&amp;gt; get-history&lt;BR&gt;&amp;gt; get-command *history*&lt;/P&gt;
&lt;P&gt;&lt;I&gt;You can call .NET assemblies (variables start with $)&lt;BR&gt;&lt;/I&gt;&amp;gt; $feed = [xml](new-object System.Net.WebClient).DownloadString(&lt;BR&gt;"http://www.atalasoft.com/cs/blogs/loufranco/rss.aspx"&lt;BR&gt;)&lt;BR&gt;&amp;gt; $feed.rss.channel.item | select title&lt;BR&gt;&amp;gt; $feed.rss.channel.item | ? { $_.title -match "ower" }&lt;/P&gt;
&lt;P&gt;&lt;I&gt;And you can call any third-party assemblies (like DotImage).&amp;nbsp; Once you have installed DotImage, copy Atalasoft.Shared.dll, Atalasoft.DotImage.dll and Atalasoft.DotImage.Lib.dll to C:\WINDOWS\system32\windowspowershell\v1.0 -- this is one of the places Powershell looks for assemblies. You load them like this:&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&amp;gt; [System.Reflection.Assembly]::Load("atalasoft.dotimage")&lt;BR&gt;&amp;gt; [System.Reflection.Assembly]::Load("atalasoft.dotimage.lib")&lt;BR&gt;&amp;gt; [System.Reflection.Assembly]::Load("atalasoft.shared")&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;In all of the next examples, you'll want to give full paths to filenames -- Powershell has an odd notion of the current directory which is confusing to explain right now.&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;Here's how you load an image&lt;BR&gt;&lt;/I&gt;&amp;gt; $img = new-object Atalasoft.Imaging.AtalaImage("fullpath to image")&lt;BR&gt;&lt;BR&gt;&lt;I&gt;And now run the oilpaint command&lt;BR&gt;&lt;/I&gt;&amp;gt; $cmd = new-object Atalasoft.Imaging.ImageProcessing.Effects.OilPaintCommand&lt;BR&gt;&amp;gt; $cmd.BrushWidth = 15&lt;BR&gt;&amp;gt; $img2 = $cmd.Apply($img).Image&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;And save it (any undefined variable is null, so don't define $null)&lt;BR&gt;&lt;/I&gt;&amp;gt; $img2.Save("full path to image", (new-object Atalasoft.Imaging.Codec.JpegEncoder(85)), $null)&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;That turns this&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.atalasoft.com/cs/photos/images/picture9937.aspx"&gt;&lt;IMG height=319 hspace=5 src="http://www.atalasoft.com/cs/photos/images/images/9937/425x319.aspx" width=425&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;into this&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.atalasoft.com/cs/photos/images/picture13616.aspx"&gt;&lt;IMG height=319 hspace=5 src="http://www.atalasoft.com/cs/photos/images/images/13616/425x319.aspx" width=425&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Tomorrow I'll post the code that makes it easier to do this (using Cmdlets)&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Update: &lt;/STRONG&gt;Here is &lt;A class="" href="http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/07/my-notes-for-extending-powershell-to-do-image-processing-part-ii.aspx"&gt;Image Processing with Powershell, Part II&lt;/A&gt;&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/06/my-notes-for-extending-powershell-to-do-image-processing.aspx&amp;amp;;subject=My+notes+for+Extending+Powershell+to+do+Image+Processing%2c+Part+I" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/06/my-notes-for-extending-powershell-to-do-image-processing.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/06/my-notes-for-extending-powershell-to-do-image-processing.aspx&amp;amp;;title=My+notes+for+Extending+Powershell+to+do+Image+Processing%2c+Part+I" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/06/my-notes-for-extending-powershell-to-do-image-processing.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/06/my-notes-for-extending-powershell-to-do-image-processing.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/06/my-notes-for-extending-powershell-to-do-image-processing.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/06/my-notes-for-extending-powershell-to-do-image-processing.aspx&amp;amp;title=My+notes+for+Extending+Powershell+to+do+Image+Processing%2c+Part+I" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/06/my-notes-for-extending-powershell-to-do-image-processing.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/06/my-notes-for-extending-powershell-to-do-image-processing.aspx&amp;amp;;title=My+notes+for+Extending+Powershell+to+do+Image+Processing%2c+Part+I" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/06/my-notes-for-extending-powershell-to-do-image-processing.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/06/my-notes-for-extending-powershell-to-do-image-processing.aspx&amp;amp;;title=My+notes+for+Extending+Powershell+to+do+Image+Processing%2c+Part+I&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/06/my-notes-for-extending-powershell-to-do-image-processing.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=13619" width="1" height="1"&gt;</description></item><item><title>Extending Powershell at Code Camp</title><link>http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/03/extending-powershell-at-code-camp.aspx</link><pubDate>Thu, 03 Apr 2008 20:01:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:13601</guid><dc:creator>loufranco</dc:creator><slash:comments>0</slash:comments><comments>http://www.atalasoft.com/cs/blogs/loufranco/comments/13601.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/loufranco/commentrss.aspx?PostID=13601</wfw:commentRss><description>&lt;p&gt;This is a placeholder blog entry where I'll post my slides and code for my &lt;a href="http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/29/atalasoft-at-code-camp.aspx"&gt;Extending Powershell talk at Code Camp on Saturday&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The code I am showing uses DotImage, and we want everyone to be able to play with it, so we'll have free DotImage Photo licenses for everyone who comes to the talk (and some schwag to raffle off).&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;UPDATE&lt;/b&gt;: If you are coming here from the link we gave you at the show -- &lt;a href="http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/06/my-notes-for-extending-powershell-to-do-image-processing.aspx"&gt;here is Part I from the Powershell presentation&lt;/a&gt;.&lt;br&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/03/extending-powershell-at-code-camp.aspx&amp;amp;;subject=Extending+Powershell+at+Code+Camp" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/03/extending-powershell-at-code-camp.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/03/extending-powershell-at-code-camp.aspx&amp;amp;;title=Extending+Powershell+at+Code+Camp" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/03/extending-powershell-at-code-camp.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/03/extending-powershell-at-code-camp.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/03/extending-powershell-at-code-camp.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/03/extending-powershell-at-code-camp.aspx&amp;amp;title=Extending+Powershell+at+Code+Camp" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/03/extending-powershell-at-code-camp.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/03/extending-powershell-at-code-camp.aspx&amp;amp;;title=Extending+Powershell+at+Code+Camp" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/03/extending-powershell-at-code-camp.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/03/extending-powershell-at-code-camp.aspx&amp;amp;;title=Extending+Powershell+at+Code+Camp&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/03/extending-powershell-at-code-camp.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=13601" width="1" height="1"&gt;</description><category domain="http://www.atalasoft.com/cs/blogs/loufranco/archive/tags/Atalasoft/default.aspx">Atalasoft</category></item><item><title>Loading Office Documents in .NET</title><link>http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/01/loading-office-documents-in-net.aspx</link><pubDate>Tue, 01 Apr 2008 15:05:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:13583</guid><dc:creator>loufranco</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/loufranco/comments/13583.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/loufranco/commentrss.aspx?PostID=13583</wfw:commentRss><description>&lt;P&gt;&lt;IMG style="WIDTH:302px;HEIGHT:255px;" height=255 hspace=4 src="http://www.atalasoft.com/cs/photos/images/images/13584/original.aspx" width=302 align=right&gt;If you want to process Office documents in .NET, for instance, if you use the DotImage AJAX Image Viewer and want to view a Word document, the easiest way is to use Office 2007 to do the heavy lifting. Here are instructions for doing that, but please read this &lt;A href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;257757"&gt;KB about using Office on the serverside&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The easiest way to make an Office document readable by DotImage is to convert it into a PDF and then use our &lt;A href="http://www.atalasoft.com/products/dotimage/pdfrasterizer/"&gt;PDF Reader&lt;/A&gt; to read it. If you use Office 2007, download and install the &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F1FC413C-6D89-4F15-991B-63B07BA5F2E5&amp;amp;displaylang=en"&gt;Office Save as PDF Add-in&lt;/A&gt; to add this capability to Office, so that we can call it from .NET.&lt;/P&gt;
&lt;P&gt;Once you do that, here's the code for converting a Word Doc to a PDF:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;void&lt;/SPAN&gt; Word2Pdf(&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt; wordDocFile, &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt; pdfDocFile)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;object&lt;/SPAN&gt; falseObj = &lt;SPAN style="COLOR:blue;"&gt;false&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;object&lt;/SPAN&gt; trueObj = &lt;SPAN style="COLOR:blue;"&gt;true&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;object&lt;/SPAN&gt; emptyStr = &lt;SPAN style="COLOR:maroon;"&gt;""&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;object&lt;/SPAN&gt; missing = System.Reflection.&lt;SPAN style="COLOR:teal;"&gt;Missing&lt;/SPAN&gt;.Value;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Microsoft.Office.Interop.Word.&lt;SPAN style="COLOR:teal;"&gt;Application&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wordApp = &lt;SPAN style="COLOR:blue;"&gt;null&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;wordApp = &lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;Microsoft.Office.Interop.Word.&lt;SPAN style="COLOR:teal;"&gt;Application&lt;/SPAN&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;wordApp.Visible = &lt;SPAN style="COLOR:blue;"&gt;false&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;object&lt;/SPAN&gt; wordDocFileObj = wordDocFile;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Microsoft.Office.Interop.Word.&lt;SPAN style="COLOR:teal;"&gt;Document&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wordDoc = &lt;SPAN style="COLOR:blue;"&gt;null&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;wordDoc = wordApp.Documents.Open(&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; wordDocFileObj, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; falseObj, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; trueObj, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;wordDoc.ExportAsFixedFormat(&lt;BR&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;pdfDocFile, &lt;SPAN style="COLOR:teal;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="COLOR:teal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;WdExportFormat&lt;/SPAN&gt;.wdExportFormatPDF, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;false&lt;/SPAN&gt;, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="COLOR:teal;"&gt;WdExportOptimizeFor&lt;/SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;wdExportOptimizeForOnScreen&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:teal;"&gt;WdExportRange&lt;/SPAN&gt;.wdExportAllDocument, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;-1, -1, &lt;SPAN style="COLOR:teal;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="COLOR:teal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;WdExportItem&lt;/SPAN&gt;.wdExportDocumentWithMarkup,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR:blue;"&gt;true&lt;/SPAN&gt;, &lt;SPAN style="COLOR:blue;"&gt;true&lt;/SPAN&gt;, &lt;SPAN style="COLOR:teal;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="COLOR:teal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; WdExportCreateBookmarks&lt;/SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;wdExportCreateNoBookmarks,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="COLOR:blue;"&gt;false&lt;/SPAN&gt;, &lt;SPAN style="COLOR:blue;"&gt;true&lt;/SPAN&gt;, &lt;SPAN style="COLOR:blue;"&gt;true&lt;/SPAN&gt;, &lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing);&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;finally&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;if&lt;/SPAN&gt; (wordDoc != &lt;SPAN style="COLOR:blue;"&gt;null&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;wordDoc.Close(&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; falseObj, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing, &lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;wordDoc = &lt;SPAN style="COLOR:blue;"&gt;null&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;finally&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;if&lt;/SPAN&gt; (wordApp != &lt;SPAN style="COLOR:blue;"&gt;null&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;wordApp.Quit(&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; falseObj, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing, &lt;SPAN style="COLOR:blue;"&gt;ref&lt;/SPAN&gt; missing);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;wordApp = &lt;SPAN style="COLOR:blue;"&gt;null&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Most of the work for doing&amp;nbsp;this&amp;nbsp;is to provide the right kind of automation objects to the Office API.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You need to add a reference to Microsoft.Interop.Word, and add the following using statement:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt; Microsoft.Office.Interop.Word;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;FONT face=Arial&gt;The attached solution will show you how to read in Excel and PowerPoint into our web image viewer as well.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/01/loading-office-documents-in-net.aspx&amp;amp;;subject=Loading+Office+Documents+in+.NET" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/01/loading-office-documents-in-net.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/01/loading-office-documents-in-net.aspx&amp;amp;;title=Loading+Office+Documents+in+.NET" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/01/loading-office-documents-in-net.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/01/loading-office-documents-in-net.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/01/loading-office-documents-in-net.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/01/loading-office-documents-in-net.aspx&amp;amp;title=Loading+Office+Documents+in+.NET" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/01/loading-office-documents-in-net.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/01/loading-office-documents-in-net.aspx&amp;amp;;title=Loading+Office+Documents+in+.NET" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/01/loading-office-documents-in-net.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/01/loading-office-documents-in-net.aspx&amp;amp;;title=Loading+Office+Documents+in+.NET&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/01/loading-office-documents-in-net.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=13583" width="1" height="1"&gt;</description><enclosure url="http://www.atalasoft.com/cs/blogs/loufranco/attachment/13583.ashx" length="3182716" type="application/x-zip-compressed" /></item><item><title>Atalasoft at Code Camp</title><link>http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/29/atalasoft-at-code-camp.aspx</link><pubDate>Sat, 29 Mar 2008 21:55:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:13571</guid><dc:creator>loufranco</dc:creator><slash:comments>2</slash:comments><comments>http://www.atalasoft.com/cs/blogs/loufranco/comments/13571.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/loufranco/commentrss.aspx?PostID=13571</wfw:commentRss><description>A bunch of us are going to &lt;a href="http://thedevcommunity.org/Events/PresentationList.aspx?id=6"&gt;Code Camp in Waltham, MA&lt;/a&gt; on April 5th and 6th. I'll be giving &lt;a href="http://thedevcommunity.org/Events/PresentationSummary.aspx?id=153&amp;amp;pid=195"&gt;a presentation on how to extend Powershell&lt;/a&gt; and showing how I created cmdlets for image processing. The presentation is on April 5th, at 9:10 in the Rhode Island room.&lt;br&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/29/atalasoft-at-code-camp.aspx&amp;amp;;subject=Atalasoft+at+Code+Camp" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/29/atalasoft-at-code-camp.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/29/atalasoft-at-code-camp.aspx&amp;amp;;title=Atalasoft+at+Code+Camp" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/29/atalasoft-at-code-camp.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/29/atalasoft-at-code-camp.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/29/atalasoft-at-code-camp.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/29/atalasoft-at-code-camp.aspx&amp;amp;title=Atalasoft+at+Code+Camp" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/29/atalasoft-at-code-camp.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/29/atalasoft-at-code-camp.aspx&amp;amp;;title=Atalasoft+at+Code+Camp" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/29/atalasoft-at-code-camp.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/29/atalasoft-at-code-camp.aspx&amp;amp;;title=Atalasoft+at+Code+Camp&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/29/atalasoft-at-code-camp.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=13571" width="1" height="1"&gt;</description></item><item><title>Code 39 Barcode Generation</title><link>http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/24/code-39-barcode-generation.aspx</link><pubDate>Mon, 24 Mar 2008 13:37:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:13536</guid><dc:creator>loufranco</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/loufranco/comments/13536.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/loufranco/commentrss.aspx?PostID=13536</wfw:commentRss><description>&lt;p&gt;I read this kind of funny story about a kid who got himself into a little trouble &lt;a href="http://davis.remmel.googlepages.com/drawingbarcodesbyhand"&gt;reading and writing barcodes by hand&lt;/a&gt;. After reading it, I figured if he's going through the trouble of getting graph paper and markers to write Code 39, I can certainly provide the code to doing it with DotImage.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Code_39"&gt;Code 39 is a simple barcode format&lt;/a&gt; -- it supports only capital letters, numbers, and seven other special characters (so 43 characters total). Each letter is encoded with nine alternating black and white bars, always starting and ending with black. Three of the nine bars will be wide, and the rest narrow (thus the name -- sometimes also called 3 of 9). Between each letter is a narrow white bar, and there is a start and stop code so you know that you are looking at a Code 39.&lt;/p&gt;

&lt;p&gt;One nice thing about Code 39 is that you can calculate the size in pixels before encoding, since each letter is the same size (3 wide and 6 narrow).&lt;/p&gt;

&lt;p&gt;Here's some code:&lt;/p&gt;

&lt;p&gt;First I grabbed the table of encodings from the wikipedia page on Code 39 and put them into a hashtable:&lt;/p&gt;
&lt;div style="margin-left:40px;font-family:courier;"&gt;private static Hashtable _encoding = new Hashtable();&lt;/div&gt;
&lt;p style="margin-left:40px;font-family:courier;"&gt;static BarcodeCode39()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _encoding['*'] = "bWbwBwBwb";&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _encoding['-'] = "bWbwbwBwB";&lt;/p&gt;

&lt;p style="margin-left:40px;font-family:courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // rest of encodings removed&amp;nbsp;&lt;/p&gt;

&lt;p style="margin-left:40px;font-family:courier;"&gt;}&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Here is how you calculate the width of the image (there are two extra characters added to the barcode, and I have a margin as well).&lt;/p&gt;

&lt;p style="font-family:courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int ImageWidth&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; get &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return (_data.Length + 2) * ((3 * _wideWidth) + (6 * _narrowWidth)) + &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (_data.Length+1) * _narrowWidth + &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 2 * _margin;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;To make the barcode, I create the image:&lt;/p&gt;

&lt;p style="font-family:courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int imageWidth = ImageWidth;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AtalaImage barcodeImg = new AtalaImage(imageWidth, _imageHeight, pf, Color.White);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Canvas barcodeCanvas = new Canvas(barcodeImg);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fill fill = new SolidFill(Color.Black);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AtalaPen pen = new AtalaPen(Color.Black); &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;


&lt;p&gt;Then here is my main loop through the data to encode: &lt;br&gt;&lt;/p&gt;

&lt;p style="font-family:courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // add start/stop&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string dataToEncode = "*" + _data + "*"; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int x = _margin;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (char c in dataToEncode) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; string bars = (string)_encoding[c];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (bars == null) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; throw new NotSupportedException("Invalid character in data: '"+c+"'");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (char b in bars) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; switch (b) &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; case 'B': // Wide Black&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; barcodeCanvas.DrawRectangle(new Rectangle(x, _margin, _wideWidth, _imageHeight-2*_margin), pen, fill);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; x += _wideWidth;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; case 'W': // Wide White&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; x += _wideWidth;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;