<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-2621035740736424879</id><updated>2013-02-12T14:59:15.504-08:00</updated><category term="PDF Conversion" /><category term="ASP.NET" /><category term="PDF Creation" /><category term="PDF/A" /><category term="Permissions" /><category term="SDK Samples" /><category term="release framework" /><category term=".NET" /><category term="Acrobat X" /><category term="Adobe" /><category term="C++" /><category term="Document Properties" /><category term="Encryption" /><category term="Extract Support Files" /><category term="OCR" /><category term="PDF to HTML" /><category term="PDF to PowerPoint" /><category term="PDF to Word" /><category term="Passwords" /><category term="Security" /><category term="Solid Framework" /><title type="text">Solid Documents Developer Blog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://developer.soliddocuments.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://developer.soliddocuments.com/" /><author><name>Solid Documents</name><uri>http://www.blogger.com/profile/08325812318762675510</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="11" src="http://www.soliddocuments.com/images/soliddocuments_logo_150x45.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/SolidDocumentsDeveloperBlog" /><feedburner:info uri="soliddocumentsdeveloperblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-4371929306316058563</id><published>2012-09-21T19:46:00.001-07:00</published><updated>2012-09-21T19:48:11.440-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET" /><category scheme="http://www.blogger.com/atom/ns#" term="OCR" /><category scheme="http://www.blogger.com/atom/ns#" term="PDF to HTML" /><category scheme="http://www.blogger.com/atom/ns#" term="PDF to PowerPoint" /><category scheme="http://www.blogger.com/atom/ns#" term="PDF to Word" /><category scheme="http://www.blogger.com/atom/ns#" term="Solid Framework" /><title type="text">7.3 of Solid Framework Released</title><content type="html">7.3 of Solid Framework Released&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solid OCR&lt;/strong&gt; (&lt;a href="http://www.soliddocuments.com/solid-ocr.htm"&gt;Optical Character Recognition&lt;/a&gt;) has been improved:&lt;br /&gt;8 languages now supported (English, Dutch, French, Italian, Polish, Portuguese and Spanish). &lt;br /&gt;Improved text recognitions. OCR allows you to apply a searchable text layer when scanning or easily add a text layer to an existing scanned PDF file. &lt;br /&gt;&lt;br /&gt;Other v7.3 improvements include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;PDF to Word&lt;/strong&gt;: heading/style detection, table of contents reconstruction, hierarchical list reconstruction&lt;/li&gt;&lt;li&gt;Complete rework of &lt;strong&gt;PDF to PowerPoint&lt;/strong&gt; reconstruction including transitions, master slides and PowerPoint specific layout engine&lt;/li&gt;&lt;li&gt;Great improvements to &lt;strong&gt;PDF to HTML&lt;/strong&gt; conversion to take advantage of table of contents reconstruction and style detection. Single page output with navigation frame or multiple linked HTML pages for navigation.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;PagesModel and Thumbnail Controls&lt;/strong&gt; to allow construction of PDF page manipulation applications complete with User Interface.&lt;/li&gt;&lt;/ul&gt;Trial developer licenses and SDK available from the &lt;a href="http://www.soliddocuments.com/download.htm?product=SolidFramework"&gt;Developer Portal&lt;/a&gt; at soliddocuments.com.&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/SolidDocumentsDeveloperBlog/~4/oNcht_saf9Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developer.soliddocuments.com/feeds/4371929306316058563/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2621035740736424879&amp;postID=4371929306316058563" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/4371929306316058563" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/4371929306316058563" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SolidDocumentsDeveloperBlog/~3/oNcht_saf9Q/73-of-solid-framework-released.html" title="7.3 of Solid Framework Released" /><author><name>Solid Documents</name><uri>http://www.blogger.com/profile/08325812318762675510</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="11" src="http://www.soliddocuments.com/images/soliddocuments_logo_150x45.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://developer.soliddocuments.com/2012/09/73-of-solid-framework-released.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-4208938939764516885</id><published>2012-09-02T19:11:00.000-07:00</published><updated>2012-09-09T19:02:29.331-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SDK Samples" /><title type="text">How to change the configuration in your project to 64 bits</title><content type="html">This example uses Visual Studio 2010.&lt;br /&gt;&lt;br /&gt;1. Open your project in Visual Studio.&amp;nbsp; From the &lt;strong&gt;Build&lt;/strong&gt; menu select &lt;strong&gt;Configuration Manager...&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-XxVrKndxK1M/UEQQS78uXkI/AAAAAAAAARg/rwtO_w1MnwY/s1600/change_cpu_conf_manager.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="185" src="http://1.bp.blogspot.com/-XxVrKndxK1M/UEQQS78uXkI/AAAAAAAAARg/rwtO_w1MnwY/s400/change_cpu_conf_manager.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;2. From the &lt;strong&gt;Active solution configuration&lt;/strong&gt; menu select Debug or Release depending on what are you want to set up.&lt;strong&gt; &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-8Zm8y0942sU/UEQQtbeOqVI/AAAAAAAAARo/9_1Eadxwb7o/s1600/change_cpu_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="252" src="http://3.bp.blogspot.com/-8Zm8y0942sU/UEQQtbeOqVI/AAAAAAAAARo/9_1Eadxwb7o/s400/change_cpu_2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Then from the &lt;strong&gt;Active solution platform&lt;/strong&gt; menu select &lt;strong&gt;New...&lt;/strong&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-X4RTVOkVuC4/UEQQ-vVk4nI/AAAAAAAAARw/vl6XCeifCL0/s1600/change_cpu_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="256" src="http://1.bp.blogspot.com/-X4RTVOkVuC4/UEQQ-vVk4nI/AAAAAAAAARw/vl6XCeifCL0/s400/change_cpu_3.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="left" class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;﻿&lt;/div&gt;3. Select &lt;strong&gt;x64&lt;/strong&gt; (the &lt;strong&gt;Create new project platforms&lt;/strong&gt; is checked by default).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-uffRIErGzYU/UEQRRI_SIXI/AAAAAAAAAR4/kSJ5OWhQhCY/s1600/change_cpu_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="263" src="http://2.bp.blogspot.com/-uffRIErGzYU/UEQRRI_SIXI/AAAAAAAAAR4/kSJ5OWhQhCY/s400/change_cpu_4.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;4. Change the &lt;strong&gt;Copy settings from&lt;/strong&gt; option to&amp;nbsp;&lt;strong&gt;&lt;empty&gt;&lt;/empty&gt;&lt;/strong&gt; &lt;strong&gt;Empty &lt;/strong&gt;then click OK.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-FCFfKWfOsgI/UEQRmDj7yKI/AAAAAAAAASA/pSjiicNbY7Q/s1600/change_cpu_5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="275" src="http://4.bp.blogspot.com/-FCFfKWfOsgI/UEQRmDj7yKI/AAAAAAAAASA/pSjiicNbY7Q/s400/change_cpu_5.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolidDocumentsDeveloperBlog/~4/W4ZEb0O2QMs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developer.soliddocuments.com/feeds/4208938939764516885/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2621035740736424879&amp;postID=4208938939764516885" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/4208938939764516885" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/4208938939764516885" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SolidDocumentsDeveloperBlog/~3/W4ZEb0O2QMs/how-to-change-configuration-in-your.html" title="How to change the configuration in your project to 64 bits" /><author><name>Tamara</name><uri>http://www.blogger.com/profile/13411261721763546853</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-XxVrKndxK1M/UEQQS78uXkI/AAAAAAAAARg/rwtO_w1MnwY/s72-c/change_cpu_conf_manager.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://developer.soliddocuments.com/2012/09/how-to-change-configuration-in-your.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-8861408488136820539</id><published>2012-08-29T19:54:00.000-07:00</published><updated>2012-08-29T19:56:06.790-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C++" /><category scheme="http://www.blogger.com/atom/ns#" term="PDF Conversion" /><category scheme="http://www.blogger.com/atom/ns#" term="PDF Creation" /><category scheme="http://www.blogger.com/atom/ns#" term="PDF/A" /><category scheme="http://www.blogger.com/atom/ns#" term="Permissions" /><category scheme="http://www.blogger.com/atom/ns#" term="SDK Samples" /><title type="text">Code Samples and Video Tutorials</title><content type="html">Did you know we now have Solid Framework video tutorials available from our website? &lt;br /&gt;&lt;br /&gt;You can find them &lt;a href="http://www.soliddocuments.com/documentation.htm?product=SolidFramework"&gt;here&lt;/a&gt; under our documentation page.&lt;br /&gt;&lt;br /&gt;Email us at &lt;a href="mailto:support@soliddocuments.com"&gt;support@soliddocuments.com&lt;/a&gt; to request other code samples.&lt;img src="http://feeds.feedburner.com/~r/SolidDocumentsDeveloperBlog/~4/ntkOCTS2p6c" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/8861408488136820539" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/8861408488136820539" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SolidDocumentsDeveloperBlog/~3/ntkOCTS2p6c/code-samples-and-video-tutorials.html" title="Code Samples and Video Tutorials" /><author><name>Tamara</name><uri>http://www.blogger.com/profile/13411261721763546853</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><feedburner:origLink>http://developer.soliddocuments.com/2012/08/code-samples-and-video-tutorials.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-3869879836107772569</id><published>2010-11-15T08:15:00.000-08:00</published><updated>2011-06-03T19:09:46.438-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Acrobat X" /><category scheme="http://www.blogger.com/atom/ns#" term="Adobe" /><category scheme="http://www.blogger.com/atom/ns#" term="PDF Conversion" /><title type="text">Adobe Licenses Solid Document Technology for Acrobat X</title><content type="html">Adobe Systems Incorporated (Adobe) has licensed &lt;a href="http://www.solidframework.net/"&gt;Solid Framework SDK &lt;/a&gt;for Adobe® Acrobat® X. Adobe Acrobat X takes advantage of Solid Documents’ PDF to Word and Excel conversion capabilities, allowing Acrobat X users to easily reuse and repurpose PDF content.&lt;br /&gt;&lt;br /&gt;Read the press release &lt;a href="http://www.soliddocuments.com/pdf/_solidframework_adobe_x/300"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Recent rave reviews for Solid Framework’s core conversion features in the new Adobe Acrobat X:&lt;br /&gt;&lt;br /&gt;Ed Mendelson of PC Magazine:&lt;br /&gt;&lt;a href="http://www.pcmag.com/article2/0,2817,2370981,00.asp" rel="nofollow"&gt;http://www.pcmag.com/article2/0,2817,2370981,00.asp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Darryl K. Taft of eWeek:&lt;br /&gt;&lt;a href="http://www.eweek.com/c/a/Application-Development/Adobe-Acrobat-X-10-Reasons-to-Move-to-It-Now-179555/" rel="nofollow"&gt;http://www.eweek.com/c/a/Application-Development/Adobe-Acrobat-X-10-Reasons-to-Move-to-It-Now-179555/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Alan Stafford of PC World:&lt;br /&gt;&lt;a href="http://www.pcworld.com/reviews/product/707770/review/acrobat_x_pro.html" rel="nofollow"&gt;http://www.pcworld.com/reviews/product/707770/review/acrobat_x_pro.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PDF for Lawyers:&lt;br /&gt;&lt;a href="http://www.pdfforlawyers.com/2010/10/improved-export-to-word-in-acrobat-x.html" rel="nofollow"&gt;http://www.pdfforlawyers.com/2010/10/improved-export-to-word-in-acrobat-x.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.pdfforlawyers.com/2010/10/adobe-announces-acrobat-10-my-quick-review.html" rel="nofollow"&gt;http://www.pdfforlawyers.com/2010/10/adobe-announces-acrobat-10-my-quick-review.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Steven Kovach of Business Insider:&lt;br /&gt;&lt;a href="http://www.businessinsider.com/hands-on-with-adobe-acrobat-x-pro-2010-11" rel="nofollow"&gt;http://www.businessinsider.com/hands-on-with-adobe-acrobat-x-pro-2010-11&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/SolidDocumentsDeveloperBlog/~4/9UIo9tWr5EU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developer.soliddocuments.com/feeds/3869879836107772569/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2621035740736424879&amp;postID=3869879836107772569" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/3869879836107772569" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/3869879836107772569" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SolidDocumentsDeveloperBlog/~3/9UIo9tWr5EU/adobe-licenses-solid-document.html" title="Adobe Licenses Solid Document Technology for Acrobat X" /><author><name>Solid Documents</name><uri>http://www.blogger.com/profile/08325812318762675510</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="11" src="http://www.soliddocuments.com/images/soliddocuments_logo_150x45.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://developer.soliddocuments.com/2010/11/adobe-licenses-solid-document.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-4905078094394716496</id><published>2010-09-27T17:18:00.000-07:00</published><updated>2010-09-27T17:36:20.331-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><category scheme="http://www.blogger.com/atom/ns#" term="PDF Conversion" /><title type="text">Using Solid Framework through ASP.NET and IIS 7.0</title><content type="html">We have posted a new article on Code Project that walks you through how to setup IIS 7.0 to be able to use &lt;a href="http://www.codeproject.com/KB/aspnet/PdfToText.aspx"&gt;Solid Framework through ASP.NET&lt;/a&gt;.&lt;img src="http://feeds.feedburner.com/~r/SolidDocumentsDeveloperBlog/~4/qgi0c__xxOk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developer.soliddocuments.com/feeds/4905078094394716496/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2621035740736424879&amp;postID=4905078094394716496" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/4905078094394716496" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/4905078094394716496" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SolidDocumentsDeveloperBlog/~3/qgi0c__xxOk/using-solid-framework-through-aspnet.html" title="Using Solid Framework through ASP.NET and IIS 7.0" /><author><name>Greg Greenaae</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_lJ7c9ulBNkw/SgHC5jvd0lI/AAAAAAAAAAM/rRbK8vwRGY4/S220/solidframeworkpro_96x96.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://developer.soliddocuments.com/2010/09/using-solid-framework-through-aspnet.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-3642393307835691210</id><published>2010-07-28T14:42:00.000-07:00</published><updated>2010-07-28T14:47:18.642-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="release framework" /><title type="text">New 7.0 of Solid Framework  Released</title><content type="html">&lt;em&gt;Newest version enhances conversion and reconstruction features; Gives developers power to build applications for the creation, modification and conversion of PDF files within 64-bit native environment&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;See full press release &lt;a href="http://www.soliddocuments.com/pdf/_solidframework_7/296"&gt;here&lt;/a&gt;.&lt;img src="http://feeds.feedburner.com/~r/SolidDocumentsDeveloperBlog/~4/NKPi4EOc5ds" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developer.soliddocuments.com/feeds/3642393307835691210/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2621035740736424879&amp;postID=3642393307835691210" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/3642393307835691210" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/3642393307835691210" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SolidDocumentsDeveloperBlog/~3/NKPi4EOc5ds/new-70-of-solid-framework-released.html" title="New 7.0 of Solid Framework  Released" /><author><name>Solid Documents</name><uri>http://www.blogger.com/profile/08325812318762675510</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="11" src="http://www.soliddocuments.com/images/soliddocuments_logo_150x45.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://developer.soliddocuments.com/2010/07/new-70-of-solid-framework-released.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-118424466413654437</id><published>2009-12-05T17:32:00.000-08:00</published><updated>2009-12-28T18:36:30.344-08:00</updated><title type="text">Solid Framework updated with new Installer and ProgressTicker classes.</title><content type="html">We've released a new version of &lt;a href="http://downloads.soliddocuments.com/solidframework/solidframework.zip"&gt;Solid Framework SDK 6.0.255.0&lt;/a&gt;. This build addresses a couple issues:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;PdfPage.DrawBitmap always adds a watermark regardless of the license. It now properly disables the watermark if the license is a non free version.&lt;/li&gt;&lt;li&gt;When converting Pdf pages to image files, the first page is blank. The GDI+ module is now loaded before the page drawing starts.&lt;/li&gt;&lt;li&gt;Extraction of the support files is now faster because we are using memory streams instead of file streams.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;This version also includes the new Configuration.Installer class, that we will talk about today in this blog post. With this class Solid Framework can be installed in one of three ways:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Self extraction to the current users local application data folder.&lt;/li&gt;&lt;li&gt;Self extraction to a folder handed to the Installer class.&lt;/li&gt;&lt;li&gt;Pre extraction.&lt;/li&gt;&lt;/ol&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 161px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5411962258565971346" border="0" alt="" src="http://3.bp.blogspot.com/_lJ7c9ulBNkw/SxsnABelPZI/AAAAAAAAACA/7Q6cHNOle_0/s400/Installer.png" /&gt;&lt;br /&gt;&lt;p&gt;The first method is the default method that the previous versions of Solid Framework has been using. When the application calls one of the Solid Framework methods, it will check to see if the support files have been extracted to the current users application data folder, and if it has not, it will extract it at this point.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The second method allows these support files to be extracted to any folder the developer wishes. Before any Solid Framework method is called, the developer can set the Configuration.Installer.NativePlatformDirectory string property to a full path, and that path will be used as the root folder for the support files. This is useful if you want to share the support folder between many users and don't want each user to have their own copy of the support files, or you wish to remove this known folder location during an uninstall.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The third method is to use the &lt;a href="http://downloads.soliddocuments.com/solidframework/extractframework.zip"&gt;ExtractFramework tool&lt;/a&gt; to extract the support files from Solid Framework beforehand and install them to a folder you want in your application installer. You have to let the Framework know where these files are by setting the Configuration.Installer.NativePlatformDirectory string property in the application. This gives the developer total control during the install and uninstall.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Another feature of this release is the ProgressTicker event class. You can register for this event to show progress UI while Solid Framework is extracting the support files (if needed).&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/_lJ7c9ulBNkw/Sxsn8OAHR2I/AAAAAAAAACI/ngzOxCo4zZQ/s1600-h/ProgressTicker.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 220px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5411963292719990626" border="0" alt="" src="http://1.bp.blogspot.com/_lJ7c9ulBNkw/Sxsn8OAHR2I/AAAAAAAAACI/ngzOxCo4zZQ/s400/ProgressTicker.png" /&gt;&lt;/a&gt; The default for ProgressTicker is 50 ticks for the extraction. This tick value can be set to any value you wish by setting the TicksPerEpisode property off the ProgressTicker to any integer value. This also enables feedback in console applications, which didn't work in previous versions of Solid Framework, that needed a Windows message pump to work. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;The extraction tool link above uses this feature to show feedback of the extraction. Source code for the ExtractFramework tool is included, it shows you how ProgressTicker works. Both Visual Studio 2005 and Visual Studio 2008 projects are included in the package.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SolidDocumentsDeveloperBlog/~4/7_-tteYzRcc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developer.soliddocuments.com/feeds/118424466413654437/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2621035740736424879&amp;postID=118424466413654437" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/118424466413654437" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/118424466413654437" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SolidDocumentsDeveloperBlog/~3/7_-tteYzRcc/solid-framework-updated-with-new.html" title="Solid Framework updated with new Installer and ProgressTicker classes." /><author><name>Greg Greenaae</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_lJ7c9ulBNkw/SgHC5jvd0lI/AAAAAAAAAAM/rRbK8vwRGY4/S220/solidframeworkpro_96x96.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_lJ7c9ulBNkw/SxsnABelPZI/AAAAAAAAACA/7Q6cHNOle_0/s72-c/Installer.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://developer.soliddocuments.com/2009/12/solid-framework-updated-with-new.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-3574520887880000480</id><published>2009-11-19T16:58:00.000-08:00</published><updated>2009-11-19T17:53:50.327-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="release framework" /><title type="text">New Solid Framework released</title><content type="html">We have released a new version (6.0.251) of &lt;a href="http://downloads.soliddocuments.com/solidframework/solidframework.zip"&gt;Solid Framework SDK&lt;/a&gt; that now includes full support for image processing and optical text recognition to allow conversion of scanned PDF files to editable Word documents. Solid Framework takes advantage of the MODI API (part of Microsoft Office) to provide OCR capability.&lt;br /&gt;&lt;br /&gt;When converting PDF to Office documents, you can specify when OCR is used by setting the TextRecoveryType:&lt;p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_lJ7c9ulBNkw/SwXucrqoOeI/AAAAAAAAABg/UmRom6ffaN8/s1600/convertersetting.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 141px;" src="http://2.bp.blogspot.com/_lJ7c9ulBNkw/SwXucrqoOeI/AAAAAAAAABg/UmRom6ffaN8/s400/convertersetting.png" alt="" id="BLOGGER_PHOTO_ID_5405989104253417954" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To one of the following settings:&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_lJ7c9ulBNkw/SwXu4viWxnI/AAAAAAAAABo/Bo7MORTWRP0/s1600/recoverytype.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 141px;" src="http://4.bp.blogspot.com/_lJ7c9ulBNkw/SwXu4viWxnI/AAAAAAAAABo/Bo7MORTWRP0/s400/recoverytype.png" alt="" id="BLOGGER_PHOTO_ID_5405989586328798834" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;Always&lt;/b&gt; - All pages are rendered to images and processed as scanned pages.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Automatic&lt;/b&gt; - Pages that contain scanned text-like images are recognized automatically.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Default&lt;/b&gt; - Same as Automatic.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Never&lt;/b&gt; - No scanned page processing. Scanned pages converted as images.&lt;img src="http://feeds.feedburner.com/~r/SolidDocumentsDeveloperBlog/~4/pnGWL5OSRX4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developer.soliddocuments.com/feeds/3574520887880000480/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2621035740736424879&amp;postID=3574520887880000480" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/3574520887880000480" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/3574520887880000480" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SolidDocumentsDeveloperBlog/~3/pnGWL5OSRX4/new-solid-framework-released.html" title="New Solid Framework released" /><author><name>Greg Greenaae</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_lJ7c9ulBNkw/SgHC5jvd0lI/AAAAAAAAAAM/rRbK8vwRGY4/S220/solidframeworkpro_96x96.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_lJ7c9ulBNkw/SwXucrqoOeI/AAAAAAAAABg/UmRom6ffaN8/s72-c/convertersetting.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://developer.soliddocuments.com/2009/11/new-solid-framework-released.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-6898966337605161640</id><published>2009-09-04T14:35:00.000-07:00</published><updated>2009-09-09T20:08:57.379-07:00</updated><title type="text">Convert PDF pages to Image files</title><content type="html">Another comment question we get in email is if Solid Framework can convert PDF pages into image files. Solid Framework can be used to convert PDF pages into image files, and we use this feature to create page thumbnail images and the main page view for PDF Navigator. Here is a diagram of how this works:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_lJ7c9ulBNkw/SqG04_17lRI/AAAAAAAAABY/18DcecGd-C4/s1600-h/blog_pdf_to_images.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_lJ7c9ulBNkw/SqG04_17lRI/AAAAAAAAABY/18DcecGd-C4/s400/blog_pdf_to_images.png" alt="" id="BLOGGER_PHOTO_ID_5377778321360393490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You can download the sample &lt;a href="http://downloads.soliddocuments.com/solidframework/samples/pdftoimage.zip"&gt;project&lt;/a&gt; [zip file] to see this in action yourself. The project contains both Visual Studio 2005 and Visual Studio 2008 solutions. Those without Microsoft Visual Studio can use &lt;a href="http://www.microsoft.com/express/vcsharp/Default.aspx/"&gt;Visual C# 2008 Express Edition&lt;/a&gt; for free to work with the sample project.&lt;br /&gt;&lt;br /&gt;Earlier we talked about using a &lt;a href="http://developer.soliddocuments.com/2008/06/c-class-for-parsing-command-line.html"&gt;C# class library&lt;/a&gt; to allow you to use the scripting functionality of &lt;a href="http://www.soliddocuments.com/products.htm?product=SolidPDFTools"&gt;Solid PDF Tools Scan to PDF&lt;/a&gt; from the command line. We use this class again to parse out the command line arguments we need to convert the pages into image files:&lt;br /&gt;&lt;div   style="width: 600px;font-family:'courier new',courier;font-size:8pt;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Arguments CommandLine = &lt;span style="color:blue;"&gt;new&lt;/span&gt; Arguments(args);‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (CommandLine[&lt;span style="color: rgb(165, 20, 16);"&gt;"f"&lt;/span&gt;] == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ShowUsage();‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;return&lt;/span&gt; -1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pdfFile = CommandLine[&lt;span style="color: rgb(165, 20, 16);"&gt;"f"&lt;/span&gt;];‍&lt;br /&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (CommandLine[&lt;span style="color: rgb(165, 20, 16);"&gt;"p"&lt;/span&gt;] != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;password = CommandLine[&lt;span style="color: rgb(165, 20, 16);"&gt;"p"&lt;/span&gt;];&lt;br /&gt;&lt;br&gt;‍&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (CommandLine[&lt;span style="color: rgb(165, 20, 16);"&gt;"o"&lt;/span&gt;] == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ShowUsage();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;return&lt;/span&gt; -2;‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;else&lt;/span&gt;‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;outputfolder = CommandLine[&lt;span style="color: rgb(165, 20, 16);"&gt;"o"&lt;/span&gt;];&lt;br /&gt;&lt;br&gt;‍&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 130, 0);"&gt;// Note: We &lt;span style="color: rgb(0, 130, 0);"&gt;default&lt;/span&gt; to 96 dpi &lt;span style="color: rgb(0, 130, 0);"&gt;if&lt;/span&gt; the parameter was not provided.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (CommandLine[&lt;span style="color: rgb(165, 20, 16);"&gt;"d"&lt;/span&gt;] != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dpi = Convert.ToInt32(CommandLine[&lt;span style="color: rgb(165, 20, 16);"&gt;"d"&lt;/span&gt;]);&lt;br /&gt;‍&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (CommandLine[&lt;span style="color: rgb(165, 20, 16);"&gt;"t"&lt;/span&gt;] != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;switch&lt;/span&gt; (CommandLine[&lt;span style="color: rgb(165, 20, 16);"&gt;"t"&lt;/span&gt;].ToUpper())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color: rgb(165, 20, 16);"&gt;"TIF"&lt;/span&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color: rgb(165, 20, 16);"&gt;"TIFF"&lt;/span&gt;:‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;imagetype = ImageType.TIFF;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;break&lt;/span&gt;;‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color: rgb(165, 20, 16);"&gt;"BMP"&lt;/span&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;imagetype = ImageType.BMP;‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color: rgb(165, 20, 16);"&gt;"JPEG"&lt;/span&gt;:‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color: rgb(165, 20, 16);"&gt;"JPG"&lt;/span&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;imagetype = ImageType.JPG;  ‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;case&lt;/span&gt; &lt;span style="color: rgb(165, 20, 16);"&gt;"PNG"&lt;/span&gt;:‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;default&lt;/span&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;imagetype = ImageType.PNG;‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;‍&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (CommandLine[&lt;span style="color: rgb(165, 20, 16);"&gt;"r"&lt;/span&gt;] != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pagerange = CommandLine[&lt;span style="color: rgb(165, 20, 16);"&gt;"r"&lt;/span&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;}‍&lt;br /&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;DoConversion(pdfFile, password, outputfolder, dpi, pagerange, imagetype);‍&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;The code above takes care of setting up the arguments to hand off to DoConversion. So lets say we have a pdf file at c:\mypdfs\pdftest.pdf that is encrypted with a user password of "mypassword" and we want to make JPEG images of pages 1-5, 7, 8 with a dpi of 127 and put these images in c:\myimages. The commandline would look like this:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:'courier new',courier;font-size:9pt;"  &gt;&lt;b&gt;PDFtoImage.exe -f:c:\mypdfs\pdftest.pdf -p:mypassword -o:c:\myimages -d:127&lt;/b&gt;&lt;br /&gt;&lt;b&gt;-t:JPG -r:1-5,7,8&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note: -p -d -t and -r are optional. No password is used if -p is missing. DPI will default to 96, and image type will default to PNG. If -r is missing, all pages will be used to make images.&lt;br /&gt;&lt;br /&gt;The DoConversion function is the meat of the project. First we set the trial license:&lt;br /&gt;&lt;div   style="width: 600px;font-family:'courier new',courier;font-size:8pt;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 130, 0);"&gt;// Setup the license&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;SolidFramework.License.ActivateDeveloperLicense();&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;It then loads the PDF file with password if supplied:&lt;br /&gt;&lt;div   style="width: 600px;font-family:'courier new',courier;font-size:8pt;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 130, 0);"&gt;// Load up the document&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;SolidFramework.Pdf.PdfDocument doc =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;new&lt;/span&gt; SolidFramework.Pdf.PdfDocument(file, password);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;doc.Open();&lt;/div&gt;&lt;br /&gt;After the document is open, we check to see if the output folder exists, and if it doesn't, we create it:&lt;br /&gt;&lt;div   style="width: 600px;font-family:'courier new',courier;font-size:8pt;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 130, 0);"&gt;// Setup the outputfolder&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (!Directory.Exists(folder))&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Directory.CreateDirectory(folder);&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 130, 0);"&gt;// Setup the file string.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;string&lt;/span&gt; filename = folder + Path.DirectorySeparatorChar +&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Path.GetFileNameWithoutExtension(file);&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Now walk the Pages dictionary and finds the page items by following the references.&lt;br /&gt;&lt;div   style="width: 600px;font-family:'courier new',courier;font-size:8pt;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 130, 0);"&gt;// Get our pages.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;List&amp;lt;SolidFramework.Pdf.Plumbing.PdfPage&amp;gt; Pages =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;new&lt;/span&gt; List&amp;lt;SolidFramework.Pdf.Plumbing.PdfPage&gt;(doc.Catalog.Pages.PageCount);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;SolidFramework.Pdf.Catalog catalog =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(SolidFramework.Pdf.Catalog)SolidFramework.Pdf.Catalog.Create(doc);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;SolidFramework.Pdf.Plumbing.PdfPages pages =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(SolidFramework.Pdf.Plumbing.PdfPages)catalog.Pages;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ProcessPages(&lt;span style="color:blue;"&gt;ref&lt;/span&gt; pages, &lt;span style="color:blue;"&gt;ref&lt;/span&gt; Pages)&lt;/div&gt;&lt;br /&gt;Then if a page range is specified, parse the argument into page number integers. For each page that is specified, or all if not specified.&lt;br /&gt;&lt;div   style="width: 600px;font-family:'courier new',courier;font-size:8pt;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 130, 0);"&gt;// Check &lt;span style="color: rgb(0, 130, 0);"&gt;for&lt;/span&gt; page ranges&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;PageRange ranges = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;bool&lt;/span&gt; bHaveRanges = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (!&lt;span style="color:blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(pagerange))&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bHaveRanges = PageRange.TryParse(pagerange, &lt;span style="color:blue;"&gt;out&lt;/span&gt; ranges);&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (bHaveRanges)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;int&lt;/span&gt;[] pageArray = ranges.ToArray();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue;"&gt;int&lt;/span&gt; number &lt;span style="color:blue;"&gt;in&lt;/span&gt; pageArray)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CreateImageFromPage(Pages[number], dpi, filename, number, extension, format);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: rgb(165, 20, 16);"&gt;"Processed page {0} of {1}"&lt;/span&gt;, number,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Pages.Count));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 130, 0);"&gt;// For each page, save off a file.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;int&lt;/span&gt; pageIndex = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (SolidFramework.Pdf.Plumbing.PdfPage page &lt;span style="color:blue;"&gt;in&lt;/span&gt; Pages)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 130, 0);"&gt;// Update the page number.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pageIndex++;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CreateImageFromPage(page, dpi, filename, pageIndex, extension, format);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: rgb(165, 20, 16);"&gt;"Processed page {0} of {1}"&lt;/span&gt;, pageIndex,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Pages.Count));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;br /&gt;We load each requested Page object and request a bitmap from that object. We then request that the bitmap object save itself to a file in the output directory with the requested ImageFormat type.&lt;br /&gt;&lt;div   style="width: 600px;font-family:'courier new',courier;font-size:8pt;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; &amp;nbsp;&amp;nbsp;CreateImageFromPage(SolidFramework.Pdf.Plumbing.PdfPage page,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;int&lt;/span&gt; dpi, &lt;span style="color:blue;"&gt;string&lt;/span&gt; filename, &lt;span style="color:blue;"&gt;int&lt;/span&gt; pageIndex, &lt;span style="color:blue;"&gt;string&lt;/span&gt; extension,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.Drawing.Imaging.ImageFormat format)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 130, 0);"&gt;// Create a bitmap from the page with set dpi.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bitmap bm = page.DrawBitmap(dpi);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 130, 0);"&gt;// Setup the filename. &lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;string&lt;/span&gt; filepath = &lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(filename + &lt;span style="color: rgb(165, 20, 16);"&gt;"-{0}.{1}"&lt;/span&gt;, pageIndex, extension);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 130, 0);"&gt;// If the file exits already, delete it. I.E. Overwrite it. &lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (File.Exists(filepath))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File.Delete(filepath);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 130, 0);"&gt;// Save the file. &lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bm.Save(filepath, format);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(0, 130, 0);"&gt;// Cleanup. &lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bm.Dispose();&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;br /&gt;And there you have it.  The requested images should have been created in the specified output directory. Since we are using the free developer trial license, each page image will have a watermark at the bottom if the page. To remove this watermark, read more about an annual license for the Solid Framework Tools Edition &lt;a href="http://www.soliddocuments.com/features.htm?product=SolidFramework"&gt;here&lt;/a&gt; ($250 or $500 per year depending on distribution, no royalties).&lt;br /&gt;&lt;br /&gt;Have any thoughts that you'd like to share? Please &lt;a href="http://www.soliddocuments.com/contact.htm"&gt;contact us&lt;/a&gt; with your feedback.&lt;img src="http://feeds.feedburner.com/~r/SolidDocumentsDeveloperBlog/~4/i314eo-fD44" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developer.soliddocuments.com/feeds/6898966337605161640/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2621035740736424879&amp;postID=6898966337605161640" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/6898966337605161640" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/6898966337605161640" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SolidDocumentsDeveloperBlog/~3/i314eo-fD44/convert-pdf-pages-to-image-files.html" title="Convert PDF pages to Image files" /><author><name>Greg Greenaae</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_lJ7c9ulBNkw/SgHC5jvd0lI/AAAAAAAAAAM/rRbK8vwRGY4/S220/solidframeworkpro_96x96.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_lJ7c9ulBNkw/SqG04_17lRI/AAAAAAAAABY/18DcecGd-C4/s72-c/blog_pdf_to_images.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://developer.soliddocuments.com/2009/09/convert-pdf-pages-to-image-files.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-4571475966637173614</id><published>2009-08-28T14:37:00.000-07:00</published><updated>2009-09-03T14:39:14.018-07:00</updated><title type="text">App Domain Switches and Solid Framework</title><content type="html">It has come to our attention that there is an issue with Solid Framework finding its support files when 3rd party assemblies are being used. The problem manifests itself as "Cannot find framework.dll" exception. &lt;br /&gt;&lt;br /&gt;To work around this issue your license call, or instance of the LicenseCollection Object should be placed at the very beginning of your application.  This license call should happen before any other 3rd party assembly is called.&lt;br /&gt;&lt;br /&gt;The 3rd party assemblies can change the App Domain and then the call to Solid Framework fails.  It looks within the App Domain searching for its support resources and when it doesn’t find them it assumes they have already been extracted and tries to load them.&lt;br /&gt;&lt;br /&gt;We have tracked this down with Oracle and other assemblies and fixed the bug. We should be releasing a new version of Solid Framework sometime in the next week.&lt;img src="http://feeds.feedburner.com/~r/SolidDocumentsDeveloperBlog/~4/LTCxcbedNV4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developer.soliddocuments.com/feeds/4571475966637173614/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2621035740736424879&amp;postID=4571475966637173614" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/4571475966637173614" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/4571475966637173614" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SolidDocumentsDeveloperBlog/~3/LTCxcbedNV4/working-around-framework-not-found-with.html" title="App Domain Switches and Solid Framework" /><author><name>Greg Greenaae</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_lJ7c9ulBNkw/SgHC5jvd0lI/AAAAAAAAAAM/rRbK8vwRGY4/S220/solidframeworkpro_96x96.png" /></author><thr:total>2</thr:total><feedburner:origLink>http://developer.soliddocuments.com/2009/08/working-around-framework-not-found-with.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-3141360934737917352</id><published>2009-08-24T13:32:00.000-07:00</published><updated>2009-09-23T15:36:58.410-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Extract Support Files" /><title type="text">Extracting Solid Framework support files.</title><content type="html">Developers may need to extract the support files in Solid Framework for a couple of reasons.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;To use the native C++ interface&lt;/li&gt;&lt;li&gt;Running scripts with SolidScript.exe&lt;/li&gt;&lt;/ul&gt;To facilitate this issue, we have uploaded a small console app that works with Solid Framework version 225 or greater&lt;a href="http://downloads.soliddocuments.com/beta/SDK/ExtractFramework.exe"&gt; here.&lt;/a&gt; Place the exe anywhere you like and run it with 2 parameters. The first parameter is the full path to Solid Framework.dll, and the second parameter is the path to where you want the extracted files to be placed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;ExtractFramework.exe "c:\development\Solid Framework\SoldFramework.dll" "d:\My Files\Framework"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will extract the support files from SolidFramework.dll sitting in c:\development\Solid Framework to the location d:\My Files\Framework.&lt;br /&gt;&lt;br /&gt;Note: We wrapped both paths with quotes on the command line because of spaces in the folder names. If your path has spaces, you should also use quotes.&lt;img src="http://feeds.feedburner.com/~r/SolidDocumentsDeveloperBlog/~4/2-oOcEG9Ks4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developer.soliddocuments.com/feeds/3141360934737917352/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2621035740736424879&amp;postID=3141360934737917352" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/3141360934737917352" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/3141360934737917352" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SolidDocumentsDeveloperBlog/~3/2-oOcEG9Ks4/extracting-solid-framework-support.html" title="Extracting Solid Framework support files." /><author><name>Greg Greenaae</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_lJ7c9ulBNkw/SgHC5jvd0lI/AAAAAAAAAAM/rRbK8vwRGY4/S220/solidframeworkpro_96x96.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://developer.soliddocuments.com/2009/08/extracting-solid-framework-support.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-4193105383083352160</id><published>2009-07-01T12:56:00.000-07:00</published><updated>2011-06-03T22:12:42.827-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PDF/A" /><title type="text">Solid Framework now does PDF/A</title><content type="html">&lt;div&gt;Solid Documents provides a free&lt;a href="http://www.validatepdfa.com/"&gt; online PDF/A Validation&lt;/a&gt; service that uses our recently released&lt;a href="http://www.soliddocuments.com/products.htm?product=SolidFramework"&gt; Solid Framework v6 SDK&lt;/a&gt; behind the scenes. Solid Framework is now available through an &lt;a href="http://www.soliddocuments.com/register_site.htm?product=SolidFramework"&gt;enterprise licensing&lt;/a&gt; model. The Tools and Professional levels include &lt;a href="http://www.soliddocuments.com/features.htm?product=SolidFramework"&gt;PDF/A Validation and PDF to PDF/A conversion&lt;/a&gt; functionality.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://www.soliddocuments.com/pdf/_standards_format/253/11"&gt;PDF/A Competence Center&lt;/a&gt; has a test suite for validating PDF/A Validators called the Isartor Test Suite.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Evaluate for Yourself&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;An easy way to test drive our PDF/A Validation technology is to download the &lt;a href="http://www.pdfa.org/doku.php?id=pdfa:en:isartor_test_suite:download"&gt;Isartor Test Suite&lt;/a&gt; (4MB ZIP) and then simply submit this ZIP file to our online PDF/A (ISO 19005 -1) validation service.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The online service will validate all 205 files in the ZIP and e-mail you an XML report, in &lt;a href="http://www.pdf-d.org/compliance-reports.htm"&gt;Open Compliance Report&lt;/a&gt; format, containing the PDF/A violations found in these file. All of the 205 files should exhibit errors, including the Isartor Test Suite Manual.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Download isartor-pdfa-2008-08-13.zip from &lt;a href="http://www.pdfa.org/doku.php?id=pdfa:en:isartor_test_suite:download"&gt;http://www.pdfa.org/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;2. Go to &lt;a href="http://www.validatepdfa.com/online.htm?step=1"&gt;http://www.validatepdfa.com/&lt;/a&gt; and step through the wizard.&lt;/div&gt;&lt;div&gt;3. Attach isartor-pdfa-2008-08-13.zip to the e-mail.&lt;/div&gt;&lt;div&gt;4. Sit back and wait for the response from our free validation service.&lt;/div&gt;&lt;div&gt;5. Examine the report to confirm that our PDF/A Validator is 100% compliant.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SolidDocumentsDeveloperBlog/~4/U3Rd4jO5oQI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developer.soliddocuments.com/feeds/4193105383083352160/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2621035740736424879&amp;postID=4193105383083352160" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/4193105383083352160" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/4193105383083352160" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SolidDocumentsDeveloperBlog/~3/U3Rd4jO5oQI/solid-framework-now-does-pdfa.html" title="Solid Framework now does PDF/A" /><author><name>Michael Cartwright</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://developer.soliddocuments.com/2009/07/solid-framework-now-does-pdfa.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-5606733437636147178</id><published>2008-09-15T12:37:00.000-07:00</published><updated>2011-06-03T21:51:39.144-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><category scheme="http://www.blogger.com/atom/ns#" term="PDF Conversion" /><title type="text">Convert PDF files to DOC Programmatically using ASP.NET</title><content type="html">One common topic in e-mails we receive is whether &lt;a href="http://www.soliddocuments.com/products.htm?product=SolidFramework"&gt;Solid Framework&lt;/a&gt; can be used in a web application or not.&lt;br /&gt;&lt;br /&gt;Solid Framework can be integrated into an ASP.NET project. A simple example how this might work is below:&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 511px; height: 304px;" src="http://www.soliddocuments.com/images/blog_developer_pdf_to_doc_programmatically_asp_dotnet_1.png"&gt;&lt;br /&gt;(screen shot from the sample project)&lt;br /&gt;&lt;br /&gt;This page provides the means for the end user to select a PDF file they wish to convert to DOC, select several conversion options and then type in their contact details so that the result may be e-mailed back to them. Clicking the &lt;a href="http://www.soliddocuments.com/convert/PDF-to-Word/303/11"&gt;Convert PDF to DOC&lt;/a&gt; button starts the upload and conversion process.&lt;br /&gt;&lt;br /&gt;You can download the sample &lt;a href="http://downloads.soliddocuments.com/solidframework/samples/pdf_to_doc_sample.zip"&gt;ASP.NET project&lt;/a&gt; [zip file] to see this in action for yourself. Those without Microsoft Visual Studio 2008 can use &lt;a href="http://www.microsoft.com/express/vwd/"&gt;Microsoft Visual Web Developer 2008&lt;/a&gt; for free to work with the sample project.&lt;br /&gt;&lt;br /&gt;Most of the project is implementation and doesn't require careful study. Two sections you'll likely want to look at in the C# code-behind file are below:&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 541px; height: 361px;" src="http://www.soliddocuments.com/images/blog_developer_pdf_to_doc_programmatically_asp_dotnet_2.png"&gt;&lt;br /&gt;This creates a new PdfToWordConverter object that you'll use to convert the PDF file to DOC. It checks the properties of several server controls on the page and sets the converter object's properties based on their values and then converts the file.&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 585px; height: 495px;" src="http://www.soliddocuments.com/images/blog_developer_pdf_to_doc_programmatically_asp_dotnet_3.png"&gt;&lt;br /&gt;This code creates a new MailMessage, attached the converted DOC file, creates a new SmtpClient, attaches the message and sends it. Those wanting to modify this should look at the MSDN documentation for the &lt;a href="http://msdn.microsoft.com/en-us/library/system.net.mail.aspx"&gt;System.Net.Mail namespace&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Configuration of the outgoing mail server settings (among other things) can be done in the &lt;a href="http://msdn.microsoft.com/en-us/library/aa306178.aspx"&gt;web.config&lt;/a&gt; file in the project.&lt;br /&gt;&lt;br /&gt;Assuming that you're using the default syntax highlighting in Microsoft Visual Web Developer just look for the friendly green comments in the web.config file for instructions. If you've configured the syntax highlighting to use an unfriendly color for comments we apologize in advance.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; Solid Framework is sold and licensed as a royalty-free SDK. Please review the &lt;a href="http://www.soliddocuments.com/license.htm?product=SolidFramework"&gt;Solid Framework licensing conditions&lt;/a&gt; and contact us if you need clarification.&lt;br /&gt;&lt;br /&gt;Have any thoughts that you'd like to share? Please &lt;a href="http://www.soliddocuments.com/contact.htm"&gt;contact us&lt;/a&gt; with your feedback.&lt;img src="http://feeds.feedburner.com/~r/SolidDocumentsDeveloperBlog/~4/j0tZTQRLRkc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developer.soliddocuments.com/feeds/5606733437636147178/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2621035740736424879&amp;postID=5606733437636147178" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/5606733437636147178" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/5606733437636147178" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SolidDocumentsDeveloperBlog/~3/j0tZTQRLRkc/convert-pdf-files-to-doc.html" title="Convert PDF files to DOC Programmatically using ASP.NET" /><author><name>Solid Documents</name><uri>http://www.blogger.com/profile/08325812318762675510</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="11" src="http://www.soliddocuments.com/images/soliddocuments_logo_150x45.png" /></author><thr:total>2</thr:total><feedburner:origLink>http://developer.soliddocuments.com/2008/09/convert-pdf-files-to-doc.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-4078139631830214893</id><published>2008-01-15T16:19:00.001-08:00</published><updated>2008-01-19T11:53:59.206-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Encryption" /><category scheme="http://www.blogger.com/atom/ns#" term="Passwords" /><category scheme="http://www.blogger.com/atom/ns#" term="Permissions" /><category scheme="http://www.blogger.com/atom/ns#" term="Security" /><title type="text">Reading and Writing Secure PDF Files</title><content type="html">&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;One of the most common unattended batch PDF processes is to apply standardized access permissions and encryption to all documents. This may be done as a stand-alone utility that uses a watched folder on your network or integrated into your document workflow system.&lt;br /&gt;&lt;br /&gt;With a &lt;a href="http://www.soliddocuments.com/features.htm?product=SolidFramework#comparison"&gt;Solid Framework Free license&lt;/a&gt; you can use PdfDocument to open an encrypted PDF file, assuming that you know either the owner or user password. With a &lt;a href="http://www.soliddocuments.com/features.htm?product=SolidFramework#comparison"&gt;Solid Framework Tools license&lt;/a&gt; you can write changes back to the PDF which means you can add, remove or alter the security settings.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img title="Add or Remove PDF Security" alt="Add or Remove PDF Security" src="http://www.soliddocuments.com/images/blog_encryption.png" border="0" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;The PdfDocument class is all you need in order to master PDF security using &lt;a href="http://www.soliddocuments.com/products.htm?product=SolidFramework"&gt;Solid Framework&lt;/a&gt;. The steps involved are:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Open() - opening an existing PDF file (with or without a password)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;EncryptionAlgorithm - choosing an encryption algorithm&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;OwnerPassword and UserPassword - setting new passwords&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Permissions: setting user access permissions for the PDF file&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Save() or SaveAs() - saving the modified PDF file&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;img style="font-family: verdana;" title="PdfDocument and Document classes" alt="PdfDocument and Document classes" src="http://www.soliddocuments.com/images/blog_pdf_document.png" border="0" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Open&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;As usual with these examples, please start by getting one of the samples like &lt;a href="http://www.soliddocuments.com/framework_samples.htm?product=SolidFramework"&gt;pdfcreator&lt;/a&gt; working. That will ensure that your license is working. Then we'll remove the code in the body of the Main method. Keep the License.Import(..) call.&lt;br /&gt;&lt;br /&gt;Make sure you have the following using statements:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;span style="color: rgb(51, 102, 255);"&gt;using &lt;/span&gt;SolidFramework;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;using &lt;/span&gt;SolidFramework.Plumbing;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;using &lt;/span&gt;SolidFramework.Pdf;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;using &lt;/span&gt;SolidFramework.Pdf.Plumbing;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;For convenience, we can still use the InputPath and OutputPath from JobSettings. Edit JobSettings to make InputPath point to your existing PDF file. Make OutputPath point to where you want the resulting PDF file stored.&lt;br /&gt;&lt;br /&gt;Create a new PdfDocument as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;PdfDocument &lt;/span&gt;document = &lt;span style="color: rgb(51, 102, 255);"&gt;new &lt;/span&gt;PdfDocument();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Set the properties including the owner password if the file is protected. The user password would give you readonly access to the file. To modify it, you need to use the owner password.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;document.Path = &lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);font-family:courier new;" &gt;JobSettings&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;.Default.InputPath;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;document.OwnerPassword = "&lt;span style="color: rgb(153, 51, 0);"&gt;owner&lt;/span&gt;";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And then load the file.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;document.Open();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;EncryptionAlgorithm&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If the file was already secure then its EncryptionAlgorithm will be set. You have several choices but you cannot leave this property Undefine&lt;span style="font-family: verdana;"&gt;d if you wish to use password security.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: verdana;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: verdana;font-size:85%;" &gt;&lt;img title="PDF encryption algorithms" alt="PDF encryption algorithm" src="http://www.soliddocuments.com/images/blog_encryption_algorithm.png" border="0" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: verdana;font-size:85%;" &gt;RC440Bit is of legacy interest only. In the past there were performance issues and there are also &lt;a href="http://www.soliddocuments.com/export.htm"&gt;export compliance&lt;/a&gt; issues related to the more secure 128 bit algorithms. AES is a more recent addition to the PDF standard than RC4 and RC4 is still a proprietary algorithm owned by RSA. It is also the most commonly used algorithm.&lt;br /&gt;&lt;br /&gt;Make your choice and set it like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;document.EncryptionAlgorithm = &lt;span style="color: rgb(51, 204, 255);"&gt;EncryptionAlgorithm&lt;/span&gt;.RC4128Bit;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;OwnerPassword and UserPassword&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;There are two levels of access to a PDF file:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;Owner - the author (owner) has this level of access to modify the document permissions allowed to users. The owner always has all permissions.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;User - the user's permissions are restricted by the owner.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;We'll set both passwords so that we can examine all the security features. It is possible to create PDF files with only the owner password. Obviously you will want to use much stronger passwords that include the odd number or special character. Remember that passwords are also case sensitive.&lt;br /&gt;&lt;br /&gt;document.OwnerPassword = "&lt;span style="color: rgb(153, 51, 0);"&gt;newowner&lt;/span&gt;";&lt;br /&gt;document.UserPassword = "&lt;span style="color: rgb(153, 51, 0);"&gt;user&lt;/span&gt;";&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Permissions&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;img style="font-family: verdana;" title="PDF access permissions" alt="PDF access permissions" src="http://www.soliddocuments.com/images/blog_access_permissions.png" border="0" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:85%;"&gt;These values can be or'd to give any combination of permissions to your users like this:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;document.Permissions = &lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);font-family:courier new;" &gt;AccessPermissions&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;.Printing | &lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);font-family:courier new;" &gt;AccessPermissions&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;.AccessForDisabilities;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;If you set the UserPassword then users will need to enter this password when they open the PDF file. After that, the restrictions based on AccessPermissions apply.&lt;br /&gt;If you leave the UserPassword blank then users will not need to enter any password but the document will still be restricted by AccessPermissions.  Opening the document and entering the owner password will give full permissions to the owner.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Save or SaveAs&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;Now it is time to save your PDF document to a new file. Assuming your OutputPath is set to a good location, you just need two more lines of code.  Without ForceOverwrite there will be an exception thrown if the file already exists.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;document.OverwriteMode = &lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);font-family:courier new;" &gt;OverwriteMode&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;.ForceOverwrite;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;document.SaveAs(&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);font-family:courier new;" &gt;JobSettings&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;.Default.OutputPath);&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;Complete Sample Snippet&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 153, 0);"&gt;// create&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="color: rgb(51, 204, 255);"&gt;PdfDocument &lt;/span&gt;document = &lt;span style="color: rgb(51, 102, 255);"&gt;new &lt;/span&gt;PdfDocument();&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;// set&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;document.Path = &lt;span style="color: rgb(51, 204, 255);"&gt;JobSettings&lt;/span&gt;.Default.InputPath;&lt;br /&gt;document.OwnerPassword = "&lt;span style="color: rgb(153, 51, 0);"&gt;owner&lt;/span&gt;";&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;// call&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;document.Open();&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;// set&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;document.EncryptionAlgorithm = &lt;span style="color: rgb(51, 204, 255);"&gt;EncryptionAlgorithm&lt;/span&gt;.RC4128Bit;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;document.OwnerPassword = "&lt;span style="color: rgb(153, 51, 0);"&gt;newowner&lt;/span&gt;";&lt;br /&gt;document.UserPassword = "&lt;span style="color: rgb(153, 51, 0);"&gt;user&lt;/span&gt;";&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;document.Permissions = &lt;span style="color: rgb(51, 204, 255);"&gt;AccessPermissions&lt;/span&gt;.Printing | &lt;span style="color: rgb(51, 204, 255);"&gt;AccessPermissions&lt;/span&gt;.AccessForDisabilities;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;document.OverwriteMode = &lt;span style="color: rgb(51, 204, 255);"&gt;OverwriteMode&lt;/span&gt;.ForceOverwrite;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;// call&lt;/span&gt;&lt;br /&gt;document.SaveAs(&lt;span style="color: rgb(51, 204, 255);"&gt;JobSettings&lt;/span&gt;.Default.OutputPath);&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/SolidDocumentsDeveloperBlog/~4/KCArEV42kws" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developer.soliddocuments.com/feeds/4078139631830214893/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2621035740736424879&amp;postID=4078139631830214893" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/4078139631830214893" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/4078139631830214893" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SolidDocumentsDeveloperBlog/~3/KCArEV42kws/reading-and-writing-secure-pdf-files.html" title="Reading and Writing Secure PDF Files" /><author><name>Solid Documents</name><uri>http://www.blogger.com/profile/08325812318762675510</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="11" src="http://www.soliddocuments.com/images/soliddocuments_logo_150x45.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://developer.soliddocuments.com/2008/01/reading-and-writing-secure-pdf-files.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-8058944788605304431</id><published>2007-12-27T15:48:00.000-08:00</published><updated>2011-06-03T22:17:19.257-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Document Properties" /><category scheme="http://www.blogger.com/atom/ns#" term="PDF Creation" /><title type="text">Better PDF Creation from Word</title><content type="html">&lt;span style=";font-family:verdana;font-size:130%;"  &gt;ShellPrintProvider vs WordPrintProvider&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;The starting point for many developers using &lt;a href="http://www.soliddocuments.com/products.htm?product=SolidFramework"&gt;Solid Framework&lt;/a&gt; is the simple &lt;a href="http://www.soliddocuments.com/framework_samples.htm?product=SolidFramework"&gt;pdfcreator&lt;/a&gt; sample. This tiny program demonstrates the shortest path to creating PDF files from just about any document on a Windows system. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;ShellPrintProvider&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Using ShellPrintProvider, three or four statements are all that is needed to create a PDF file:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;img title="ShellPrintProvider sample code" alt="ShellPrintProvider sample code" src="http://www.soliddocuments.com/images/blog_wordprintprovider_pdfcreator.png" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;The ShellPrintProvider uses Windows Explorer to launch the application associated with the file type you are trying to convert. This only works if the application in question supports the shell “print” verb. In addition, print providers can use any of the supported Solid Documents PDF creation printer drivers. This example requires the &lt;a href="http://www.soliddocuments.com/download.htm?product=SolidPDFCreator"&gt;Solid PDF Creator&lt;/a&gt; printer driver to be installed (but does not require a Solid PDF Creator license).&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;br /&gt;&lt;strong&gt;Advantages of ShellPrintProvider:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;&lt;ul&gt;&lt;li&gt;works with most Windows applications capable of printing&lt;/li&gt;&lt;li&gt;relies on Explorer Shell commands rather than proprietary APIs which may vary with different versions of applications&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Disadvantages of ShellPrintProvider&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;no control over the UI of the Windows application (even Word can get stuck on a simple print margins warning dialog)&lt;/li&gt;&lt;li&gt;limited to what can be printed (no access to original Document Properties for example)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;WordPrintProvider&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;WordPrintProvider is a custom PrintProvider designed to work directly with Microsoft Word via the Office API. Since Word is being driven through an API this gives Solid Framework much more control over the process. Failures can be communicated as exceptions to your program rather than UI warnings to the end user. In addition, Word can be used to examine the original document and provide support for features that would not be possible by simple printing such as the original Document Properties. To illustrate this, use File Properties in Word to add properties to your Word test document like this:&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;img title="Document Properties in Word" alt="Document Properties in Word" src="http://www.soliddocuments.com/images/blog_wordprintprovider_acrobat.png" border="0" /&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;Now make two simple changes to the original &lt;a href="http://www.soliddocuments.com/framework_samples.htm?product=SolidFramework"&gt;pdfcreator&lt;/a&gt; sample:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;replace the two instances of &lt;span style="font-family:courier new;"&gt;ShellPrintProvider&lt;/span&gt; with &lt;span style="font-family:courier new;"&gt;WordPrintProvider&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;add &lt;span style="font-family:courier new;"&gt;printer.PreserveProperties = true;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img title="WordPrintProvider sample code" alt="WordPrintProvider sample code" src="http://www.soliddocuments.com/images/blog_wordprintprovider_wordprintprovider.png" border="0" /&gt; &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=";font-family:verdana;font-size:85%;"  &gt;When you run the sample application and then examine File Properties for the resulting PDF file in Acrobat Reader you should see that your Document Properties from the original Word document have been preserved. You should also notice a lot less UI “noise” from Microsoft Word during the creation process. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img title="Document Properties in PDF" alt="Document Properties in PDF" src="http://www.soliddocuments.com/images/blog_wordprintprovider_word.png" border="0" /&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SolidDocumentsDeveloperBlog/~4/pS0BlHM7VSY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://developer.soliddocuments.com/feeds/8058944788605304431/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2621035740736424879&amp;postID=8058944788605304431" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/8058944788605304431" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2621035740736424879/posts/default/8058944788605304431" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SolidDocumentsDeveloperBlog/~3/pS0BlHM7VSY/better-pdf-creation-from-word.html" title="Better PDF Creation from Word" /><author><name>Solid Documents</name><uri>http://www.blogger.com/profile/08325812318762675510</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="11" src="http://www.soliddocuments.com/images/soliddocuments_logo_150x45.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://developer.soliddocuments.com/2007/12/better-pdf-creation-from-word.html</feedburner:origLink></entry></feed>
