<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Delphi for delphier</title>
	<atom:link href="http://ekoindri.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ekoindri.wordpress.com</link>
	<description>Kalau anda merasa menjadi seorang delphier, maka silahkan anda masuk blog yang satu ini. Rugi dech kalau tidak mampir...</description>
	<lastBuildDate>Fri, 26 Sep 2008 18:29:13 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>id</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='ekoindri.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/2650ac06e53e0eb832f367ac51c48cb5?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Delphi for delphier</title>
		<link>http://ekoindri.wordpress.com</link>
	</image>
			<item>
		<title>Embarcadero Announces High-Performance InterBase® SMP 2009 Database for Embedded and Enterprise Applications</title>
		<link>http://ekoindri.wordpress.com/2008/09/27/embarcadero-announces-high-performance-interbase%c2%ae-smp-2009-database-for-embedded-and-enterprise-applications/</link>
		<comments>http://ekoindri.wordpress.com/2008/09/27/embarcadero-announces-high-performance-interbase%c2%ae-smp-2009-database-for-embedded-and-enterprise-applications/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 18:29:13 +0000</pubDate>
		<dc:creator>ekoindri</dc:creator>
				<category><![CDATA[Umum]]></category>

		<guid isPermaLink="false">http://ekoindri.wordpress.com/?p=2262</guid>
		<description><![CDATA[Embarcadero Announces High-Performance InterBase® SMP  2009 Database for Embedded and Enterprise Applications 

Abstract:New security, portability, performance and  uptime capabilities 

//&#60;![CDATA[
Sys.WebForms.PageRequestManager._initialize('ctl31', document.getElementById('ctl26'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls([], [], [], 90);
//]]&#62;
 Media Contact:     FOR IMMEDIATE RELEASE
Rebecca Scanlan
Chase Communications
303-733-0328
rebecca@chasecomm.net
Embarcadero AnnouncesHigh-Performance InterBase® SMP 2009 Database for Embedded  and Enterprise Applications
New  security, portability, performance and uptime capabilities
SAN [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ekoindri.wordpress.com&blog=468693&post=2262&subd=ekoindri&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="title3"><span style="font-family:Arial;">Embarcadero Announces High-Performance InterBase® SMP  2009 Database for Embedded and Enterprise Applications </span></p>
<blockquote class="abstract">
<div><span style="font-family:Arial;"><strong>Abstract:</strong>New security, portability, performance and  uptime capabilities </span></div>
</blockquote>
<p>//&lt;![CDATA[<br />
Sys.WebForms.PageRequestManager._initialize('ctl31', document.getElementById('ctl26'));<br />
Sys.WebForms.PageRequestManager.getInstance()._updateControls([], [], [], 90);<br />
//]]&gt;<br />
 <span><span style="font-family:Arial;"><strong>Media Contact:</strong><strong> </strong><strong> </strong><strong> </strong><strong> </strong><strong> FOR IMMEDIATE RELEASE</strong></span></p>
<p><span style="font-family:Arial;">Rebecca Scanlan</span></p>
<p><span style="font-family:Arial;">Chase Communications</span></p>
<p><span style="font-family:Arial;">303-733-0328</span></p>
<p><a href="mailto:rebecca@chasecomm.net"><span style="text-decoration:underline;"><span style="font-family:Arial;">rebecca@chasecomm.net</span></span></a></p>
<p align="center"><span style="font-family:Arial;"><strong>Embarcadero</strong><strong> Announces</strong><strong>High-Performance </strong><strong>InterBase</strong><strong>®</strong><strong> SMP 2009 Database for Embedded  and Enterprise Applications</strong></span></p>
<p align="center"><em><span style="font-family:Arial;">New  security, portability, performance and uptime capabilities</span></em></p>
<p><span style="font-family:Arial;"><span style="font-weight:bold;">SAN  FRANCISCO – Sept. 8</span><span style="font-weight:bold;">,  2008 </span>— Embarcadero Technologies today announced the worldwide  availability of InterBase SMP 2009, the newest version of its fast,  feature-rich, SQL database for embedded and small-to-medium enterprise  applications. The new InterBase SMP 2009 relational database from Embarcadero’s  CodeGear™ product line provides extra levels of data security, portability,  performance, and uptime to VARs, ISVs, OEMs and enterprise businesses. </span></p>
<p><span style="font-family:Arial;">New  security features include bolstered column- and database-level encryption, Over  The Wire (OTW) encryption and support for the Advanced Encryption Standard  (AES), which provides comprehensive data security. Additionally, InterBase now  has built-in support for symmetric multiprocessing (SMP), making it one of the  fastest native databases available. A new ToGo Edition of the database features  a small footprint (less than 3MB) to give ISVs and OEMs the flexibility to ship  an embedded and highly reliable SQL-compliant transactional database.</span></p>
<p><span style="font-family:Arial;">“For  more than ten years, we have shipped applications based on InterBase to a wide  variety of customers,” said Craig Stuntz, Senior Developer, Vertex Systems Inc.  “Its minimal configuration and maintenance requirements, combined with  real-world experience, give us confidence that it will continue to perform well  without the need for care and feeding by a dedicated IT staff. Larger customers,  on the other hand, appreciate the SMP support, incremental backup, and  journaling features. Performance monitoring allows us to diagnose issues in the  field. And its affordable price helps us to remain competitive in our  market.”</span></p>
<p><span style="font-family:Arial;">InterBase is an industrial-strength RDBMS that uniquely  delivers high performance and rich features in a lightweight footprint designed  to operate with minimal to zero administration. It has been shipping for more  than two decades and today powers millions of applications globally. InterBase  is most frequently used by developers for building packaged software that need  silent installs for embedded and bundled database redistribution, and by  small-to-medium-sized enterprises that need a powerful solution with minimal  RDBMS support requirements.</span></p>
<p><span style="font-family:Arial;">&#8220;With InterBase SMP 2009, we are introducing high-end  RDBMS features such as SMP scalability, high availability, AES encryption and  OTW security for both embedded and server applications at a highly affordable  price point,&#8221; said Michael Swindell, Embarcadero Technologies’ Vice President of  Products. &#8220;In addition, InterBase can now also be paired with PowerSQL™, our  powerful new SQL IDE designed to speed SQL development while reducing errors, as  well as with ER/Studio®, which provides a complete data modeling environment for  analyzing, designing, creating, and maintaining database architecture.” </span></p>
<p><span style="font-family:Arial;">Additional product features and benefits  include:</span></p>
<ul>
<li><span style="font-family:Arial;"><strong>High  performance and scalability:</strong>InterBase SMP 2009 now incorporates native  support for SMP at no additional cost. With this addition, developers can take  advantage of today’s multi-core architectures and scale applications  transparently across multiple CPUs. </span></li>
</ul>
<ul>
<li><span style="font-family:Arial;"><strong>Near</strong><strong>-</strong><strong> zero maintenance:</strong>By  combining simple installation and automatic crash recovery, along with a  self-tuning, self-maintaining engine, InterBase SMP 2009 is very well suited for  the embedded market. </span></li>
</ul>
<ul>
<li><span style="font-family:Arial;"><strong>High  availability: </strong>InterBase SMP 2009 offers increased availability through  log-based journaling for short-term recovery, and journal archiving for  long-term recovery, in the event of hardware system failures. Online Dump of  database files and Point-in-Time Recovery from archives help minimize downtime  should a disaster occur. </span></li>
</ul>
<p><span style="font-family:Arial;">For  a full list of features, please visit </span><a href="http://www.codegear.com/products/interbase"><span style="font-family:Arial;">http://www.codegear.com/products/interbase</span></a></p>
<p><strong><span style="font-family:Arial;">Availability and Pricing</span></strong></p>
<p><span style="font-family:Arial;">InterBase SMP 2009 Developer, Desktop and Server  Editions are available today worldwide through Embarcadero or one of its global  partners. The ToGo Edition is currently scheduled to be available in October  2008. </span></p>
<p><span style="font-family:Arial;">InterBase SMP Developer Edition comes free of charge as  a bundle with CodeGear IDEs.  A free 90-day trial version is also available for  anyone to download at </span><a href="http://cc.codegear.com/free/interbase"><span style="font-family:Arial;">http://cc.codegear.com/free/interbase</span></a><span style="font-family:Arial;">. Pricing for InterBase SMP Server  Edition (for Microsoft® Windows®, Linux, Solaris™, and Mac® OS X) starts at $200  (USD), while the Desktop and ToGo Editions (for Microsoft Windows) start at $60  (USD). Upgrade pricing is also available.</span></p>
<p><strong><span style="font-family:Arial;">About Embarcadero Technologies </span></strong></p>
<p><span style="font-family:Arial;">Embarcadero Technologies, Inc. empowers application  developers and database professionals with tools to design, build and run  software applications in the environment they choose. A community of more than  three million worldwide and 90 of the Fortune 100 rely on Embarcadero’s  CodeGear™ and DatabaseGear™ product lines to increase productivity, openly  collaborate and be free to innovate. Founded in 1993, Embarcadero is  headquartered in San Francisco, with offices located around the globe.  Embarcadero is online at www.embarcadero.com.</span></p>
<p align="center"><span style="font-family:Arial;">###</span></p>
<p><span style="font-family:Arial;">Embarcadero, the Embarcadero Technologies logos and all  other Embarcadero Technologies product or service names are trademarks or  registered trademarks of Embarcadero Technologies, Inc. All other trademarks are  property of their respective owners.</span></p>
<p></span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ekoindri.wordpress.com/2262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ekoindri.wordpress.com/2262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ekoindri.wordpress.com/2262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ekoindri.wordpress.com/2262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ekoindri.wordpress.com/2262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ekoindri.wordpress.com/2262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ekoindri.wordpress.com/2262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ekoindri.wordpress.com/2262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ekoindri.wordpress.com/2262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ekoindri.wordpress.com/2262/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ekoindri.wordpress.com&blog=468693&post=2262&subd=ekoindri&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ekoindri.wordpress.com/2008/09/27/embarcadero-announces-high-performance-interbase%c2%ae-smp-2009-database-for-embedded-and-enterprise-applications/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/67499c8391b48201b9ee3b0aa948b5cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ekoindri</media:title>
		</media:content>
	</item>
		<item>
		<title>RAD Studio 2009 12.0.3170.16989</title>
		<link>http://ekoindri.wordpress.com/2008/09/26/rad-studio-2009-120317016989/</link>
		<comments>http://ekoindri.wordpress.com/2008/09/26/rad-studio-2009-120317016989/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 13:55:25 +0000</pubDate>
		<dc:creator>ekoindri</dc:creator>
				<category><![CDATA[Umum]]></category>

		<guid isPermaLink="false">http://ekoindri.wordpress.com/?p=2202</guid>
		<description><![CDATA[





Bagian 01



Bagian 02



Bagian 03



Bagian 04



Bagian 05



Bagian 06



Bagian 07



Bagian 08



Bagian 09



Bagian 10



Bagian 11



Bagian 12



Bagian 13



Bagian 14



Bagian 15



Bagian 16



Bagian 17



Bagian 18



Bagian 19



Bagian 20





       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ekoindri.wordpress.com&blog=468693&post=2202&subd=ekoindri&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img style="width:150px;height:30px;" src="http://www.mssqltips.com/images/spacer.gif" border="0" alt="" width="5" height="30" align="absmiddle" /><img style="width:326px;height:30px;" src="http://www.mssqltips.com/images/spacer.gif" border="0" alt="" width="5" height="30" align="left" /></p>
<pre class="alt2" style="border:1px inset;overflow:auto;width:105px;height:196px;text-align:left;margin:0;padding:6px;">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<a href="../download/">Bagian 01</a></td>
</tr>
<tr>
<td>
<a href="../download-2/">Bagian 02</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-3/">Bagian 03</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-4/">Bagian 04</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-5/">Bagian 05</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-6/">Bagian 06</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-7/">Bagian 07</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-8/">Bagian 08</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-9/">Bagian 09</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-10/">Bagian 10</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-11/">Bagian 11</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-12/">Bagian 12</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-13/">Bagian 13</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-14/">Bagian 14</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-15/">Bagian 15</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-16/">Bagian 16</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-17/">Bagian 17</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-18/">Bagian 18</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-19/">Bagian 19</a></td>
</tr>
<tr>
<td style="height:19px;">
<a href="../download-20/">Bagian 20</a></td>
</tr>
</tbody>
</table>
</pre>
<div id="docsection2" class="section"><img style="width:158px;height:30px;" src="http://www.mssqltips.com/images/spacer.gif" border="0" alt="" width="5" height="30" align="left" /></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ekoindri.wordpress.com/2202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ekoindri.wordpress.com/2202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ekoindri.wordpress.com/2202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ekoindri.wordpress.com/2202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ekoindri.wordpress.com/2202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ekoindri.wordpress.com/2202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ekoindri.wordpress.com/2202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ekoindri.wordpress.com/2202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ekoindri.wordpress.com/2202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ekoindri.wordpress.com/2202/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ekoindri.wordpress.com&blog=468693&post=2202&subd=ekoindri&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ekoindri.wordpress.com/2008/09/26/rad-studio-2009-120317016989/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/67499c8391b48201b9ee3b0aa948b5cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ekoindri</media:title>
		</media:content>

		<media:content url="http://www.mssqltips.com/images/spacer.gif" medium="image" />

		<media:content url="http://www.mssqltips.com/images/spacer.gif" medium="image" />

		<media:content url="http://www.mssqltips.com/images/spacer.gif" medium="image" />
	</item>
		<item>
		<title>What&#8217;s New in the VCL in Delphi and C++Builder 2009</title>
		<link>http://ekoindri.wordpress.com/2008/09/26/whats-new-in-the-vcl-in-delphi-and-cbuilder-2009/</link>
		<comments>http://ekoindri.wordpress.com/2008/09/26/whats-new-in-the-vcl-in-delphi-and-cbuilder-2009/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 13:26:19 +0000</pubDate>
		<dc:creator>ekoindri</dc:creator>
				<category><![CDATA[Umum]]></category>

		<guid isPermaLink="false">http://ekoindri.wordpress.com/?p=2199</guid>
		<description><![CDATA[By: Tim  DelChiaro

Abstract: See new components, new Vista support  and upgrades to existing components to help you build rich and elegant UIs that  simplify application use and reduce end-user learning  curves






Hosted by David I
Hello and thanks for joining us for the Delphi and  C++Builder 2009 video series. You’re now among [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ekoindri.wordpress.com&blog=468693&post=2199&subd=ekoindri&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><span style="font-family:Calibri;">By: </span><a href="http://gp.codegear.com/authors/edit/2993.aspx"><span style="font-family:Calibri;">Tim  DelChiaro</span></a></p>
<blockquote class="abstract">
<div><span style="font-family:Calibri;"><strong>Abstract:</strong> See new components, new Vista support  and upgrades to existing components to help you build rich and elegant UIs that  simplify application use and reduce end-user learning  curves</span></div>
</blockquote>
<p><span><span style="font-family:Calibri;"><img src="http://dn.codegear.com/article/images/38383/03000001.png" border="0" alt="" /></span></p>
<table style="margin-left:0;border-collapse:collapse;" border="0" cellspacing="0">
<tbody>
<tr>
<td style="border:0 none windowtext;width:149.4pt;padding:0 5.4pt;"><span style="font-family:Calibri;"><img title="davidi2" src="http://dn.codegear.com/article/images/38383/03000002.png" border="0" alt="davidi2" /></span></p>
<p><span style="font-family:Calibri;">Hosted by David I</span></td>
<td style="border:0 none windowtext;width:270pt;padding:0 5.4pt;"><span style="font-family:Calibri;">Hello and thanks for joining us for the Delphi and  C++Builder 2009 video series. You’re now among the first to see what’s new in  Delphi 2009 and C++Builder 2009. </span></p>
<p><span style="font-family:Calibri;">New videos will be added each week so be sure to sign up  at the bottom of the page for reminders when we post new videos and to be  notified when Delphi and C++Builder 2009 trial editions are available for  download.</span></td>
</tr>
<tr>
<td style="border:medium none;width:149.4pt;margin:0;padding:0;"></td>
<td style="border:medium none;width:270pt;margin:0;padding:0;"></td>
</tr>
</tbody>
</table>
<h3><span style="font-family:Calibri;">This week’s video:</span></h3>
<div id="docsection2" class="section">
<table style="margin-left:0;border-collapse:collapse;" border="0" cellspacing="0">
<tbody>
<tr>
<td style="border:0 none windowtext;width:212.4pt;padding:0 5.4pt;"><a href="hideShowImage('docimageheader3', 'docimage3')"><span style="font-family:Calibri;"><span class="imagehide">Hide  image</span><br />
</span></a><a href="http://video.codegear.com/Tiburon/WhatsNewInTheVCL_English/WhatsNewInTheVCL_English.html"><span style="font-family:Calibri;"><img title="delphiplay1" src="http://dn.codegear.com/article/images/38383/03000003.png" border="0" alt="delphiplay1" /></span></a></td>
<td style="border:0 none windowtext;width:207pt;padding:0 5.4pt;"><a name="2WhatsnewintheVCLforDelphiandCBuilder"></a></p>
<h2><span class="toclink sectiongutter"><a href="http://dn.codegear.com/article/38383#38383_tocentry2"><span style="font-family:Calibri;"> </span></a></span><span class="sectioncollapse sectiongutter" title="Collapse section"><a href="hideShowElement('docsectionheader1', 'docsection1')"><span style="font-family:Calibri;"> </span></a></span><span style="font-family:Calibri;">What’s new in the VCL for  Delphi and C++Builder 2009</span></h2>
<div id="docsection1" class="section">
<p><span style="font-family:Calibri;">See new components, new Vista support and upgrades to  existing components to help you build rich and elegant UIs that simplify  application use and reduce end-user learning curves.</span></p>
<p><strong><span style="font-family:Calibri;">View the Video</span></strong></p>
<p><a href="http://video.codegear.com/Tiburon/WhatsNewInTheVCL_English/WhatsNewInTheVCL_English.html"><span style="font-family:Calibri;">English</span></a><span style="font-family:Calibri;">, </span><a href="http://video.codegear.com/Tiburon/WhatsNewInTheVCL_Spanish/WhatsNewInTheVCL_Spanish.html"><span style="font-family:Calibri;">Spanish</span></a><span style="font-family:Calibri;">, </span><a href="http://video.codegear.com/Tiburon/WhatsNewInTheVCL_Portuguese/WhatsNewInTheVCL_Portuguese.html"><span style="font-family:Calibri;">Portuguese</span></a><span style="font-family:Calibri;">, </span><a href="http://video.codegear.com/Tiburon/WhatsNewInTheVCL_Japanese/newvcl_ja.html"><span style="font-family:Calibri;">Japanese</span></a></p>
<p><strong><span style="font-family:Calibri;">Download the Video</span></strong></p>
<p><span><a href="http://video.codegear.com/Tiburon/WhatsNewInTheVCL_English.zip"><span style="font-family:Calibri;">English</span></a><span style="font-family:Calibri;">, </span><a href="http://video.codegear.com/Tiburon/WhatsNewInTheVCL_Spanish.zip"><span style="font-family:Calibri;">Spanish</span></a><span style="font-family:Calibri;">, </span><a href="http://video.codegear.com/Tiburon/WhatsNewInTheVCL_Portuguese.zip"><span style="font-family:Calibri;">Portuguese</span></a><span style="font-family:Calibri;">, </span><a href="http://video.codegear.com/Tiburon/WhatsNewInTheVCL_Japanese.zip"><span style="font-family:Calibri;">Japanese</span></a></p>
<p></span></div>
</td>
</tr>
</tbody>
</table>
</div>
<p></span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ekoindri.wordpress.com/2199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ekoindri.wordpress.com/2199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ekoindri.wordpress.com/2199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ekoindri.wordpress.com/2199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ekoindri.wordpress.com/2199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ekoindri.wordpress.com/2199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ekoindri.wordpress.com/2199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ekoindri.wordpress.com/2199/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ekoindri.wordpress.com/2199/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ekoindri.wordpress.com/2199/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ekoindri.wordpress.com&blog=468693&post=2199&subd=ekoindri&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ekoindri.wordpress.com/2008/09/26/whats-new-in-the-vcl-in-delphi-and-cbuilder-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/67499c8391b48201b9ee3b0aa948b5cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ekoindri</media:title>
		</media:content>

		<media:content url="http://dn.codegear.com/article/images/38383/03000001.png" medium="image" />

		<media:content url="http://dn.codegear.com/article/images/38383/03000002.png" medium="image">
			<media:title type="html">davidi2</media:title>
		</media:content>

		<media:content url="http://dn.codegear.com/article/images/38383/03000003.png" medium="image">
			<media:title type="html">delphiplay1</media:title>
		</media:content>
	</item>
		<item>
		<title>PDF Processing with Gnostice PDFtoolkit &#8211; Part 1</title>
		<link>http://ekoindri.wordpress.com/2008/09/26/pdf-processing-with-gnostice-pdftoolkit-part-1/</link>
		<comments>http://ekoindri.wordpress.com/2008/09/26/pdf-processing-with-gnostice-pdftoolkit-part-1/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 18:54:09 +0000</pubDate>
		<dc:creator>ekoindri</dc:creator>
				<category><![CDATA[Umum]]></category>

		<guid isPermaLink="false">http://ekoindri.wordpress.com/?p=2155</guid>
		<description><![CDATA[By: Girish Patil

Abstract:In the first part of this article, we will see  what Gnostice PDFtoolkit VCL can do for you. We will be using code examples to  illustrate the ease with which PDFtoolkit will help you accomplish your  PDF-related tasks. 


Why  PDF?

PDF  is best known for its ability to retain [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ekoindri.wordpress.com&blog=468693&post=2155&subd=ekoindri&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><span style="font-family:Calibri;">By: </span><a href="http://gp.codegear.com/authors/edit/7308.aspx"><span style="font-family:Calibri;">Girish Patil</span></a></p>
<blockquote class="abstract">
<div><span style="font-family:Calibri;"><strong>Abstract:</strong>In the first part of this article, we will see  what Gnostice PDFtoolkit VCL can do for you. We will be using code examples to  illustrate the ease with which PDFtoolkit will help you accomplish your  PDF-related tasks. </span></div>
</blockquote>
<p><span></p>
<h1><span style="font-family:Calibri;">Why  PDF?</span></h1>
<div id="docsection1" class="section">
<p><span style="font-family:Calibri;">PDF  is best known for its ability to retain high fidelity on all platforms. It is  also a final form document format in that people do not expect PDF documents to  undergo further change. That is why PDF is a popular choice for making invoices  and user manuals, and also for transmitting documents over the Internet. PDF is  also liked for its features such as font embedding, bookmarks, thumbnails,  attachments, watermarks, annotations, encryption, and digital signatures. Last  but not the least, PDF is an open format.</span></p>
<p><span style="font-family:Calibri;">For  these reasons, PDF has become a part of our technology-oriented lives. From  e-books to web forms to sophisticated workflow transports, PDF has seen  applications in innumerable ways.</span></p>
<p><span style="font-family:Calibri;">Although the format supports a lot of features, most  applications that produce PDF documents make use of only a few features.  Usually, it is just text and images. At other times, we may have just text and  form fields. PDF users often require more value, such as encryption,  compression, bookmarks, stamps, or watermarks. In a workflow-like environment,  the demands to cut, chop, and mince PDF documents are even more.</span></p>
<p><span style="font-family:Calibri;">To  meet this need, there is a flourishing market for PDF processors. In this arena,  Gnostice PDFtoolkit has long established its name as a leader.</span></div>
<h1><span style="font-family:Calibri;">Gnostice PDFtoolkit VCL</span></h1>
<div id="docsection2" class="section">
<p><span style="font-family:Calibri;">PDFtoolkit works with existing PDF documents. PDFtoolkit  helps in </span></p>
<ul>
<li><span style="font-family:Calibri;">Manipulation</span></li>
<li><span style="font-family:Calibri;">Content Extraction (text and images)</span></li>
<li><span style="font-family:Calibri;">Transformation (merging and splitting)</span></li>
<li><span style="font-family:Calibri;">Enhancement (adding bookmarks, hyperlinks, comments,  stamps and watermarks; encryption; compression)</span></li>
<li><span style="font-family:Calibri;">Forms Processing (adding/editing/deleting/flattening  form fields)</span></li>
<li><span style="font-family:Calibri;">Viewing and Printing (visual components)</span></li>
<li><span style="font-family:Calibri;">Text  Search (visual component)</span></li>
</ul>
<p><span style="font-family:Calibri;">Reading a PDF document is straightforward, as shown in  the code snippet below. Create a TgtPDFDocument object, load a document, and we  are ready to roll.</span></p>
<pre class="sourcecode"><span style="font-family:Calibri;">...   <code class="comment">// Create a PDF document object</code>  gtPDFDocument1 := TgtPDFDocument.Create(<code class="keyword">Nil</code>);  <code class="keyword">try</code><code class="comment">// Load a document</code>    gtPDFDocument1.LoadFromFile(<code class="quote">'sample_doc.pdf'</code>);     <code class="comment">// Check if the document is loaded</code><code class="keyword">if</code> gtPDFDocument1.IsLoaded <code class="keyword">then</code><code class="comment">// Display page number</code>     Writeln(<code class="quote">'Number of pages: '</code>+ IntToStr(gtPDFDocument1.PageCount)); ...            </span></pre>
<h2><span style="font-family:Calibri;">I.  Manipulation of PDF Documents</span></h2>
<div id="docsection4" class="section">
<p><span style="font-family:Calibri;">After a PDF document has been loaded, document contents  and their properties can be read and modified using the properties and methods  of TgtPDFDocument object.</span></p>
<p><span style="font-family:Calibri;">In  the next code snippet, we first specify the measurement unit that will be used  when rendering elements on a PDF page. Next, a HTML-formatted string is written  on the last page. The number of the last page is obtained from the property  TgtPDFDocument.PageCount().</span></p>
<pre class="sourcecode"><span style="font-family:Calibri;">...     <code class="comment">// Set document measurement units to pixels</code>gtPDFDocument1.MeasurementUnit := muPixels;     <code class="comment">// Write formatted text at the center of the last page</code>gtPDFDocument1.TextOut(      <code class="quote">'&lt;i&gt;Hello, &lt;b&gt;World!&lt;/b&gt;&lt;/i&gt;'</code>,         <code class="comment">// HTML-formatted string</code>      IntToStr(gtPDFDocument1.PageCount),    <code class="comment">// Page range</code>      gtPDFDocument1.                        <code class="comment">// X-coordinate</code>GetPageSize(gtPDFDocument1.PageCount, muPixels).Width/2,      gtPDFDocument1.                        <code class="comment">// Y-coordinate</code>GetPagesize(gtPDFDocument1.PageCount, muPixels).Height/2);     <code class="comment">// Save the modified document</code>    gtPDFDocument1.SaveToFile(<code class="quote">'modified_doc.pdf'</code>); ...             </span></pre>
<p><span style="font-family:Calibri;">The  formatted string is written at the center of the last page. To obtain the  location of the center of the page, we first call  TgtPDFDocument.GetPageSize().</span></p>
<pre class="sourcecode"><span style="font-family:Calibri;"><code class="keyword">function</code>GetPageSize(PageNo: Integer; MMUnit: TgtMeasurementUnit): TgtPageSize; TgtMeasurementUnit = (muPixels, muPoints, muInches, muMM, muTwips); TgtPageSize = <code class="keyword">record</code>Width,  Height: Double;<code class="keyword">end</code>;             </span></pre>
<p><span style="font-family:Calibri;">This  method returns a TgtPageSize record, whose fields TgtPageSize.Width and  TgtPageSize.Height provide the dimensions of the specified page. From this  information, it is easy to calculate the location of the center of the  page.</span></p>
<p><span style="font-family:Calibri;">As  you can see, PDFtoolkit provides an elegant interface that hides the  complexities imposed by the format specification.</span></div>
<h2><span style="font-family:Calibri;">II.  Content Extraction from PDF Documents</span></h2>
<div id="docsection5" class="section">
<p><span style="font-family:Calibri;">The  TgtPDFDocument.GetPageElements() is another example of a very capable PDFtoolkit  method.</span></p>
<pre class="sourcecode"><span style="font-family:Calibri;"><code class="keyword">function</code>GetPageElements(APageNo: Integer; ElementTypes: TgtElementTypes; MMUnit: TgtMeasurementUnit): TgtPDFPageElementList; TgtPDFElementType=(etText, etImage, etPath, etFormField);             </span></pre>
<p><span style="font-family:Calibri;">This  method returns a list of PDF page elements from a specified page. If the page  element returned by the method is a text element, then its properties expose  details such as location, font, and color. If it were an image, then you can get  hold of its coordinates, scaling factor, and the actual image in the form of a  TGraphic object. That’s the level of control you get with PDFtoolkit.</span></p>
<p><span style="font-family:Calibri;">PDFtoolkit offers more than one way of doing the same  thing, each one more useful in a special situation. The  TgtPDFDocument.SearchAll() method can perform a variety of text searches for a  given search string.</span></p>
<pre class="sourcecode"><span style="font-family:Calibri;"><code class="keyword">Function</code>SearchAll(    <code class="keyword">Const</code> SearchText: <code class="keyword">String</code>; AOptions: TgtSearchTypes; SearchList: TStringList):Integer; TgtPDFSearchTypes = (stCaseSensitive, stWholeWord, stNone);             </span></pre>
<p><span style="font-family:Calibri;">You  can also extract all text in one go.</span></p>
<pre class="sourcecode"><span style="font-family:Calibri;"><code class="comment">// Returns a list of text extracted from a specified page</code><code class="keyword">function</code> ExtractText(APageNo: Integer): TStringList;<code class="comment">// Returns formatted text extracted from a specified page</code><code class="keyword">function</code>ExtractTextFormatted(APageNo: Integer): TStringList;              </span></pre>
<p align="center"><span style="font-family:Calibri;"><img title="Click to see full-sized image" src="http://dn.codegear.com/article/images/38725/thumb03000003.png" border="0" alt="Click to see full-sized image" /></span></p>
<p align="center"><span style="font-family:Calibri;"><img title="2008_08_pdt_extracted_text" src="http://dn.codegear.com/article/images/38725/03000004.png" border="0" alt="2008_08_pdt_extracted_text" /></span></p>
</div>
<h2><span style="font-family:Calibri;">III.  Document Transformation</span></h2>
<div id="docsection6" class="section">
<p><span style="font-family:Calibri;">PDFtoolkit makes merging and splitting files a breeze.  Here is a code snippet that shows how to merge several documents into  one.</span></p>
<pre class="sourcecode"><span style="font-family:Calibri;">... <code class="keyword">var</code>gtPDFDocument1: TgtPDFDocument;    StringList1: TStringList;<code class="keyword">begin</code><code class="comment">// Create a document object</code>  gtPDFDocument1 := TgtPDFDocument.Create(<code class="keyword">Nil</code>);  <code class="comment">// Load a list with names of the</code><code class="comment">// documents that need to be merged</code>StringList1 := TStringList.Create();  StringList1.Add(<code class="quote">'sample_doc1.pdf'</code>);  StringList1.Add(<code class="quote">'sample_doc2.pdf'</code>);  StringList1.Add(<code class="quote">'sample_doc3.pdf'</code>);   <code class="keyword">try</code><code class="comment">// Merge the documents</code>gtPDFDocument1.MergeDocs(StringList1);    <code class="comment">// Save the merged document to file</code>    gtPDFDocument1.SaveToFile(<code class="quote">'merged_doc.pdf'</code>); ...             </span></pre>
</div>
<h2><span style="font-family:Calibri;">IV.  Document Enhancement</span></h2>
<div id="docsection7" class="section">
<p><span style="font-family:Calibri;">PDFtoolkit can enhance a PDF document in a number of  useful ways, such as </span></p>
<ul>
<li><span style="font-family:Calibri;">Marking up text</span></li>
<li><span style="font-family:Calibri;">Hyperlinking images and text</span></li>
<li><span style="font-family:Calibri;">Adding bookmarks, stamps, and watermarks</span></li>
<li><span style="font-family:Calibri;">Embedding files as attachments</span></li>
</ul>
<p><span style="font-family:Calibri;">In  this code snippet, we see how to add bookmarks for all pages in a  document.</span></p>
<pre class="sourcecode"><span style="font-family:Calibri;">... <code class="keyword">var</code>I: Integer;gtPDFDocument1: TgtPDFDocument;    <code class="comment">// Bookmark </code>gtPDFOutline1: TgtPDFOutline;    <code class="comment">// Destination linked by a bookmark</code>gtPDFDestination1: TgtPDFDestination;    <code class="comment">// Display style of a bookmark in bookmark panel</code>    gtBookmarkAttribute1: TgtBookmarkAttribute;<code class="keyword">begin</code>  gtPDFDocument1 := TgtPDFDocument.Create(<code class="keyword">Nil</code>);  <code class="keyword">try</code>    gtPDFDocument1.LoadFromFile(<code class="quote">'sample_doc.pdf'</code>);    <code class="keyword">if</code> gtPDFDocument1.IsLoaded <code class="keyword">then</code><code class="keyword">begin</code><code class="comment">// For each page in the document</code><code class="keyword">for</code> I := 1 <code class="keyword">to</code> gtPDFDocument1.PageCount <code class="keyword">do</code><code class="keyword">begin</code><code class="comment">// Create a bookmark that links to the top-left</code><code class="comment">// corner of the page in the current iteration</code>gtPDFDestination1 :=TgtPDFDestination.Create(           I,      <code class="comment">// Number of the page</code>           dtXYZ,  <code class="comment">// Destination type (use x-y coordinates and zoom)</code>           0,      <code class="comment">// X-coordinate of the destination</code>           0,      <code class="comment">// Y-coordinate of the destination</code>           100);   <code class="comment">// Zoom</code><code class="comment">// Create bookmarks with maroon-colored, bold-italic text</code>gtBookmarkAttribute1 :=TgtBookmarkAttribute.Create([fsBold, fsItalic], clMaroon);       <code class="keyword">if</code> I = 1 <code class="keyword">then</code><code class="keyword">begin</code><code class="comment">// If it's the first page, then create a new bookmark</code>gtPDFOutline1 := gtPDFDocument1.CreateNewBookmark(                     <code class="quote">'Page #'</code> + IntToStr(I),  <code class="comment">// Bookmark title text</code>gtPDFDestination1,gtBookmarkAttribute1);           <code class="keyword">end</code><code class="keyword">else</code><code class="keyword">begin</code><code class="comment">// For other pages, add a bookmark next to the</code><code class="comment">// previously created bookmark</code>gtPDFOutline1 := gtPDFOutline1.AddNext(                    <code class="quote">'Page #'</code> + IntToStr(I),  <code class="comment">// Bookmark title text</code>gtPDFDestination1,gtBookmarkAttribute1);      <code class="keyword">end</code>;     <code class="keyword">end</code>;    <code class="keyword">end</code>;    <code class="comment">// Save the modified document</code>    gtPDFDocument1.SaveToFile(<code class="quote">'modified_doc.pdf'</code>); ...             </span></pre>
<p><span style="font-family:Calibri;">Here  is how to encrypt a PDF document.</span></p>
<pre class="sourcecode"><span style="font-family:Calibri;">...<code class="keyword">uses</code>...gtPDFCrypt,gtPDFDoc; <code class="keyword">var</code>    gtPDFDocument1: TgtPDFDocument;<code class="keyword">begin</code><code class="comment">// Create a document object</code>  gtPDFDocument1 := TgtPDFDocument.Create(<code class="keyword">Nil</code>);   <code class="keyword">try</code><code class="comment">// Load input document</code>    gtPDFDocument1.LoadFromFile(<code class="quote">'unencrypted_doc.pdf'</code>);     <code class="keyword">if</code> gtPDFDocument1.IsLoaded <code class="keyword">then</code><code class="keyword">begin</code><code class="comment">// Modify documents encryption settings with</code><code class="comment">// the TgtPDFEncryption object returned by</code><code class="comment">// TgtPDFDocument.Encryption property</code><code class="keyword">with</code> gtPDFDocument1.Encryption <code class="keyword">do</code><code class="keyword">begin</code>Enabled := True;        Level := el128bit;   <code class="comment">// 128-bit encryption level</code>        OwnerPassword := <code class="quote">'Owner'</code>;        UserPassword := <code class="quote">'User'</code>;UserPermissions:= [AllowAccessibility,AllowPrint,AllowHighResPrint];       <code class="keyword">end</code>;    <code class="keyword">end</code>;     <code class="comment">// Save the encrypted document to file</code>    gtPDFDocument1.SaveToFile(<code class="quote">'encrypted_doc.pdf'</code>); ...             </span></pre>
<p><span style="font-family:Calibri;">This  code snippet shows how to mark page numbers on all pages in a PDF  document.</span></p>
<pre class="sourcecode"><span style="font-family:Calibri;">... <code class="keyword">var</code>I: Integer;    gtPDFDocument1: TgtPDFDocument;<code class="keyword">begin</code>  gtPDFDocument1 := TgtPDFDocument.Create(<code class="keyword">Nil</code>);  <code class="keyword">try</code>    gtPDFDocument1.LoadFromFile(<code class="quote">'sample_doc.pdf'</code>);    <code class="keyword">if</code> gtPDFDocument1.IsLoaded <code class="keyword">then</code><code class="keyword">begin</code>gtPDFDocument1.MeasurementUnit := muPixels;     <code class="comment">// Write formatted string on all pages</code><code class="comment">// at specified location</code>gtPDFDocument1.TextOut(        <code class="quote">'Page &lt;%PageNo%&gt; of &lt;%TotPage%&gt;'</code>, <code class="comment">// page number</code>        gtPDFDocument1.                   <code class="comment">// x-coordinate</code>GetPageSize(I, muPixels).Width - 150,        100);                             <code class="comment">// y-coordinate</code><code class="keyword">end</code>;    <code class="comment">// Save the modified document</code>    gtPDFDocument1.SaveToFile(<code class="quote">'numbered_pages_doc.pdf'</code>); ...             </span></pre>
<p><span style="font-family:Calibri;">The  text string is written by an overloaded TgtPDFDocument.TextOut() method. The  string contains two built-in placeholders for the current page number and the  total page number. PDFtoolkit substitutes built-in placeholders with their  values at run time.</span></p>
<p><span style="font-family:Calibri;">You  can use placeholders with any TgtPDFDocument method that writes text to a  document. You can create your own placeholders and have them substituted at run  time by writing a handler for the TgtPDFDocument OnCalcVariables()  event.</span></p>
<pre class="sourcecode"><span style="font-family:Calibri;"><code class="keyword">property</code> OnCalcVariables: TgtOnCalcVariablesEvent <code class="keyword">read</code> FOnCalcVariables <code class="keyword">write</code>SetOnCalcVariables;             </span></pre>
</div>
<h2><span style="font-family:Calibri;">V.  Processing PDF Forms Documents (AcroForms)</span></h2>
<div id="docsection8" class="section">
<p><span style="font-family:Calibri;">PDFtoolkit can add, edit, fill, and flatten PDF form  fields. Editing a PDF form field involves changing its properties such as its  looks, position, or interactivity. Filling a PDF form field involves specifying  a particular value for the form field and saving the modified form field to the  document. Flattening a form field removes all interactivity from the form field  but ensures that the form field still looks its original self.</span></p>
<p><span style="font-family:Calibri;">In  this code snippet, we see how to add form fields to a document.</span></p>
<pre class="sourcecode"><span style="font-family:Calibri;">... <code class="keyword">var</code>gtPDFDocument1: TgtPDFDocument;  <code class="comment">// List box form field</code>gtPDFFormListBox1: TgtPDFFormListBox;  <code class="comment">// Push button form field</code>gtPDFFormPushButton1: TgtPDFFormPushButton;  <code class="comment">// Rectangles</code>gtRect1: TgtRect;  gtRect2: TgtRect;  <code class="keyword">begin</code>  gtPDFDocument1 := TgtPDFDocument.Create(<code class="keyword">Nil</code>);  <code class="keyword">try</code>    gtPDFDocument1.LoadFromFile(<code class="quote">'sample_doc.pdf'</code>);    <code class="keyword">if</code> gtPDFDocument1.IsLoaded <code class="keyword">then</code><code class="keyword">begin</code><code class="comment">// Set document measurement unit</code>gtPDFDocument1.MeasurementUnit := muInches;       <code class="comment">// Specify rectangle position for list box</code>gtRect1.Left := 1;gtRect1.Right := 2;gtRect1.Top := 1;gtRect1.Bottom := 2;       <code class="comment">// Create a list box form field</code>gtPDFFormListBox1 := TgtPDFFormListBox.Create();      <code class="comment">// Specify name for the list box in the document</code>      gtPDFFormListBox1.FieldName := <code class="quote">'lstCountry'</code>;      <code class="comment">// Add options to the list box</code>      gtPDFFormListBox1.AddItem(<code class="quote">'India'</code>);      gtPDFFormListBox1.AddItem(<code class="quote">'USA'</code>);      gtPDFFormListBox1.AddItem(<code class="quote">'Russia'</code>);      gtPDFFormListBox1.AddItem(<code class="quote">'Germany'</code>);      gtPDFFormListBox1.AddItem(<code class="quote">'Japan'</code>);      gtPDFFormListBox1.AddItem(<code class="quote">'China'</code>);      <code class="comment">// Specify background color for the list box</code>gtPDFFormListBox1.BackgroundColor := clWindow;gtPDFFormListBox1.BorderColor := clWindowFrame;      gtPDFFormListBox1.DefaultValue := <code class="quote">'Select a country'</code>;       <code class="comment">// Specify location of the list box</code>gtPDFFormListBox1.Rect := gtRect1;       <code class="comment">// Add the list box to the last page</code>gtPDFDocument1.AddFormField(gtPDFFormListBox1,         gtPDFDocument1.PageCount); <code class="comment">// page number</code><code class="comment">// Specify rectangle position for submit button</code>gtRect2.Left := 1;gtRect2.Right := 2;gtRect2.Top := 3;gtRect2.Bottom := 3.25;       <code class="comment">// Create a push button</code>gtPDFFormPushButton1 := TgtPDFFormPushButton.Create();      gtPDFFormPushButton1.FieldName := <code class="quote">'btnSubmit'</code>;      gtPDFFormPushButton1.NormalCaption := <code class="quote">'Submit'</code>;gtPDFFormPushButton1.Rect := gtRect2;      <code class="comment">// Set button to submit form contents when</code><code class="comment">// it is clicked inside a viewer application</code>gtPDFFormPushButton1.Action := pbaSubmit;      <code class="comment">// Specify URL where form contents should be</code><code class="comment">// submitted</code>gtPDFFormPushButton1.SubmitURL         := <code class="quote">'http://www.gnostice.com/newsletters'</code>+            <code class="quote">'/demos/200804/forms_test.asp'</code>;       <code class="comment">// Add push button to document</code>gtPDFDocument1.AddFormField(gtPDFFormPushButton1,gtPDFDocument1.PageCount);       <code class="comment">// Save the modified document to file</code>      gtPDFDocument1.SaveToFile(<code class="quote">'forms_doc.pdf'</code>);    <code class="keyword">end</code>; ...             </span></pre>
</div>
<h2><span style="font-family:Calibri;">VI.  Viewing and Printing PDF Documents</span></h2>
<div id="docsection9" class="section">
<p><span style="font-family:Calibri;">PDFtoolkit’s viewer is a visual component that can be  used to display PDF documents on a VCL forms application. It does not require <em>Adobe®  Reader</em>to be installed on the client machine. The viewer’s API provides  methods to implement navigation, zooming, and other toolbar-driven  functionality. </span></p>
<pre class="sourcecode"><span style="font-family:Calibri;">... gtPDFDocument1: TgtPDFDocument;gtPDFViewer1: TgtPDFViewer;OpenDialog1: TOpenDialog;edFilePath: TEdit;edNumberOfPages: TEdit; ... <code class="comment">// Select a PDF document</code><code class="keyword">if</code><code class="keyword">not</code> OpenDialog1.Execute <code class="keyword">then</code>exit;  <code class="comment">// Update text field</code>edFilePath.Text := OpenDialog1.FileName;  <code class="comment">// Unload any previously loaded document</code><code class="keyword">if</code> gtPDFDocument1.IsLoaded <code class="keyword">then</code>gtPDFDocument1.Reset;  <code class="keyword">try</code><code class="comment">// Load the selected PDF document</code>gtPDFDocument1.LoadFromFile(edFilePath.Text);    <code class="comment">// Check if document has been successfully loaded</code><code class="keyword">if</code> gtPDFDocument1.IsLoaded <code class="keyword">then</code><code class="keyword">begin</code><code class="comment">// Display number of pages</code>edNumberOfPages.Text := IntToStr(gtPDFDocument1.PageCount);     <code class="comment">// Specify document that needs to be</code><code class="comment">// displayed by the viewer</code>gtPDFViewer1.PDFDocument :=  gtPDFDocument1;     <code class="comment">// Activate viewer</code>gtPDFViewer1.Active := True; ...             </span></pre>
<p><span style="font-family:Calibri;"><img title="Click to see full-sized image" src="http://dn.codegear.com/article/images/38725/thumb03000005.png" border="0" alt="Click to see full-sized image" /></span></p>
<p><span style="font-family:Calibri;">PDFtoolkit’s PDF printer is a non-visual component. It  has methods and properties that allow a VCL application to query available  printers, select a printer, specify print settings, and print a specified set of  pages to the selected printer. The most attractive thing about the printer  component is that it can print PDF documents without requiring external  components such as <em>GhostScript</em> or <em>Adobe® Reader</em>. </span></div>
<h2><span style="font-family:Calibri;">VI.  Other Capabilities</span></h2>
<div id="docsection10" class="section">
<p><span style="font-family:Calibri;">PDFtoolkit includes a visual component meant for  providing interactive text search capabilities to VCL forms applications. It  needs to be used in conjunction with the PDFtoolkit’s viewer component. The  functionality of the search panel is similar to the one found in Adobe Reader.  See </span><a href="http://www.gnostice.com/images/newsletter/2006_09_PDFtoolkit_At_A_Glance_Components.png"><span style="font-family:Calibri;">screenshot</span></a><span style="font-family:Calibri;">.</span></p>
<p><span style="font-family:Calibri;">PDFtoolkit has several other components such as the  PDFOutlineViewer, which can be used to display a bookmark panel for a PDF  document.</span></p>
<p><span style="font-family:Calibri;">In  summary, Gnostice PDFtoolkit is a component suite that has well-rounded  capabilities in PDF processing.</span></div>
</div>
<h1><span style="font-family:Calibri;">What’s Next</span></h1>
<div id="docsection3" class="section">
<p><span style="font-family:Calibri;">The  next version of PDFtoolkit is currently in beta. Gnostice PDFtoolkit v3.0 will  use a whole new PDF processing engine that is separate from the PDFtoolkit API  logic. The key objective in writing the new PDF processor was also  modularization of logic. The advantage of this approach has been phenomenal  increase in speed, scalability, robustness, and scope for optimization. In the  next part of this article, we will learn more about this.</span></div>
<p></span></p>
<p><span style="font-family:Calibri;"><a href="http://dn.codegear.com/article/38725#9VIOtherCapabilities">Source Article</a></span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ekoindri.wordpress.com/2155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ekoindri.wordpress.com/2155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ekoindri.wordpress.com/2155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ekoindri.wordpress.com/2155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ekoindri.wordpress.com/2155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ekoindri.wordpress.com/2155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ekoindri.wordpress.com/2155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ekoindri.wordpress.com/2155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ekoindri.wordpress.com/2155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ekoindri.wordpress.com/2155/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ekoindri.wordpress.com&blog=468693&post=2155&subd=ekoindri&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ekoindri.wordpress.com/2008/09/26/pdf-processing-with-gnostice-pdftoolkit-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/67499c8391b48201b9ee3b0aa948b5cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ekoindri</media:title>
		</media:content>

		<media:content url="http://dn.codegear.com/article/images/38725/thumb03000003.png" medium="image">
			<media:title type="html">Click to see full-sized image</media:title>
		</media:content>

		<media:content url="http://dn.codegear.com/article/images/38725/03000004.png" medium="image">
			<media:title type="html">2008_08_pdt_extracted_text</media:title>
		</media:content>

		<media:content url="http://dn.codegear.com/article/images/38725/thumb03000005.png" medium="image">
			<media:title type="html">Click to see full-sized image</media:title>
		</media:content>
	</item>
		<item>
		<title>NTPort Library</title>
		<link>http://ekoindri.wordpress.com/2008/09/26/ntport-library-2/</link>
		<comments>http://ekoindri.wordpress.com/2008/09/26/ntport-library-2/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 17:41:33 +0000</pubDate>
		<dc:creator>ekoindri</dc:creator>
				<category><![CDATA[Umum]]></category>

		<guid isPermaLink="false">http://ekoindri.wordpress.com/?p=2152</guid>
		<description><![CDATA[













Technology Partner Directory Product  Details


























   


NTPort Library



NTPort Library enables your Windows application to real-time  direct access to PC I/O ports without using the Windows Drivers Development  Kit(DDK) &#8211; NTPort Library provides support for Windows 95/98/Me and Windows  NT/2000/XP/Server 2003. NTPort Library is easy to use. Under Windows NT, NTPort [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ekoindri.wordpress.com&blog=468693&post=2152&subd=ekoindri&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><table class="top-modules-area" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td class="middle-area">
<div class="banner-bar">
<div class="module-container">
<div id="secondary-nav-wrapper" class="module">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td valign="center">
<table border="0" width="100%">
<tbody>
<tr>
<td align="left" valign="bottom"><span style="font-family:Calibri;"><span class="page-title-darkred">Technology Partner Directory</span> <span class="subtitle-grey">Product  Details</span></span></td>
<td rowspan="2" align="right" valign="bottom"><span style="font-family:Calibri;"><img src="http://video.codegear.com/images/ctplogo-small.gif" border="0" alt="" /></span></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<table id="channels" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="content-channel" valign="top">
<div id="content">
<div id="primary-channel" class="without-secondary-nav">
<div class="module-container">
<div id="secondary-nav-wrapper" class="module">
<table border="0" cellspacing="0" cellpadding="0" width="99%" bgcolor="#ffffff">
<tbody>
<tr>
<td class="newBody" valign="top"><a href="http://tp.codegear.com/ctprefer.aspx?partner_id=971&amp;product_id=21" target="_BLANK"><span style="font-family:Calibri;"><img src="http://video.codegear.com/images/tdwin32_turbologo_100.jpg" border="0" alt="Turbo Delphi Professional" /></span></a><span style="font-family:Calibri;"> </span><a href="http://tp.codegear.com/ctprefer.aspx?partner_id=971&amp;product_id=22" target="_BLANK"><span style="font-family:Calibri;"><img src="http://video.codegear.com/images/tdnet_turbologo_100.jpg" border="0" alt="Turbo Delphi Pro for .NET" /></span></a><span style="font-family:Calibri;"> </span><a href="http://tp.codegear.com/ctprefer.aspx?partner_id=971&amp;product_id=23" target="_BLANK"><span style="font-family:Calibri;"><img src="http://video.codegear.com/images/tcpp_turbologo_100.jpg" border="0" alt="Turbo C++ Professional" /></span></a><span style="font-family:Calibri;"> </span><a href="http://tp.codegear.com/ctprefer.aspx?partner_id=971&amp;product_id=24" target="_BLANK"><span style="font-family:Calibri;"><img src="http://video.codegear.com/images/tcsharp_turbologo_100.jpg" border="0" alt="Turbo C# Professional for .NET" /></span></a></td>
</tr>
<tr>
<td class="content-title-darkred" valign="bottom"><a href="http://www.zealsoftstudio.com/ntport/" target="_blank"><span style="font-family:Calibri;">NTPort Library</span></a></td>
<td class="newBody" align="right" valign="top"><span style="font-family:Calibri;"><img src="http://www.zealsoft.com/ntport/ntport.gif" border="0" alt="Product Logo" /></span></td>
</tr>
<tr>
<td class="newBody" colspan="2" valign="top"><span style="font-family:Calibri;">NTPort Library enables your Windows application to real-time  direct access to PC I/O ports without using the Windows Drivers Development  Kit(DDK) &#8211; NTPort Library provides support for Windows 95/98/Me and Windows  NT/2000/XP/Server 2003. NTPort Library is easy to use. Under Windows NT, NTPort  Library driver can be load and unload dynamically, so you need not any  configuration. NTPort Library is also an ideal replacement of old BASIC INP or  OUT statement. The tool also supports getting the base address of LPT  ports.</span></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" width="675" bgcolor="#ffffff">
<tbody>
<tr>
<td class="newBody" valign="top"><span style="font-family:Calibri;">Embarcadero Product(s): </span></td>
<td class="newBody" valign="top"><span style="font-family:Calibri;">Delphi 2009, C++Builder 2009, JBuilder 2007, Turbo Delphi  Professional, Turbo Delphi Pro for .NET, Turbo C++ Professional, Turbo C#  Professional for .NET</span></td>
</tr>
<tr>
<td class="newBody" valign="top"><span style="font-family:Calibri;">Platform(s): </span></td>
<td class="newBody" valign="top"><span style="font-family:Calibri;">Java  J2SE, Windows, Microsoft .NET Framework</span></td>
</tr>
<tr>
<td class="newBody" valign="top"><span style="font-family:Calibri;">Category(s): </span></td>
<td class="newBody" valign="top"><span style="font-family:Calibri;">Communication Tool, Data Acquisition, Hardware  Control</span></td>
</tr>
<tr>
<td class="newBody" valign="top"><span style="font-family:Calibri;">Industry(s): </span></td>
<td class="newBody" valign="top"><span style="font-family:Calibri;">Telecommunications, Manufacturing,  Engineering</span></td>
</tr>
<tr>
<td class="newBody" colspan="2" valign="top">
<span style="font-family:Calibri;">real-time direct access to PC I/O ports</span></td>
</tr>
<tr>
<td class="newBody" colspan="2" valign="top">
<a href="http://www.zealsoft.com/ntport/portscn.gif" target="_blank"><span style="font-family:Calibri;"><img src="http://www.zealsoft.com/ntport/portscn.gif" alt="" /></span></a></td>
</tr>
</tbody>
</table>
<p><span style="font-family:Calibri;"><br />
<hr /></span></p>
<table border="0" cellspacing="0" cellpadding="0" width="675" bgcolor="#ffffff">
<tbody>
<tr>
<td colspan="2" valign="top"><span class="content-title-darkred"><a href="http://www.zealsoftstudio.com/" target="_blank"><span style="font-family:Calibri;">Zeal Soft  Studio</span></a></span></td>
</tr>
<tr>
<td class="newBody" valign="top"><span style="font-family:Calibri;">No.1607 Unit 133<br />
Beijing Institute of Tech.<br />
Beijing, PR 100081<br />
China<br />
</span></td>
<td class="newBody" valign="top">
<table border="0" cellspacing="0" cellpadding="0" bgcolor="#ffffff">
<tbody>
<tr>
<td class="newBody" valign="top"><span style="font-family:Calibri;">Phone: </span></td>
<td class="newBody" valign="top"><span style="font-family:Calibri;">+86  10 68911885</span></td>
</tr>
<tr>
<td class="newBody" valign="top"><span style="font-family:Calibri;">Corporate Email: </span></td>
<td class="newBody" valign="top"><a href="mailto:haili@public.bta.net.cn"><span style="font-family:Calibri;">haili@public.bta.net.cn</span></a></td>
</tr>
<tr>
<td class="newBody" valign="top"><span style="font-family:Calibri;">Sales Email: </span></td>
<td class="newBody" valign="top"><a href="mailto:info@zealsoft.com"><span style="font-family:Calibri;">info@zealsoft.com</span></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" width="675" bgcolor="#ffffff">
<tbody>
<tr>
<td class="newBody" valign="top"><span style="font-family:Calibri;">Zeal  SoftStudio is leading ActiveX and .NET components manufacturer. Zeal SoftStudio  announces a series of controls, including CheckListBox, Font List &amp; Combo,  NTPort Library, Color ComboBox, and so  on.</span></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ekoindri.wordpress.com/2152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ekoindri.wordpress.com/2152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ekoindri.wordpress.com/2152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ekoindri.wordpress.com/2152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ekoindri.wordpress.com/2152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ekoindri.wordpress.com/2152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ekoindri.wordpress.com/2152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ekoindri.wordpress.com/2152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ekoindri.wordpress.com/2152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ekoindri.wordpress.com/2152/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ekoindri.wordpress.com&blog=468693&post=2152&subd=ekoindri&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ekoindri.wordpress.com/2008/09/26/ntport-library-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/67499c8391b48201b9ee3b0aa948b5cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ekoindri</media:title>
		</media:content>

		<media:content url="http://video.codegear.com/images/ctplogo-small.gif" medium="image" />

		<media:content url="http://video.codegear.com/images/tdwin32_turbologo_100.jpg" medium="image">
			<media:title type="html">Turbo Delphi Professional</media:title>
		</media:content>

		<media:content url="http://video.codegear.com/images/tdnet_turbologo_100.jpg" medium="image">
			<media:title type="html">Turbo Delphi Pro for .NET</media:title>
		</media:content>

		<media:content url="http://video.codegear.com/images/tcpp_turbologo_100.jpg" medium="image">
			<media:title type="html">Turbo C++ Professional</media:title>
		</media:content>

		<media:content url="http://video.codegear.com/images/tcsharp_turbologo_100.jpg" medium="image">
			<media:title type="html">Turbo C# Professional for .NET</media:title>
		</media:content>

		<media:content url="http://www.zealsoft.com/ntport/ntport.gif" medium="image">
			<media:title type="html">Product Logo</media:title>
		</media:content>

		<media:content url="http://www.zealsoft.com/ntport/portscn.gif" medium="image" />
	</item>
	</channel>
</rss>