<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/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'><id>tag:blogger.com,1999:blog-2621035740736424879</id><updated>2024-10-06T20:38:26.844-07:00</updated><category term=".NET"/><category term="PDF Conversion"/><category term="Solid Framework"/><category term="release framework"/><category term="C++"/><category term="Downloading Solid Framework SDK"/><category term="OCR"/><category term="SDK Samples"/><category term="Scripting Solid Framework"/><category term="PDF Creation"/><category term="PDF to Word"/><category term="PDF/A"/><category term="Permissions"/><category term="ASP.NET"/><category term="Acrobat X"/><category term="Adobe"/><category term="Document Properties"/><category term="Encryption"/><category term="Extract"/><category term="Extract Support Files"/><category term="Install"/><category term="PDF to HTML"/><category term="PDF to PowerPoint"/><category term="Passwords"/><category term="Security"/><title type='text'>Solid Documents Developer Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://developer.soliddocuments.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default'/><link rel='alternate' type='text/html' href='http://developer.soliddocuments.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.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>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-4067629280485565506</id><published>2021-08-26T14:35:00.001-07:00</published><updated>2021-08-26T14:35:03.857-07:00</updated><title type='text'>Solid Documents is now part of the PDFTron family of companies!</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;This acquisition combines PDFTron’s world-leading digital content 
platform with Solid Documents’ best-in-class document reconstruction and
 archiving solutions.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;a href=&quot;https://www.pdftron.com/blog/news/pdftron-acquires-soliddocuments/&quot;&gt;Learn more -&amp;gt;&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://developer.soliddocuments.com/feeds/4067629280485565506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2621035740736424879/4067629280485565506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/4067629280485565506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/4067629280485565506'/><link rel='alternate' type='text/html' href='http://developer.soliddocuments.com/2021/08/solid-documents-is-now-part-of-pdftron.html' title='Solid Documents is now part of the PDFTron family of companies!'/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/blank.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-4100207421109482841</id><published>2017-02-13T14:55:00.002-08:00</published><updated>2017-02-13T14:55:57.683-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET"/><category scheme="http://www.blogger.com/atom/ns#" term="C++"/><category scheme="http://www.blogger.com/atom/ns#" term="Downloading Solid Framework SDK"/><category scheme="http://www.blogger.com/atom/ns#" term="OCR"/><category scheme="http://www.blogger.com/atom/ns#" term="PDF Conversion"/><category scheme="http://www.blogger.com/atom/ns#" term="release framework"/><category scheme="http://www.blogger.com/atom/ns#" term="Scripting Solid Framework"/><category scheme="http://www.blogger.com/atom/ns#" term="SDK Samples"/><category scheme="http://www.blogger.com/atom/ns#" term="Solid Framework"/><title type='text'>Solid Framework 7514</title><content type='html'>&lt;div&gt;
In the last 6 months, we have worked on 500+ issues across all of our products. &amp;nbsp;80% of our time has been spent focusing on our Solid Framework product.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Solid Framework 7514 is now available in our Developer Portal.&amp;nbsp; We have resolved several high priority (showstopper / crash / hang) issues, related to:&lt;/div&gt;
&lt;div&gt;
-Page Range&lt;/div&gt;
&lt;div&gt;
-Generic Print Provider&lt;/div&gt;
&lt;div&gt;
-Job Processor Rendering PDF Page Collection&lt;/div&gt;
&lt;div&gt;
-Infinite loop in CLineInfo::&lt;wbr&gt;&lt;/wbr&gt;correctCharSpacings()&lt;/div&gt;
&lt;div&gt;
-Conversions with JBIG2DECODE&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
New features:&lt;/div&gt;
&lt;div&gt;
Tesseract OCR for CJK content&lt;/div&gt;
&lt;div&gt;
Solid Core Model API - Text Bounding&lt;/div&gt;
&lt;div&gt;
C++ Sample - Extract Text using Text Bounding&lt;/div&gt;
&lt;div&gt;
PDF to Word - Annotations to Word comments&lt;/div&gt;
&lt;div&gt;
Support for Superscript and Subscript content&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
We have made various improvements and bug fixes to:&lt;/div&gt;
&lt;div&gt;
-Conversion layout and fonts&lt;/div&gt;
&lt;div&gt;
-Rendering&lt;/div&gt;
&lt;div&gt;
-Table detection and merging&lt;/div&gt;
&lt;div&gt;
-Lists and bullets&lt;/div&gt;
&lt;div&gt;
-Scanned page detection&lt;/div&gt;
&lt;div&gt;
-Performance&lt;/div&gt;
&lt;div&gt;
-CGM/NSE improvements&lt;/div&gt;
&lt;div&gt;
-OCR&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Log into your developer portal account to access the latest SDK. If you don&#39;t have an account, create one on our &lt;a href=&quot;https://www.soliddocuments.com/download.htm?product=SolidFramework&quot;&gt;website&lt;/a&gt;.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://developer.soliddocuments.com/feeds/4100207421109482841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2621035740736424879/4100207421109482841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/4100207421109482841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/4100207421109482841'/><link rel='alternate' type='text/html' href='http://developer.soliddocuments.com/2017/02/solid-framework-7514.html' title='Solid Framework 7514'/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/blank.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-3698203054411261771</id><published>2016-03-09T16:38:00.004-08:00</published><updated>2016-03-09T16:45:27.284-08: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="SDK Samples"/><category scheme="http://www.blogger.com/atom/ns#" term="Solid Framework"/><title type='text'>C++ Sample Project using Solid Framework SDK</title><content type='html'>&lt;div class=&quot;body&quot;&gt;
With Solid Framework C++ SDK you can integrate the same PDF to Word technology used in Adobe® Acrobat® into your product for as little as a 10 MB increase in your installer size.&lt;/div&gt;
&lt;div class=&quot;body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;body&quot;&gt;
These C++ sample applications are available as ready-to-build Visual Studio projects and also as ready-to-run downloadable MSI installers. In both cases the samples work with developer licenses that you can generate using our self-service Developer Portal. In addition, the ready-to-run samples will also work with regular Solid PDF Tools desktop licenses (contact sales@soliddocuments.com for a reviewer license).&lt;/div&gt;
&lt;div class=&quot;body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;body&quot;&gt;
&lt;a href=&quot;http://www.soliddocuments.com/images/cplusplus_sample.png&quot;&gt;&lt;img src=&quot;http://www.soliddocuments.com/images/cplusplus_sample.png&quot; height=&quot;366&quot; width=&quot;500&quot; /&gt;&lt;/a&gt; &lt;/div&gt;
&lt;div class=&quot;body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;body&quot;&gt;
&lt;a href=&quot;http://www.soliddocuments.com/frameworksample.htm?subject=CPlusSample&quot;&gt;C++ sample&lt;/a&gt; is on our SDK documentation page along with other sample projects to get you going.&lt;/div&gt;
&lt;div class=&quot;body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;body&quot;&gt;
Solid Framework comes in two editions: a tools version and a professional version and is immediately available for download. Pricing for internal use of the professional version of the SDK starts at $1500/year. Licensing is also available for public redistribution. Licensing, distribution and product feature information is available at: &lt;a href=&quot;http://www.solidframework.net/&quot;&gt;http://www.solidframework.net/&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://developer.soliddocuments.com/feeds/3698203054411261771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2621035740736424879/3698203054411261771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/3698203054411261771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/3698203054411261771'/><link rel='alternate' type='text/html' href='http://developer.soliddocuments.com/2016/03/c-sample-project-using-solid-framework.html' title='C++ Sample Project using Solid Framework SDK'/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/blank.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-792506849780323381</id><published>2015-11-10T19:17:00.000-08:00</published><updated>2015-11-10T19:19:07.275-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="C++"/><category scheme="http://www.blogger.com/atom/ns#" term="OCR"/><category scheme="http://www.blogger.com/atom/ns#" term="PDF Conversion"/><category scheme="http://www.blogger.com/atom/ns#" term="release framework"/><category scheme="http://www.blogger.com/atom/ns#" term="Scripting Solid Framework"/><title type='text'>Solid Framework - v9.1 build 6068</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;h3&gt;
v9.1 build 6068 of&amp;nbsp;Solid Framework Released&lt;/h3&gt;
&lt;br /&gt;
We have released an update to the Solid Framework SDK. A few of the highlights include:

&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
- OCR Performance Improvements&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-pC1myYtY44U/VkKxQ-jAzrI/AAAAAAAAAao/X1YxzYy7IGs/s1600/ocr-6068.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;http://2.bp.blogspot.com/-pC1myYtY44U/VkKxQ-jAzrI/AAAAAAAAAao/X1YxzYy7IGs/s320/ocr-6068.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
- Reduced XML Complexity for .DOCX.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://1.bp.blogspot.com/-DJB-0Qjvi90/VkKzkJgJp4I/AAAAAAAAAaw/1P7airBEMmA/s1600/xml-6068.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;221&quot; src=&quot;http://1.bp.blogspot.com/-DJB-0Qjvi90/VkKzkJgJp4I/AAAAAAAAAaw/1P7airBEMmA/s320/xml-6068.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
While this work was done primarily to help Apple software open .DOCX files, this improvement is also beneficial for making .DOCX output more editable.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
- Vector Text and Graphics Conversion Work&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;
- General PDF conversion quality improvements&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The SDK is available from the developer &lt;a href=&quot;https://www.soliddocuments.com/download.htm?product=SolidFramework&quot; target=&quot;_blank&quot;&gt;portal&lt;/a&gt;.

&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://developer.soliddocuments.com/feeds/792506849780323381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2621035740736424879/792506849780323381' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/792506849780323381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/792506849780323381'/><link rel='alternate' type='text/html' href='http://developer.soliddocuments.com/2015/11/solid-framework-v91-build-6068.html' title='Solid Framework - v9.1 build 6068'/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/blank.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-pC1myYtY44U/VkKxQ-jAzrI/AAAAAAAAAao/X1YxzYy7IGs/s72-c/ocr-6068.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-8591528593827670128</id><published>2014-12-15T17:17:00.002-08:00</published><updated>2014-12-15T18:06:59.782-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Extract"/><category scheme="http://www.blogger.com/atom/ns#" term="Install"/><category scheme="http://www.blogger.com/atom/ns#" term="Solid Framework"/><title type='text'>Extracting Solid Framework for Installations.</title><content type='html'>&lt;span style=&quot;font-family: inherit;&quot;&gt;Solid Framework is designed to extract its support files to the current users %AppData% directory on load. This is convenient, as there is only one dll to manage in your installer. But sometimes this can cause issues. One issue that can arise is a sporadic issue with overzealous 3rd party malware applications deleting the support files in the %AppData% folder, even though they are signed, strong named and time stamped. To work around this, you can extract the support files beforehand and reference these files in your installer.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;To extract the 32 and 64 bit support folders from Solid Framework, you use the &lt;a href=&quot;http://downloads.soliddocuments.com/solidframework/ExtractFramework.exe&quot;&gt;ExtractFramework.exe tool&lt;/a&gt;. Download the tool and SolidFramework AnyCPU dll into a folder. On the command line, run “ExtractFramework.exe .\SolidFramework.dll &amp;lt;Extraction folder&amp;gt; All”. &amp;lt;Extraction folder&amp;gt; should be replaced with a directory of your choosing.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/-9JZ_Ig-v4Kc/VI-Fsr9JhKI/AAAAAAAAAdA/H8ZSfjZ4YvQ/s1600/console.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/-9JZ_Ig-v4Kc/VI-Fsr9JhKI/AAAAAAAAAdA/H8ZSfjZ4YvQ/s1600/console.png&quot; height=&quot;369&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-1nA-ltqgeRs/VI-F2ihHf3I/AAAAAAAAAdI/bzkGCG_AfNU/s1600/folder.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/-1nA-ltqgeRs/VI-F2ihHf3I/AAAAAAAAAdI/bzkGCG_AfNU/s1600/folder.png&quot; height=&quot;307&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;The All parameter tells ExtractFramework.exe to extract both the
32 and 64 bit folders. If you are releasing a 32 bit, or 64 bit only
application, you can use Win32 or Win64 in place of All.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://1.bp.blogspot.com/-kA2lkBjDr8w/VI-GUz9ErsI/AAAAAAAAAdQ/0HauX27grFE/s1600/args.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-kA2lkBjDr8w/VI-GUz9ErsI/AAAAAAAAAdQ/0HauX27grFE/s1600/args.png&quot; height=&quot;188&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;We include both Win32 and Win64 folders in our installers.
During installation, we detect if the OS is 32 or 64 bit, and install the
appropriate folder to the application’s program
directory. Do not include the larger SolidFramework AnyCPU dll in your install, because a smaller, 32 or 64 bit version is included in the Win32 or Win64 folders that
will be installed in the application’s program directory that satisfies the
application’s reference to SolidFramework.dll.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://3.bp.blogspot.com/-PWvk6fJ0vys/VI-GgiEtZlI/AAAAAAAAAdY/W120lJBx8L0/s1600/size.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/-PWvk6fJ0vys/VI-GgiEtZlI/AAAAAAAAAdY/W120lJBx8L0/s1600/size.png&quot; height=&quot;290&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://developer.soliddocuments.com/feeds/8591528593827670128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2621035740736424879/8591528593827670128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/8591528593827670128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/8591528593827670128'/><link rel='alternate' type='text/html' href='http://developer.soliddocuments.com/2014/12/extracting-solid-framework-for.html' title='Extracting Solid Framework for Installations.'/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/blank.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-9JZ_Ig-v4Kc/VI-Fsr9JhKI/AAAAAAAAAdA/H8ZSfjZ4YvQ/s72-c/console.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-7040584021638756151</id><published>2014-08-06T14:29:00.004-07:00</published><updated>2014-08-06T14:30:25.508-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Downloading Solid Framework SDK"/><category scheme="http://www.blogger.com/atom/ns#" term="OCR"/><category scheme="http://www.blogger.com/atom/ns#" term="PDF Conversion"/><category scheme="http://www.blogger.com/atom/ns#" term="PDF to Word"/><category scheme="http://www.blogger.com/atom/ns#" term="release framework"/><category scheme="http://www.blogger.com/atom/ns#" term="Scripting Solid Framework"/><title type='text'>v9.1 build 5015 of Solid Framework Released</title><content type='html'>&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;&quot;&gt;
&lt;div style=&quot;font-size: 14px; line-height: 21px;&quot;&gt;
&lt;span style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;We have just released an update to the Solid Framework SDK. A few of the highlights include:&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;&quot;&gt;
&lt;ul&gt;
&lt;li style=&quot;margin-left: 15px;&quot;&gt;&lt;span style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 21px;&quot;&gt;Improved rendering&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-left: 15px;&quot;&gt;&lt;span style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 21px;&quot;&gt;OCR improvements to French, German and Russian language&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-left: 15px;&quot;&gt;&lt;span style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 21px;&quot;&gt;Improved OCR support for san-serif high aspect ratio fixed pitch fonts&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-left: 15px;&quot;&gt;&lt;span style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 21px;&quot;&gt;Better table detection and conversion&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-left: 15px;&quot;&gt;&lt;span style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 21px;&quot;&gt;Improved font scaling&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-left: 15px;&quot;&gt;&lt;span style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 21px;&quot;&gt;Improved image processing&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;&quot;&gt;
&lt;div style=&quot;font-size: 14px; line-height: 21px;&quot;&gt;
The SDK is available from the developer&amp;nbsp;&lt;a href=&quot;https://www.soliddocuments.com/download.htm?product=SolidFramework&quot; style=&quot;color: #1155cc; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;portal&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://developer.soliddocuments.com/feeds/7040584021638756151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2621035740736424879/7040584021638756151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/7040584021638756151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/7040584021638756151'/><link rel='alternate' type='text/html' href='http://developer.soliddocuments.com/2014/08/v91-build-5015-of-solid-framework.html' title='v9.1 build 5015 of Solid Framework Released'/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/blank.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-3269537362563052136</id><published>2014-06-11T19:26:00.000-07:00</published><updated>2014-06-23T19:37:32.688-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="release framework"/><category scheme="http://www.blogger.com/atom/ns#" term="Solid Framework"/><title type='text'>New release of Solid Framework v9 Available</title><content type='html'>&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;&quot;&gt;
&lt;div style=&quot;font-size: 14px; line-height: 21px;&quot;&gt;
&lt;span style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;color: #202020; font-size: 22px; font-weight: bold; line-height: 22px;&quot;&gt;v9 build 4823 of Solid Framework Released&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: 14px; line-height: 21px;&quot;&gt;
&lt;span style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;We have just released a major update to the Solid Framework SDK. A few of the highlights include:&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;&quot;&gt;
&lt;ul&gt;
&lt;li style=&quot;margin-left: 15px;&quot;&gt;&lt;span style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 21px;&quot;&gt;Multi-processor parallel performance improvements with OCR (scanned PDF to Word, scanned PDF to PDF/A)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-left: 15px;&quot;&gt;&lt;span style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 21px;&quot;&gt;Less complex XML output for .DOCX which improves machine consumption of output and improves editing of Word documents&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-left: 15px;&quot;&gt;&lt;span style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 21px;&quot;&gt;Many PDF to Microsoft Word, Powerpoint, Excel and text conversion improvements&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-left: 15px;&quot;&gt;&lt;span style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 21px;&quot;&gt;Complex table reconstruction improvements&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-left: 15px;&quot;&gt;&lt;span style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 21px;&quot;&gt;Data recovery from scanned PDFs into Microsoft Excel&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;&quot;&gt;
&lt;div style=&quot;font-size: 14px; line-height: 21px;&quot;&gt;
The SDK is available from the developer&amp;nbsp;&lt;a href=&quot;https://www.soliddocuments.com/download.htm?product=SolidFramework&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;portal&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://developer.soliddocuments.com/feeds/3269537362563052136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2621035740736424879/3269537362563052136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/3269537362563052136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/3269537362563052136'/><link rel='alternate' type='text/html' href='http://developer.soliddocuments.com/2014/06/new-release-of-solid-framework-v9.html' title='New release of Solid Framework v9 Available'/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/blank.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-3638106895527076736</id><published>2013-12-01T15:24:00.000-08:00</published><updated>2013-12-01T17:29:22.250-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Downloading Solid Framework SDK"/><title type='text'>Eating our own dog food ...</title><content type='html'>&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;b&gt;Eating your own dog food&lt;/b&gt;, also called &lt;b&gt;dogfooding&lt;/b&gt;, is slang&amp;nbsp;used to reference a scenario in which a company uses its own technology to demonstrate the quality and capabilities of the product.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;All our v8 applications are built using &lt;a href=&quot;http://www.soliddocuments.com/products.htm?product=SolidFramework&quot;&gt;Solid Framework&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;The v8 rewrite was a conscious shift back to our core features: a focus on document reconstruction functionality.&amp;nbsp;The rewrite was required to take advantage of 64-bit architectures and multi-core processors. A rewrite using Microsoft .NET was required so that we could engineer the product using our own Solid Framework SDK (unlike the older products which were based on legacy architecture).&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;We have confidence that our .NET Solid Framework SDK is the best document reconstruction SDK available on the market. We have built our latest &lt;a href=&quot;http://www.soliddocuments.com/pdf/-to-word-converter/304/1&quot;&gt;desktop&lt;/a&gt; and &lt;a href=&quot;http://www.soliddocuments.com/products.htm?product=SolidCommander&quot;&gt;batch&lt;/a&gt; solutions using this technology.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;You can use Solid Framework with confidence too. Create a &lt;a href=&quot;https://www.soliddocuments.com/download.htm?product=SolidFramework&quot;&gt;developer portal account&lt;/a&gt; and get started today.&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://developer.soliddocuments.com/feeds/3638106895527076736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2621035740736424879/3638106895527076736' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/3638106895527076736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/3638106895527076736'/><link rel='alternate' type='text/html' href='http://developer.soliddocuments.com/2013/12/eating-our-own-dog-food.html' title='Eating our own dog food ...'/><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></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-3816395389945932515</id><published>2013-11-05T14:59:00.000-08:00</published><updated>2013-12-01T15:27:29.188-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Solid Framework"/><title type='text'>Solid Framework 8.2.4053 Available</title><content type='html'>New release of Solid Framework SDK is available from the &lt;a href=&quot;https://www.soliddocuments.com/download.htm?product=SolidFramework&quot;&gt;developer portal&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://developer.soliddocuments.com/feeds/3816395389945932515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2621035740736424879/3816395389945932515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/3816395389945932515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/3816395389945932515'/><link rel='alternate' type='text/html' href='http://developer.soliddocuments.com/2013/11/solid-framework-824053-available.html' title='Solid Framework 8.2.4053 Available'/><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></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-8539462597508232376</id><published>2013-05-22T15:02:00.000-07:00</published><updated>2013-12-01T15:04:51.732-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Downloading Solid Framework SDK"/><title type='text'>Solid Framework 8.1.3544</title><content type='html'>Solid Framework Update available: 8.1.3544.&lt;br /&gt;
&lt;br /&gt;
Access dlls from the &lt;a href=&quot;https://www.soliddocuments.com/download.htm?product=SolidFramework&quot;&gt;developer portal&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://developer.soliddocuments.com/feeds/8539462597508232376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2621035740736424879/8539462597508232376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/8539462597508232376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2621035740736424879/posts/default/8539462597508232376'/><link rel='alternate' type='text/html' href='http://developer.soliddocuments.com/2013/05/solid-framework-813544.html' title='Solid Framework 8.1.3544'/><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></entry><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=&quot;http://www.soliddocuments.com/solid-ocr.htm&quot;&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=&quot;http://www.soliddocuments.com/download.htm?product=SolidFramework&quot;&gt;Developer Portal&lt;/a&gt; at soliddocuments.com.&lt;br /&gt;
&lt;ul&gt;
&lt;/ul&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/fullpage/post/2621035740736424879/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://developer.soliddocuments.com/2012/09/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></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=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEeoFtyaK5od4A1EePtpP6zA6573Ab2lqM7Qhv1535oZpx6dq9Pqsy9nHxBpgt-x8I-FNJ2hrs0_tW91-QKoQrBukizwV-He_OBtUzlK19GSMafRrQZ5bVcqSuxbaku8Rf79rm9KRW1-k/s1600/change_cpu_conf_manager.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;185&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEeoFtyaK5od4A1EePtpP6zA6573Ab2lqM7Qhv1535oZpx6dq9Pqsy9nHxBpgt-x8I-FNJ2hrs0_tW91-QKoQrBukizwV-He_OBtUzlK19GSMafRrQZ5bVcqSuxbaku8Rf79rm9KRW1-k/s400/change_cpu_conf_manager.png&quot; width=&quot;400&quot; /&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=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5pQe516vy_D8GAazBSI3N9E_KyTosoXKDW1aRfzscBaGlnQLnfecvj_8mxLks4SZHiWBVP57vCk7Xe8MOALIVT5MweaIcdoCxQ3ZTTtjEerAwzJvHgdAkSEzbkQQdFltk3TQZE2hu9Ss/s1600/change_cpu_2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;252&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5pQe516vy_D8GAazBSI3N9E_KyTosoXKDW1aRfzscBaGlnQLnfecvj_8mxLks4SZHiWBVP57vCk7Xe8MOALIVT5MweaIcdoCxQ3ZTTtjEerAwzJvHgdAkSEzbkQQdFltk3TQZE2hu9Ss/s400/change_cpu_2.png&quot; width=&quot;400&quot; /&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=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb4_bv0efy6xArY9zd7SsaYnYfCb2lDAS7WlqW24qqukBRmQnSzFyO5yEb1Qq6PcQXqeNfbq5EhL4fgajDRdpcr1-IjOxsIDUiveCXXQAPZAt0U6OZi7KRdOrqrkLOj8PLxkzRGVLUYCM/s1600/change_cpu_3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb4_bv0efy6xArY9zd7SsaYnYfCb2lDAS7WlqW24qqukBRmQnSzFyO5yEb1Qq6PcQXqeNfbq5EhL4fgajDRdpcr1-IjOxsIDUiveCXXQAPZAt0U6OZi7KRdOrqrkLOj8PLxkzRGVLUYCM/s400/change_cpu_3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&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=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9KVz4KEUlYDRXAsdTmPIgPdNi750eqv8-vKyS0lcIWJWj6FqTHVJ3Zyrg955P7m23J_3r48DpkRT0XqBoI-cZ9vmKkUpwb_-JVWGXgpY1nGXmvykFaAxoD3JwkRUAT3ZN4JTezeTzJPY/s1600/change_cpu_4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;263&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9KVz4KEUlYDRXAsdTmPIgPdNi750eqv8-vKyS0lcIWJWj6FqTHVJ3Zyrg955P7m23J_3r48DpkRT0XqBoI-cZ9vmKkUpwb_-JVWGXgpY1nGXmvykFaAxoD3JwkRUAT3ZN4JTezeTzJPY/s400/change_cpu_4.png&quot; width=&quot;400&quot; /&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=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihEaYCY6a8T-GuMTkuqnDCuoD6eOi7vXyVAyWvDnsg90cHctbYWLbu8ORo89QtUqXn5AAg9i6sm01uJcqXyfYi7CiPIyUbKrpjIvX0AxVnw0k6V-c0NseUO7FEWmETDRGP1IVoSUhE02U/s1600/change_cpu_5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;275&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihEaYCY6a8T-GuMTkuqnDCuoD6eOi7vXyVAyWvDnsg90cHctbYWLbu8ORo89QtUqXn5AAg9i6sm01uJcqXyfYi7CiPIyUbKrpjIvX0AxVnw0k6V-c0NseUO7FEWmETDRGP1IVoSUhE02U/s400/change_cpu_5.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&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/fullpage/post/2621035740736424879/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://developer.soliddocuments.com/2012/09/how-to-change-configuration-in-your.html' title='How to change the configuration in your project to 64 bits'/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/blank.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEeoFtyaK5od4A1EePtpP6zA6573Ab2lqM7Qhv1535oZpx6dq9Pqsy9nHxBpgt-x8I-FNJ2hrs0_tW91-QKoQrBukizwV-He_OBtUzlK19GSMafRrQZ5bVcqSuxbaku8Rf79rm9KRW1-k/s72-c/change_cpu_conf_manager.png" height="72" width="72"/><thr:total>0</thr:total></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=&quot;http://www.soliddocuments.com/documentation.htm?product=SolidFramework&quot;&gt;here&lt;/a&gt; under our documentation page.&lt;br /&gt;
&lt;br /&gt;
Email us at &lt;a href=&quot;mailto:support@soliddocuments.com&quot;&gt;support@soliddocuments.com&lt;/a&gt; to request other code samples.</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://developer.soliddocuments.com/2012/08/code-samples-and-video-tutorials.html' title='Code Samples and Video Tutorials'/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/blank.gif'/></author></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=&quot;http://www.solidframework.net/&quot;&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=&quot;http://www.soliddocuments.com/pdf/_solidframework_adobe_x/300&quot;&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=&quot;http://www.pcmag.com/article2/0,2817,2370981,00.asp&quot; rel=&quot;nofollow&quot;&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=&quot;http://www.eweek.com/c/a/Application-Development/Adobe-Acrobat-X-10-Reasons-to-Move-to-It-Now-179555/&quot; rel=&quot;nofollow&quot;&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=&quot;http://www.pcworld.com/reviews/product/707770/review/acrobat_x_pro.html&quot; rel=&quot;nofollow&quot;&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=&quot;http://www.pdfforlawyers.com/2010/10/improved-export-to-word-in-acrobat-x.html&quot; rel=&quot;nofollow&quot;&gt;http://www.pdfforlawyers.com/2010/10/improved-export-to-word-in-acrobat-x.html&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.pdfforlawyers.com/2010/10/adobe-announces-acrobat-10-my-quick-review.html&quot; rel=&quot;nofollow&quot;&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=&quot;http://www.businessinsider.com/hands-on-with-adobe-acrobat-x-pro-2010-11&quot; rel=&quot;nofollow&quot;&gt;http://www.businessinsider.com/hands-on-with-adobe-acrobat-x-pro-2010-11&lt;/a&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/fullpage/post/2621035740736424879/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://developer.soliddocuments.com/2010/11/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></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=&quot;http://www.soliddocuments.com/pdf/_solidframework_7/296&quot;&gt;here&lt;/a&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/fullpage/post/2621035740736424879/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://developer.soliddocuments.com/2010/07/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></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&#39;ve released a new version of &lt;a href=&quot;http://downloads.soliddocuments.com/solidframework/solidframework.zip&quot;&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=&quot;TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 161px; CURSOR: hand&quot; id=&quot;BLOGGER_PHOTO_ID_5411962258565971346&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh69l5-pszoa5BK-H9VqEgnLx3m-8J6Yg05Zewv3y5CLl5UiId0dhvmnErhjBQb6xEGgOAUEUyION2nUO0yyviwNpsbLh1bAG8P80nfah_MoC6WLNIFXU7T5kMRYtT8NaBhazhMecn76V4/s400/Installer.png&quot; /&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&#39;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=&quot;http://downloads.soliddocuments.com/solidframework/extractframework.zip&quot;&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=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqtRwGdMxn3urB_YWOylMZmbjpUfu8ZFeVvT4d6-yC3ArQJSPzY_JlJwYY14iQFB7FufjpHM1PJgWuwnwh_GdVUAa24kzSWgkkt2576z0e-HUOduIJS2cpWqGEm621ZBI-nPOrfhtYTUM/s1600-h/ProgressTicker.png&quot;&gt;&lt;img style=&quot;TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 220px; CURSOR: hand&quot; id=&quot;BLOGGER_PHOTO_ID_5411963292719990626&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqtRwGdMxn3urB_YWOylMZmbjpUfu8ZFeVvT4d6-yC3ArQJSPzY_JlJwYY14iQFB7FufjpHM1PJgWuwnwh_GdVUAa24kzSWgkkt2576z0e-HUOduIJS2cpWqGEm621ZBI-nPOrfhtYTUM/s400/ProgressTicker.png&quot; /&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&#39;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;</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/fullpage/post/2621035740736424879/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://developer.soliddocuments.com/2009/12/solid-framework-updated-with-new.html' title='Solid Framework updated with new Installer and ProgressTicker classes.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh69l5-pszoa5BK-H9VqEgnLx3m-8J6Yg05Zewv3y5CLl5UiId0dhvmnErhjBQb6xEGgOAUEUyION2nUO0yyviwNpsbLh1bAG8P80nfah_MoC6WLNIFXU7T5kMRYtT8NaBhazhMecn76V4/s72-c/Installer.png" height="72" width="72"/><thr:total>0</thr:total></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=&quot;http://downloads.soliddocuments.com/solidframework/solidframework.zip&quot;&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=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqATwomUG1yd3U4RJd-zV-8IiGk20ogdCJ0gsfpPOCBuMlJ_NC8gdq4BOHDHsF2U4MKoVlc46qn5Nmo4AmT30BqfltDlcgaEDM_coN8TTji-HIV0mj9r8djd16NC53sVBf7z7NK1MBznI/s1600/convertersetting.png&quot;&gt;&lt;img style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 141px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqATwomUG1yd3U4RJd-zV-8IiGk20ogdCJ0gsfpPOCBuMlJ_NC8gdq4BOHDHsF2U4MKoVlc46qn5Nmo4AmT30BqfltDlcgaEDM_coN8TTji-HIV0mj9r8djd16NC53sVBf7z7NK1MBznI/s400/convertersetting.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5405989104253417954&quot; border=&quot;0&quot; /&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=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN2c-two9oGtZA_1e2cx6TEHDhlmrHoU0u8RefZovPAkYRas7hGZG9eCqdWLT2U2cLNj_JxOOF8BUOybt1sOznxZzoaZB2VP379P0Tju-y_Fj7ef3MtVvUbwMB7s0LsgD0iTJ4q4jvEfQ/s1600/recoverytype.png&quot;&gt;&lt;img style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 141px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN2c-two9oGtZA_1e2cx6TEHDhlmrHoU0u8RefZovPAkYRas7hGZG9eCqdWLT2U2cLNj_JxOOF8BUOybt1sOznxZzoaZB2VP379P0Tju-y_Fj7ef3MtVvUbwMB7s0LsgD0iTJ4q4jvEfQ/s400/recoverytype.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5405989586328798834&quot; border=&quot;0&quot; /&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.</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/fullpage/post/2621035740736424879/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://developer.soliddocuments.com/2009/11/new-solid-framework-released.html' title='New Solid Framework released'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqATwomUG1yd3U4RJd-zV-8IiGk20ogdCJ0gsfpPOCBuMlJ_NC8gdq4BOHDHsF2U4MKoVlc46qn5Nmo4AmT30BqfltDlcgaEDM_coN8TTji-HIV0mj9r8djd16NC53sVBf7z7NK1MBznI/s72-c/convertersetting.png" height="72" width="72"/><thr:total>0</thr:total></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=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSRh7uONYH6g0tKc1wYqIvYo_ZE-uNMnyX9Uj_F4LSd-Eki0mgZ0xbseciXcYzIhkrYUXlo_u6MA86evv6QiX1is9xczE5HIwaf9Kn3TfKoI_vAVV3sgyAa2dRnDswlR-2R8RIcGLw0LA/s1600-h/blog_pdf_to_images.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSRh7uONYH6g0tKc1wYqIvYo_ZE-uNMnyX9Uj_F4LSd-Eki0mgZ0xbseciXcYzIhkrYUXlo_u6MA86evv6QiX1is9xczE5HIwaf9Kn3TfKoI_vAVV3sgyAa2dRnDswlR-2R8RIcGLw0LA/s400/blog_pdf_to_images.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5377778321360393490&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;You can download the sample &lt;a href=&quot;http://downloads.soliddocuments.com/solidframework/samples/pdftoimage.zip&quot;&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=&quot;http://www.microsoft.com/express/vcsharp/Default.aspx/&quot;&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=&quot;http://developer.soliddocuments.com/2008/06/c-class-for-parsing-command-line.html&quot;&gt;C# class library&lt;/a&gt; to allow you to use the scripting functionality of &lt;a href=&quot;http://www.soliddocuments.com/products.htm?product=SolidPDFTools&quot;&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=&quot;width: 600px;font-family:&#39;courier new&#39;,courier;font-size:8pt;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Arguments CommandLine = &lt;span style=&quot;color:blue;&quot;&gt;new&lt;/span&gt; Arguments(args);‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;if&lt;/span&gt; (CommandLine[&lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;f&quot;&lt;/span&gt;] == &lt;span style=&quot;color:blue;&quot;&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=&quot;color:blue;&quot;&gt;return&lt;/span&gt; -1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pdfFile = CommandLine[&lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;f&quot;&lt;/span&gt;];‍&lt;br /&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;if&lt;/span&gt; (CommandLine[&lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;p&quot;&lt;/span&gt;] != &lt;span style=&quot;color:blue;&quot;&gt;null&lt;/span&gt;)‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;password = CommandLine[&lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;p&quot;&lt;/span&gt;];&lt;br /&gt;&lt;br&gt;‍&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;if&lt;/span&gt; (CommandLine[&lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;o&quot;&lt;/span&gt;] == &lt;span style=&quot;color:blue;&quot;&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=&quot;color:blue;&quot;&gt;return&lt;/span&gt; -2;‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;else&lt;/span&gt;‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;outputfolder = CommandLine[&lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;o&quot;&lt;/span&gt;];&lt;br /&gt;&lt;br&gt;‍&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: rgb(0, 130, 0);&quot;&gt;// Note: We &lt;span style=&quot;color: rgb(0, 130, 0);&quot;&gt;default&lt;/span&gt; to 96 dpi &lt;span style=&quot;color: rgb(0, 130, 0);&quot;&gt;if&lt;/span&gt; the parameter was not provided.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;if&lt;/span&gt; (CommandLine[&lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;d&quot;&lt;/span&gt;] != &lt;span style=&quot;color:blue;&quot;&gt;null&lt;/span&gt;)‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dpi = Convert.ToInt32(CommandLine[&lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;d&quot;&lt;/span&gt;]);&lt;br /&gt;‍&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;if&lt;/span&gt; (CommandLine[&lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;t&quot;&lt;/span&gt;] != &lt;span style=&quot;color:blue;&quot;&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=&quot;color:blue;&quot;&gt;switch&lt;/span&gt; (CommandLine[&lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;t&quot;&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=&quot;color:blue;&quot;&gt;case&lt;/span&gt; &lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;TIF&quot;&lt;/span&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;case&lt;/span&gt; &lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;TIFF&quot;&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=&quot;color:blue;&quot;&gt;break&lt;/span&gt;;‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;case&lt;/span&gt; &lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;BMP&quot;&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=&quot;color:blue;&quot;&gt;break&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;case&lt;/span&gt; &lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;JPEG&quot;&lt;/span&gt;:‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;case&lt;/span&gt; &lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;JPG&quot;&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=&quot;color:blue;&quot;&gt;break&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;case&lt;/span&gt; &lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;PNG&quot;&lt;/span&gt;:‍&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&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=&quot;color:blue;&quot;&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=&quot;color:blue;&quot;&gt;if&lt;/span&gt; (CommandLine[&lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;r&quot;&lt;/span&gt;] != &lt;span style=&quot;color:blue;&quot;&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=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;r&quot;&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 &quot;mypassword&quot; 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=&quot;;font-family:&#39;courier new&#39;,courier;font-size:9pt;&quot;  &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=&quot;width: 600px;font-family:&#39;courier new&#39;,courier;font-size:8pt;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: rgb(0, 130, 0);&quot;&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=&quot;width: 600px;font-family:&#39;courier new&#39;,courier;font-size:8pt;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: rgb(0, 130, 0);&quot;&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=&quot;color:blue;&quot;&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&#39;t, we create it:&lt;br /&gt;&lt;div   style=&quot;width: 600px;font-family:&#39;courier new&#39;,courier;font-size:8pt;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: rgb(0, 130, 0);&quot;&gt;// Setup the outputfolder&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&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=&quot;color: rgb(0, 130, 0);&quot;&gt;// Setup the file string.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&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=&quot;width: 600px;font-family:&#39;courier new&#39;,courier;font-size:8pt;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: rgb(0, 130, 0);&quot;&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=&quot;color:blue;&quot;&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=&quot;color:blue;&quot;&gt;ref&lt;/span&gt; pages, &lt;span style=&quot;color:blue;&quot;&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=&quot;width: 600px;font-family:&#39;courier new&#39;,courier;font-size:8pt;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: rgb(0, 130, 0);&quot;&gt;// Check &lt;span style=&quot;color: rgb(0, 130, 0);&quot;&gt;for&lt;/span&gt; page ranges&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;PageRange ranges = &lt;span style=&quot;color:blue;&quot;&gt;null&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;bool&lt;/span&gt; bHaveRanges = &lt;span style=&quot;color:blue;&quot;&gt;false&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;if&lt;/span&gt; (!&lt;span style=&quot;color:blue;&quot;&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=&quot;color:blue;&quot;&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=&quot;color:blue;&quot;&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=&quot;color:blue;&quot;&gt;int&lt;/span&gt;[] pageArray = ranges.ToArray();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;foreach&lt;/span&gt; (&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt; number &lt;span style=&quot;color:blue;&quot;&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=&quot;color:blue;&quot;&gt;string&lt;/span&gt;.Format(&lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;Processed page {0} of {1}&quot;&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=&quot;color:blue;&quot;&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=&quot;color: rgb(0, 130, 0);&quot;&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=&quot;color:blue;&quot;&gt;int&lt;/span&gt; pageIndex = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;foreach&lt;/span&gt; (SolidFramework.Pdf.Plumbing.PdfPage page &lt;span style=&quot;color:blue;&quot;&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=&quot;color: rgb(0, 130, 0);&quot;&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=&quot;color:blue;&quot;&gt;string&lt;/span&gt;.Format(&lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;Processed page {0} of {1}&quot;&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=&quot;width: 600px;font-family:&#39;courier new&#39;,courier;font-size:8pt;&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color:blue;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color:blue;&quot;&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=&quot;color:blue;&quot;&gt;int&lt;/span&gt; dpi, &lt;span style=&quot;color:blue;&quot;&gt;string&lt;/span&gt; filename, &lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt; pageIndex, &lt;span style=&quot;color:blue;&quot;&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=&quot;color: rgb(0, 130, 0);&quot;&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=&quot;color: rgb(0, 130, 0);&quot;&gt;// Setup the filename. &lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;string&lt;/span&gt; filepath = &lt;span style=&quot;color:blue;&quot;&gt;string&lt;/span&gt;.Format(filename + &lt;span style=&quot;color: rgb(165, 20, 16);&quot;&gt;&quot;-{0}.{1}&quot;&lt;/span&gt;, pageIndex, extension);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: rgb(0, 130, 0);&quot;&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=&quot;color:blue;&quot;&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=&quot;color: rgb(0, 130, 0);&quot;&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=&quot;color: rgb(0, 130, 0);&quot;&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=&quot;http://www.soliddocuments.com/features.htm?product=SolidFramework&quot;&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&#39;d like to share? Please &lt;a href=&quot;http://www.soliddocuments.com/contact.htm&quot;&gt;contact us&lt;/a&gt; with your feedback.</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/fullpage/post/2621035740736424879/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://developer.soliddocuments.com/2009/09/convert-pdf-pages-to-image-files.html' title='Convert PDF pages to Image files'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSRh7uONYH6g0tKc1wYqIvYo_ZE-uNMnyX9Uj_F4LSd-Eki0mgZ0xbseciXcYzIhkrYUXlo_u6MA86evv6QiX1is9xczE5HIwaf9Kn3TfKoI_vAVV3sgyAa2dRnDswlR-2R8RIcGLw0LA/s72-c/blog_pdf_to_images.png" height="72" width="72"/><thr:total>2</thr:total></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 &quot;Cannot find framework.dll&quot; 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.</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/fullpage/post/2621035740736424879/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://developer.soliddocuments.com/2009/08/working-around-framework-not-found-with.html' title='App Domain Switches and Solid Framework'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></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=&quot;http://downloads.soliddocuments.com/beta/SDK/ExtractFramework.exe&quot;&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=&quot;font-weight: bold;&quot;&gt;Example:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;ExtractFramework.exe &quot;c:\development\Solid Framework\SoldFramework.dll&quot; &quot;d:\My Files\Framework&quot;&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.</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/fullpage/post/2621035740736424879/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://developer.soliddocuments.com/2009/08/extracting-solid-framework-support.html' title='Extracting Solid Framework support files.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></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=&quot;http://www.validatepdfa.com/&quot;&gt; online PDF/A Validation&lt;/a&gt; service that uses our recently released&lt;a href=&quot;http://www.soliddocuments.com/products.htm?product=SolidFramework&quot;&gt; Solid Framework v6 SDK&lt;/a&gt; behind the scenes. Solid Framework is now available through an &lt;a href=&quot;http://www.soliddocuments.com/register_site.htm?product=SolidFramework&quot;&gt;enterprise licensing&lt;/a&gt; model. The Tools and Professional levels include &lt;a href=&quot;http://www.soliddocuments.com/features.htm?product=SolidFramework&quot;&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=&quot;http://www.soliddocuments.com/pdf/_standards_format/253/11&quot;&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=&quot;Apple-style-span&quot;  style=&quot;font-size:large;&quot;&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=&quot;http://www.pdfa.org/doku.php?id=pdfa:en:isartor_test_suite:download&quot;&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=&quot;http://www.pdf-d.org/compliance-reports.htm&quot;&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=&quot;http://www.pdfa.org/doku.php?id=pdfa:en:isartor_test_suite:download&quot;&gt;http://www.pdfa.org/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;2. Go to &lt;a href=&quot;http://www.validatepdfa.com/online.htm?step=1&quot;&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;</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/fullpage/post/2621035740736424879/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://developer.soliddocuments.com/2009/07/solid-framework-now-does-pdfa.html' title='Solid Framework now does PDF/A'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2621035740736424879.post-4078139631830214893</id><published>2008-01-15T16:19:00.001-08:00</published><updated>2016-09-14T17:30:54.034-07: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=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&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;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=&quot;http://www.soliddocuments.com/features.htm?product=SolidFramework#comparison&quot;&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;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;Add or Remove PDF Security&quot; border=&quot;0&quot; src=&quot;http://www.soliddocuments.com/images/blog_encryption.png&quot; title=&quot;Add or Remove PDF Security&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;The PdfDocument class is all you need in order to master PDF security using &lt;a href=&quot;http://www.soliddocuments.com/products.htm?product=SolidFramework&quot;&gt;Solid Framework&lt;/a&gt;. The steps involved are:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&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=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;EncryptionAlgorithm - choosing an encryption algorithm&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;OwnerPassword and UserPassword - setting new passwords&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&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=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;Save() or SaveAs() - saving the modified PDF file&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;img alt=&quot;PdfDocument and Document classes&quot; border=&quot;0&quot; src=&quot;http://www.soliddocuments.com/images/blog_pdf_document.png&quot; style=&quot;font-family: verdana;&quot; title=&quot;PdfDocument and Document classes&quot; /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 100%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&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=&quot;http://www.soliddocuments.com/framework_samples.htm?product=SolidFramework&quot;&gt;pdfcreator&lt;/a&gt; working. That will ensure that your license is working. Then we&#39;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=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;  &lt;span style=&quot;color: rgb(51 , 102 , 255);&quot;&gt;using &lt;/span&gt;SolidFramework;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;&lt;span style=&quot;color: rgb(51 , 102 , 255);&quot;&gt;using &lt;/span&gt;SolidFramework.Plumbing;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;&lt;span style=&quot;color: rgb(51 , 102 , 255);&quot;&gt;using &lt;/span&gt;SolidFramework.Pdf;&lt;br /&gt;&lt;span style=&quot;color: rgb(51 , 102 , 255);&quot;&gt;using &lt;/span&gt;SolidFramework.Pdf.Plumbing;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&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=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;&lt;span style=&quot;color: rgb(51 , 204 , 255);&quot;&gt;PdfDocument &lt;/span&gt;document = &lt;span style=&quot;color: rgb(51 , 102 , 255);&quot;&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=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;document.Path = &lt;/span&gt;&lt;span style=&quot;color: rgb(51 , 204 , 255); font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;JobSettings&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;.Default.InputPath;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;document.OwnerPassword = &quot;&lt;span style=&quot;color: rgb(153 , 51 , 0);&quot;&gt;owner&lt;/span&gt;&quot;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And then load the file.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;document.Open();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 100%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&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=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;d if you wish to use password security.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;; font-size: 85%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;; font-size: 85%;&quot;&gt;&lt;img alt=&quot;PDF encryption algorithm&quot; border=&quot;0&quot; src=&quot;http://www.soliddocuments.com/images/blog_encryption_algorithm.png&quot; title=&quot;PDF encryption algorithms&quot; /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;; font-size: 85%;&quot;&gt;RC440Bit is of legacy interest only. In the past there were performance issues and there are also &lt;a href=&quot;http://www.soliddocuments.com/export.htm&quot;&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=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;document.EncryptionAlgorithm = &lt;span style=&quot;color: rgb(51 , 204 , 255);&quot;&gt;EncryptionAlgorithm&lt;/span&gt;.RC4128Bit;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 100%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;OwnerPassword and UserPassword&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;There are two levels of access to a PDF file:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&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;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;User - the user&#39;s permissions are restricted by the owner.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;We&#39;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 = &quot;&lt;span style=&quot;color: rgb(153 , 51 , 0);&quot;&gt;newowner&lt;/span&gt;&quot;;&lt;br /&gt;document.UserPassword = &quot;&lt;span style=&quot;color: rgb(153 , 51 , 0);&quot;&gt;user&lt;/span&gt;&quot;;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 100%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Permissions&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;img alt=&quot;PDF access permissions&quot; border=&quot;0&quot; src=&quot;http://www.soliddocuments.com/images/blog_access_permissions.png&quot; style=&quot;font-family: verdana;&quot; title=&quot;PDF access permissions&quot; /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;These values can be or&#39;d to give any combination of permissions to your users like this:&lt;/span&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;&lt;br /&gt;document.Permissions = &lt;/span&gt;&lt;span style=&quot;color: rgb(51 , 204 , 255); font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;AccessPermissions&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;.Printing | &lt;/span&gt;&lt;span style=&quot;color: rgb(51 , 204 , 255); font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;AccessPermissions&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;.AccessForDisabilities;&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;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 100%; font-weight: bold;&quot;&gt;Save or SaveAs&lt;/span&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;/span&gt;&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;document.OverwriteMode = &lt;/span&gt;&lt;span style=&quot;color: rgb(51 , 204 , 255); font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;OverwriteMode&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;.ForceOverwrite;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;document.SaveAs(&lt;/span&gt;&lt;span style=&quot;color: rgb(51 , 204 , 255); font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;JobSettings&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;.Default.OutputPath);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: verdana; font-size: 100%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Complete Sample Snippet&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: courier new; font-size: 85%;&quot;&gt;&lt;span style=&quot;color: rgb(0 , 153 , 0);&quot;&gt;// create&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: courier new; font-size: 85%;&quot;&gt;&lt;span style=&quot;color: rgb(51 , 204 , 255);&quot;&gt;PdfDocument &lt;/span&gt;document = &lt;span style=&quot;color: rgb(51 , 102 , 255);&quot;&gt;new &lt;/span&gt;PdfDocument();&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0 , 153 , 0);&quot;&gt;// set&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: courier new; font-size: 85%;&quot;&gt;document.Path = &lt;span style=&quot;color: rgb(51 , 204 , 255);&quot;&gt;JobSettings&lt;/span&gt;.Default.InputPath;&lt;br /&gt;document.OwnerPassword = &quot;&lt;span style=&quot;color: rgb(153 , 51 , 0);&quot;&gt;owner&lt;/span&gt;&quot;;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0 , 153 , 0);&quot;&gt;// call&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: courier new; font-size: 85%;&quot;&gt;document.Open();&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0 , 153 , 0);&quot;&gt;// set&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: courier new; font-size: 85%;&quot;&gt;document.EncryptionAlgorithm = &lt;span style=&quot;color: rgb(51 , 204 , 255);&quot;&gt;EncryptionAlgorithm&lt;/span&gt;.RC4128Bit;&lt;/span&gt;&lt;span style=&quot;font-family: courier new; font-size: 85%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: courier new; font-size: 85%;&quot;&gt;document.OwnerPassword = &quot;&lt;span style=&quot;color: rgb(153 , 51 , 0);&quot;&gt;newowner&lt;/span&gt;&quot;;&lt;br /&gt;document.UserPassword = &quot;&lt;span style=&quot;color: rgb(153 , 51 , 0);&quot;&gt;user&lt;/span&gt;&quot;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: courier new; font-size: 85%;&quot;&gt;document.Permissions = &lt;span style=&quot;color: rgb(51 , 204 , 255);&quot;&gt;AccessPermissions&lt;/span&gt;.Printing | &lt;span style=&quot;color: rgb(51 , 204 , 255);&quot;&gt;AccessPermissions&lt;/span&gt;.AccessForDisabilities;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: courier new; font-size: 85%;&quot;&gt;document.OverwriteMode = &lt;span style=&quot;color: rgb(51 , 204 , 255);&quot;&gt;OverwriteMode&lt;/span&gt;.ForceOverwrite;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0 , 153 , 0);&quot;&gt;// call&lt;/span&gt;&lt;br /&gt;document.SaveAs(&lt;span style=&quot;color: rgb(51 , 204 , 255);&quot;&gt;JobSettings&lt;/span&gt;.Default.OutputPath);&lt;/span&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/fullpage/post/2621035740736424879/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://developer.soliddocuments.com/2008/01/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></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=&quot;;font-family:verdana;font-size:130%;&quot;  &gt;ShellPrintProvider vs WordPrintProvider&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;The starting point for many developers using &lt;a href=&quot;http://www.soliddocuments.com/products.htm?product=SolidFramework&quot;&gt;Solid Framework&lt;/a&gt; is the simple &lt;a href=&quot;http://www.soliddocuments.com/framework_samples.htm?product=SolidFramework&quot;&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=&quot;;font-family:Verdana;font-size:85%;&quot;  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;strong&gt;ShellPrintProvider&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&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=&quot;ShellPrintProvider sample code&quot; alt=&quot;ShellPrintProvider sample code&quot; src=&quot;http://www.soliddocuments.com/images/blog_wordprintprovider_pdfcreator.png&quot; border=&quot;0&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &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=&quot;http://www.soliddocuments.com/download.htm?product=SolidPDFCreator&quot;&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=&quot;;font-family:verdana;font-size:85%;&quot;  &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=&quot;;font-family:verdana;font-size:85%;&quot;  &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=&quot;font-size:100%;&quot;&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=&quot;Document Properties in Word&quot; alt=&quot;Document Properties in Word&quot; src=&quot;http://www.soliddocuments.com/images/blog_wordprintprovider_acrobat.png&quot; border=&quot;0&quot; /&gt; &lt;p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;Now make two simple changes to the original &lt;a href=&quot;http://www.soliddocuments.com/framework_samples.htm?product=SolidFramework&quot;&gt;pdfcreator&lt;/a&gt; sample:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;replace the two instances of &lt;span style=&quot;font-family:courier new;&quot;&gt;ShellPrintProvider&lt;/span&gt; with &lt;span style=&quot;font-family:courier new;&quot;&gt;WordPrintProvider&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;add &lt;span style=&quot;font-family:courier new;&quot;&gt;printer.PreserveProperties = true;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img title=&quot;WordPrintProvider sample code&quot; alt=&quot;WordPrintProvider sample code&quot; src=&quot;http://www.soliddocuments.com/images/blog_wordprintprovider_wordprintprovider.png&quot; border=&quot;0&quot; /&gt; &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;;font-family:verdana;font-size:85%;&quot;  &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=&quot;Document Properties in PDF&quot; alt=&quot;Document Properties in PDF&quot; src=&quot;http://www.soliddocuments.com/images/blog_wordprintprovider_word.png&quot; border=&quot;0&quot; /&gt;&lt;/p&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/fullpage/post/2621035740736424879/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://developer.soliddocuments.com/2007/12/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></entry></feed>