<?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/"
	>

<channel>
	<title>geedew :: Web Design, Programming, Professionalism &#187; Technology</title>
	<atom:link href="http://www.geedew.com/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.geedew.com</link>
	<description>Web Design, Web Programming, Programming on Linux, CSS, JavaScript, PHP, HTML5</description>
	<lastBuildDate>Thu, 22 Jul 2010 16:26:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>The new Digg, V4: Quick Review</title>
		<link>http://www.geedew.com/2010/07/20/the-new-digg-v4-quick-review/</link>
		<comments>http://www.geedew.com/2010/07/20/the-new-digg-v4-quick-review/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 03:21:12 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[digg]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.geedew.com/?p=237</guid>
		<description><![CDATA[I&#8217;m a reader of Digg.com. What can I say? I like to hear the quirky stories sometimes and when I come across something intelligent, it makes me feel more like I&#8217;m learning. So when the new Digg was dropped into Beta testing, you bet that I was all over that. See some screen-shots after the [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>I&#8217;m a reader of Digg.com.  What can I say? I like to hear the quirky stories sometimes and when I come across something intelligent, it makes me feel more like I&#8217;m learning.  So when the new Digg was dropped into Beta testing, you bet that I was all over that.  See some screen-shots after the jump.<span id="more-237"></span></p>
<p><b>Logging In</b><br />
<hr />
The new Digg can be viewed by going to <a href="http://new.digg.com">http://new.digg.com</a> which drops you into a pretty nice looking log in screen.<br />

<a href='http://www.geedew.com/2010/07/20/the-new-digg-v4-quick-review/login/' title='Login Compared to the Old Digg'><img width="75" height="75" src="http://cdn.geedew.com/wp-content/uploads/2010/07/Login-75x75.png" class="attachment-thumbnail" alt="New login on the left, Old Digg on the right." title="Login Compared to the Old Digg" /></a>
<a href='http://www.geedew.com/2010/07/20/the-new-digg-v4-quick-review/connections/' title='Connections'><img width="75" height="75" src="http://cdn.geedew.com/wp-content/uploads/2010/07/Connections-75x75.png" class="attachment-thumbnail" alt="This shows the Digg setup page for connections" title="Connections" /></a>
<a href='http://www.geedew.com/2010/07/20/the-new-digg-v4-quick-review/loadmorebug/' title='LoadMoreBug'><img width="75" height="75" src="http://cdn.geedew.com/wp-content/uploads/2010/07/LoadMoreBug-75x75.png" class="attachment-thumbnail" alt="Bug that shows up when loading too many" title="LoadMoreBug" /></a>
<a href='http://www.geedew.com/2010/07/20/the-new-digg-v4-quick-review/digg4home/' title='Digg4Home'><img width="75" height="75" src="http://cdn.geedew.com/wp-content/uploads/2010/07/Digg4Home-75x75.png" class="attachment-thumbnail" alt="Current versus New Digg" title="Digg4Home" /></a>
</p>
<p><b>Connecting</b><br />
<hr />
The first time you log in, it has a really easy to follow setup that asks some basic questions for you to connect to other social sites.  I connected them all; Twitter,Google and Facebook. </p>
<p>Apparently not a single friend of mine is currently using Digg V4, no surprise there!</p>
<p><b>Usage</b><br />
<hr />
Digg is setting itself up in a very good way.  They are re-inventing themselves with this idea.  Before, you could only get Diggs via categories like Top Ten, Technology, etc. or you could find users and view the Diggs that they Dugg.  But now, it is being setup so that you control your Digg feed, according to those users that you Digg.  In which you can then Digg items up.  So from now on Digg will be able to suggest to you, only the items that you really would like to see (mrbabyman all the way!).</p>
<p><b>Bugs</b><br />
<hr />
I did however encounter a bug, to which I filed a report.  If you try to load more items than there are currently in the system, you get an error stating that there are no more items, but the loading never quits and still shows up as a click-able link.  So there are still some kinks to work out, but I for one think this is a great way to stay ahead of the rest!</p>
<p>&#8211; Update &#8211;<br />
Another bug was discovered. When clicking to add a link to your account (like adding my website to mine), if you press <enter> after typing in your web address, the form does not submit.  Instead the page refreshes and you lose your previous entry you typed in.  The only way to submit the form it to actually click the button.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2010/07/20/the-new-digg-v4-quick-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dropbox on Lucid: Missing GUI? Fix it now!</title>
		<link>http://www.geedew.com/2010/07/15/dropbox-on-lucid-missing-gui-fix-it-now/</link>
		<comments>http://www.geedew.com/2010/07/15/dropbox-on-lucid-missing-gui-fix-it-now/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 16:20:39 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[Lucid Lynx]]></category>
		<category><![CDATA[Nautilus]]></category>

		<guid isPermaLink="false">http://www.geedew.com/?p=232</guid>
		<description><![CDATA[Dropbox is great and their support is phenomenal.  Recently I have been having issues after upgrading to Lucid Lynx.  It&#8217;s been a large bother on me because I use Dropbox a ton in my personal use.  On my development server, I&#8217;m running Ubuntu 10.04 64 Desktop version, and I rely on Dropbox to keep my files [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>Dropbox is great and their support is phenomenal.  Recently I have been having issues after upgrading to Lucid Lynx.  It&#8217;s been a large bother on me because I use Dropbox a ton in my personal use.  On my development server, I&#8217;m running Ubuntu 10.04 64 Desktop version, and I rely on Dropbox to keep my files in sync, including my programs that I write.  However, after upgrading, I noticed that Dropbox was &#8216;missing&#8217;.  It no longer appeared in the notification applet in the menu system.  It was still in the Menu, but when I clicked it &#8216;nothing&#8217; occurred!  Well I solved the issue, with a little help from the Dropbox forums. <span id="more-232"></span></p>
<p>First, I noticed that when I accessed by System Monitor application (Menu-&gt;System-&gt;Administration-&gt;System Monitor), Dropbox was running, and in fact it was running very hard (heating up my machine in the process).  Yet, nothing was visibly happening; no gui, no sync.  Killing the process was the next step, and then running Dropbox again from the menu resulted in the same scenario; nothing visually occurring.</p>
<p>I tried uninstalling, reinstalling via the &#8216;apt&#8217; commands.  Did not help.</p>
<p>I tried uninstalling forcing a complete removal and reinstalling after adding back in the sources.list commands via &#8216;apt&#8217;.  Did not help.</p>
<p>For awhile I considered that the issue was Lucid Lynx, so I sat on it for a week.  After about 4 or 5 updates to the OS, I tried all of the previous steps, still nothing helped.</p>
<p><strong>Finally a Solution!</strong></p>
<p>I searched Google, and came across a very similar situation, occurring months ago on Suse Linux (<a href="http://forums.dropbox.com/topic.php?id=19094&amp;replies=24#post-120769">http://forums.dropbox.com/topic.php?id=19094&amp;replies=24#post-120769</a>).</p>
<p>In this was the key, to do this just follow these steps.</p>
<pre class="brush: plain;">
Open your terminal.
#cd ~
#rm -rf .dropbox* Dropbox
#wget  http://dl-web.dropbox.com/u/17/dropbox-lnx.x86-0.7.110.tar.gz
#tar xzf dropbox-lnx.x86-0.7.110.tar.gz
#.dropbox-dist/dropbox
</pre>
<p>Step by Step:</p>
<p>1. cd ~ : Navigate to your home directory</p>
<p>2. rm -rf .dropbox* Dropbox : Delete all folders starting with .dropbox and also remove the Dropbox folder (Warning, your Dropbox folder may have changes that will be deleted! Rename or make a backup first in this case.)</p>
<p>3. wget http&#8230;. : Download the newest stable version of Dropbox (this is a newer version than what is in the repository!)</p>
<p>4. tar xzf &#8230; : Unzip/Unpack the downloaded file</p>
<p>5. Run Dropbox!</p>
<p>At this point you should find that the Dropbox opens up the installation information.</p>
<p>Follow the Dropbox instructions, and when finished, you will have the Dropbox notification icon in the notification applet in the menu.  Right click on that applet, click on stop Dropbox.  Close your terminal, and then navigate to the Dropbox menu item to start it up again.  That&#8217;s all, it should work great now like it does for me!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2010/07/15/dropbox-on-lucid-missing-gui-fix-it-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript / PHP  &#8211; Source Documentor for JavaScript</title>
		<link>http://www.geedew.com/2009/01/01/javascript-php-source-documentor-for-javascript/</link>
		<comments>http://www.geedew.com/2009/01/01/javascript-php-source-documentor-for-javascript/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 17:58:28 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[javascipt]]></category>

		<guid isPermaLink="false">http://geedew.com/?p=26</guid>
		<description><![CDATA[I&#8217;ve begun putting together an idea for a PHP program that will document JavaScript.  In the general sense, it will need to have a good lexical analyzer because it need to understand the syntax and the buildup and creation of the functions and classes.   I&#8217;m going to outline some goals that are needed for me [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>I&#8217;ve begun putting together an idea for a PHP program that will document JavaScript.  In the general sense, it will need to have a good lexical analyzer because it need to understand the syntax and the buildup and creation of the functions and classes.   I&#8217;m going to outline some goals that are needed for me to use a program like this.</p>
<p>Requirements</p>
<ol>
<li>Must be autonomous</li>
<li>Must be able to Add/Edit Comments, without having to directly change the source files</li>
<li>Must contain revision controls</li>
<li>Display of the output must be adaptable easily</li>
<li>Must contain an API to access from &#8220;afar&#8221;</li>
</ol>
<p>With those five initial setups, I think I will start to build some thought expirements to figure out exactly what I am talking about.  Should I implement SVN into it?  ScriptDoc formats?  JavaScript engine for analyzing?  Lots of different things.</p>
<p>Come back to this post for more info later.  I&#8217;m going to search out other programs that implement some of these things to figure out if there are any.</p>
<p>Help appreciated <img src='http://cdn.geedew.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2009/01/01/javascript-php-source-documentor-for-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating the Ultimate Mobile Developer Computer: Lenovo X61</title>
		<link>http://www.geedew.com/2008/01/01/creating-the-ultimate-mobile-developer-computer-lenovo-x61/</link>
		<comments>http://www.geedew.com/2008/01/01/creating-the-ultimate-mobile-developer-computer-lenovo-x61/#comments</comments>
		<pubDate>Wed, 02 Jan 2008 03:47:04 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[lenovo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[x61]]></category>

		<guid isPermaLink="false">http://geedew.com/2008/01/14/creating-the-ultimate-mobile-developer-computer-lenovo-x61/</guid>
		<description><![CDATA[As a developer, I long for two things that rarely ever come together well. This Christmas, I have been able to do just that, and I love it! I am always on the lookout for something that will give me the power of a desktop, but the mobility and function of a tablet computer. Three [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p>  As a developer, I long for two things that rarely ever come together well.  This Christmas, I have been able to do just that, and I love it!  I am always on the lookout for something that will give me the power of a desktop, but the mobility and function of a tablet computer.  Three years ago I had bought a Toshiba m205, which some may know, was one of the first tablet computers to really make a mark on the market.  I really enjoyed it, as it was very nice, but it was quickly outdone by the market.  It really couldn&#8217;t run Vista, and XP Tablet version has never been developed enough to get the full potential from a tablet computer.</p>
<p>IBM has outdone themselves with the x61.  The x61 came out about a half a year ago, and this Christmas they had a one week deal that dropped the price down by nearly 50% of the overall Cost.  I jumped at the prospect, even though I had decided to wait another 6 months to replace my aging Toshiba.  Let me Introduce you to my new computer.</p>
<p><strong>Lenovo X61</strong></p>
<ul>
<li> Dual Core Centrino Pro 1.8Ghz with 4Mb Cache</li>
<li>3Gb 533Mhz DDRII Ram (Max 4Gb)</li>
<li>100Gb 7200rpm Hard Drive with 1Gb Cache for speed boost</li>
<li>Multi-Touch Monitor (Touchscreen and Stylus)</li>
<li>Multi-View Monitor (Indoor and Outdoor &#8211; full sunlight does not affect viewing enjoyment. ** Max resolution is only 1024 x 768)</li>
<li>Tablet Mode (monitor swings around and lays flat)</li>
<li>Vista Business</li>
<li>Intel 965 Integrated Video with 128Mb dedicated memory</li>
<li>3 usb 2.0, Gigabit Lan, Wifi A/B/G/N, SD reader, PCMCIA slot, 1394 Firewire, VGA out, onboard Mic.</li>
<li>4-Cell Battery (8-Cell available) @ 2.5 hours of power</li>
</ul>
<p>So as you can see, this thing flies!  It&#8217;s a tablet computer that weighs a mere 3.77 lbs with the battery in.</p>
<p>Now to the good stuff, what this is intended to do.</p>
<p>First thing I did was install VMware Workstation 6.  This is a virtualization software that will allow me to do what&#8217;s next in the list.</p>
<p>Next I downloaded Ubuntu Gutsy 7.10 in live cd Iso format. Then mounted the ISO as a virtual CD drive.  Fired up VMware and created a new virtual computer, which was subsequently loaded with Ubuntu.</p>
<p>While in Ubuntu, I then installed Quanta+, Apache, PHP5.2, MySql5, RapidSVN.</p>
<p>Quanta has quickly become my chosen editor when it comes to developing.  It&#8217;s fast, sublime, pretty and full of features, including auto finishing words you are typing based on a history of the words you have typed.  The rest of the LAMP install is too long and also reproduced many times over (check out the forums on http://forums.ubuntu.com for more details if you are interested in this) to repeat here for the 10 Millionth time.</p>
<p>While VMWare is running the Ubuntu machine, that I dedicated 512Mb Ram to, I started network installing Microsoft Office.  I really really enjoy using OneNote, which is one of the greatest Tablet Tools that is out there.</p>
<p>After that was all said an done, I know have a mobile computer that packs a serious punch.  I am running Vista using OneNote to take notes, Internet Explorer 7, Firefox, Safari and Opera to test web pages, virtualized Ubuntu Gutsy running my editor and Webserver, so no matter where I happen to be, I can easily program and test via a single powerful machine.</p>
<p>Such an amazing combination, I am sure many of you also would consider the same.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2008/01/01/creating-the-ultimate-mobile-developer-computer-lenovo-x61/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To: Converting PDF to Word and HTML</title>
		<link>http://www.geedew.com/2007/12/23/how-to-converting-pdf-to-word-and-html/</link>
		<comments>http://www.geedew.com/2007/12/23/how-to-converting-pdf-to-word-and-html/#comments</comments>
		<pubDate>Sun, 23 Dec 2007 08:36:38 +0000</pubDate>
		<dc:creator>Drew</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Microsoft Office]]></category>
		<category><![CDATA[OpenOffice]]></category>
		<category><![CDATA[PDF]]></category>

		<guid isPermaLink="false">http://geedew.com/wp-content/uploads/2007/12/23/how-to-converting-pdf-to-word-and-html/</guid>
		<description><![CDATA[Sites need to be able to interact in one single, universal space. -Tim Berners-Lee I started this little project because I have a client whom needs to get his 24 page PDF online. The problem is that a 24 page PDF with all the bells and whistles ends up being over 5mb in size. This [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=b02858dd9961de60a8a7d0f9efe9c758&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=20 height=20/><p align="center"><span style="size: 12px; font-weight: 400; color: #000000; font-family: calibri,veranda">Sites need to be able to interact in one single, universal space.</span></p>
<p align="right"><span style="size: 14px; font-weight: bold; color: #000000; font-family: calibri,veranda">-Tim Berners-Lee</span></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda">I started this little project because I have a client whom needs to get his 24 page PDF online.  The problem is that a 24 page PDF with all the bells and whistles</span></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda">ends up being over 5mb in size.  This causes issues for people running sub-cable internet connections, as the loading time becomes horrendous.  So to solve the problem, I am going to run the PDF as a download by choice and have all the links point to the HTML(Hyper-Text Markup Language: what webpages are written in) converted page when they click on what page they want to see.  This does however cause problems if something is updated on the PDF, the HTML is not dynamic or binded to the PDF so and update will p align=&#8221;left&#8221;&gt;     <span style="size: 12px; color: #000000; font-family: calibri,veranda">have to occur in both places.  The only way around that is to have the HTML being the origionating source and have the &#8216;download as pdf&#8217; link be  a call to a server side script that packages the HTML as a PDF. That however is too much for what this client needs and the issues with the updating will have to be taken in stride. </span></span></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"> </span></p>
<blockquote>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"><strong>Tools Needed</strong>:<br />
RTF or DOC reader (I prefer OpenOffice2.2) that can convert to HTML<br />
A Program designed to convert PDF to DOC format (I used Able2dDoc, licensed)</span></p>
</blockquote>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda">Unfortunately, In my case, the PDF contained a large amount of tables that were made up by images after conversion. Because of this, I had to handle things a little bit different, in which I will explain later.</span></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"><br />
<strong>First things first, lets convert to HTML</strong></span></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"> Using the software I used, Able2Doc, if you load up the PDF you can simply convert the file to a DOC format.  Notice, not many converters will go straight from PDF to DOC or RTF formats. Once you are able to convert the PDF to DOC or RTF, you can then open up that file into Microsoft Office or Open Office.  Both have the ability to Open up these files and then Export them as HTML.</span></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"><strong>Microsoft Offices&#8217; way of doing things</strong></span></p>
<p style="text-align: left;"><span style="size: 12px; color: #000000; font-family: calibri,veranda">Office is really simple. Take the document you are in and go to File-&gt;Save As-&gt;Other</span></p>
<p>
<span style="size: 12px; color: #000000; font-family: calibri,veranda"> </span><a title="PDF to HTML Save as" href="http://geedew.com/blog/wp-content/uploads/2007/12/pdftohtml-word-saveas.png"><img style="border: 1px solid black;" src="http://geedew.com/blog/wp-content/uploads/2007/12/pdftohtml-word-saveas.png" alt="PDF to HTML Save as" width="500" height="300" /></a><br />
</p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"> Then after that you can go click and change the type to an HTML Document&#8230; put in the name and your done!</span></p>
<p></p>
<p align="left"><a title="PDF to HTML Save as HTML" href="http://geedew.com/blog/wp-content/uploads/2007/12/pdftohtml-word-saveas-html.png"><img style="border: 1px solid black;" src="http://geedew.com/blog/wp-content/uploads/2007/12/pdftohtml-word-saveas-html.png" alt="PDF to HTML Save as HTML" width="500" height="300" /></a></p>
<p></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"><strong>Open Offices&#8217; way of doing things<br />
</strong>In Open Office, it is actually easier! Just have your document open and then go to File -&gt;Save As and you can then select the HTML from the drop down list.  No extra step as there is in Word.</span></p>
<p align="left"> </p>
<p align="left"> </p>
<p align="left"><a title="PDF to HTML OO" href="http://geedew.com/blog/wp-content/uploads/2007/12/pdftohtml-oo2-saveas-html.png"><img style="border: 1px solid black;" src="http://geedew.com/blog/wp-content/uploads/2007/12/pdftohtml-oo2-saveas-html.png" alt="PDF to HTML OO" width="500" height="300" /></a></p>
<p></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda"><br />
<strong>When things get messy&#8230;<br />
</strong>You have to start to get creative. I know, it stinks, when things just don&#8217;t go your way.  I mentioned earlier that I my specific issue just could not be settled by this process only because the images in the PDF were making up the tables and the text did not stick inside the image/tables when changed to HTML.  I ended having to go with a slightly altered reality, but the end result to the user is near the same.</span></p>
<p align="left"><span style="size: 12px; color: #000000; font-family: calibri,veranda">The idea that I had was to split the PDF into images. This was actually really easy to do.  I swapped over to linux for this part (Ubuntu Gutsy).  The PDF Reader program has the ability to output to JPG for your PDF&#8217;s.  This came in very handy, I simply outputted the PDF I was using, 28 pages of it, as JPG&#8217;s and then used to Javascript to make a nice little  setup for Checking out the picutres.</span></p>
<blockquote>
<h5><span style="font-family: calibri; ">Javascript Code In the &lt;body&gt; tags :</span><br />
<span style="color: #888888;"><span style="font-weight: normal;">&lt;script&gt; function PageQuery(q) {if(q.length &gt; 1) this.q = q.substring(1, q.length);else this.q = null;<br />
this.keyValuePairs = new Array();<br />
if(q) {<br />
for(var i=0; i &lt; this.q.split(&#8220;&amp;&#8221;).length; i++) {<br />
this.keyValuePairs[i] = this.q.split(&#8220;&amp;&#8221;)[i];<br />
}<br />
}<br />
this.getKeyValuePairs = function() { return this.keyValuePairs; }<br />
this.getValue = function(s) {<br />
for(var j=0; j &lt; this.keyValuePairs.length; j++) {<br />
if(this.keyValuePairs[j].split(&#8220;=&#8221;)[0] == s)<br />
return this.keyValuePairs[j].split(&#8220;=&#8221;)[1];<br />
}<br />
return false;<br />
}<br />
this.getParameters = function() {<br />
var a = new Array(this.getLength());<br />
for(var j=0; j &lt; this.keyValuePairs.length; j++) {<br />
a[j] = this.keyValuePairs[j].split(&#8220;=&#8221;)[0];<br />
}<br />
return a;<br />
}<br />
this.getLength = function() { return this.keyValuePairs.length; }<br />
}<br />
function queryString(key){<br />
var page = new PageQuery(window.location.search);<br />
return unescape(page.getValue(key));<br />
}<br />
function displayItem(key){<br />
if(queryString(key)==&#8217;false&#8217;)<br />
{<br />
return &#8217;1&#8242;;<br />
}else{<br />
return queryString(key);<br />
}<br />
}<br />
&lt;/script&gt;</span></span></h5>
</blockquote>
<p><script type="text/javascript"><!--
 function PageQuery(q) {if(q.length > 1) this.q = q.substring(1, q.length);else this.q = null;
this.keyValuePairs = new Array();
if(q) {
for(var i=0; i < this.q.split("&#038;").length; i++) {
this.keyValuePairs[i] = this.q.split("&#038;")[i];
}
}
this.getKeyValuePairs = function() { return this.keyValuePairs; }
this.getValue = function(s) {
for(var j=0; j < this.keyValuePairs.length; j++) {
if(this.keyValuePairs[j].split("=")[0] == s)
return this.keyValuePairs[j].split("=")[1];
}
return false;
}
this.getParameters = function() {
var a = new Array(this.getLength());
for(var j=0; j < this.keyValuePairs.length; j++) {
a[j] = this.keyValuePairs[j].split("=")[0];
}
return a;
}
this.getLength = function() { return this.keyValuePairs.length; }
}
function queryString(key){
var page = new PageQuery(window.location.search);
return unescape(page.getValue(key));
}
function displayItem(key){
if(queryString(key)=='false')
{
return '1';
}else{
return queryString(key);
}
}
// --></script></p>
<p><span style="size: 12px; color: #000000; font-family: calibri,veranda"><strong>What else?<br />
</strong></span></p>
<p><span style="size: 12px; color: #000000; font-family: calibri,veranda"><strong> </strong>Once this code is in place, you can see what it is trying to do.  You are basically parsing a query address URL and looking for the specific information showing on whatever variable you pass in.  This is giving your JavaScript the ability to know what a variable is from a JavaScript /PHP equivalent to the Get variables.</span><span style="size: 12px; color: #000000; font-family: calibri,veranda"><strong><br />
</strong></span></p>
<p><span style="size: 12px; color: #000000; font-family: calibri,veranda"><strong> </strong>Now you need the code that will change values of a select box, so the complete picture will come into view.</span></p>
<p><!--</p-->
<p><span style="size: 12px; color: #000000; font-family: calibri,veranda">The idea that I had was to split the PDF into images. This was actually really easy to do. I swapped over to Linux for this part (Ubuntu Gutsy). The PDF Reader program has the ability to output to JPG for your PDF&#8217;s. This came in very handy, I simply outputted the PDF I was using, 28 pages of it, as JPG&#8217;s and then used to JavaScript to make a nice little setup for Checking out the pictures.</span></p>
<blockquote>
<h5><span style="font-weight: normal;"><span style="color: #888888;">&lt;</span></span><span style="font-weight: normal;"><span style="color: #888888;">SCRIPT LANGUAGE=&#8221;JavaScript&#8221;&gt;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> function loadPage(value) {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;">if(value == &#8220;&#8221;) {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> document.getElementById(&#8216;mainimage&#8217;).src=&#8221;img/ProductCatalog/Page1.jpg&#8221;;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> } else {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> document.getElementById(&#8216;mainimage&#8217;).src=&#8221;img/ProductCatalog/Page&#8221; + displayItem(&#8216;p&#8217;) +&#8221;.jpg&#8221;;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> function changeImage()<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;">{<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> document.getElementById(&#8216;mainimage&#8217;).src = document.getElementById(&#8216;list&#8217;).options[document.getElementById('list').selectedIndex].value;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;">function prevImage()<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> if(document.getElementById(&#8216;list&#8217;).selectedIndex == 0)<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> document.getElementById(&#8216;list&#8217;).selectedIndex = document.getElementById(&#8216;list&#8217;).options.length-1;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> else<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> document.getElementById(&#8216;list&#8217;).selectedIndex&#8211;;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> changeImage();<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;">function nextImage()<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> if(document.getElementById(&#8216;list&#8217;).selectedIndex == document.getElementById(&#8216;list&#8217;).options.length-1)<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> document.getElementById(&#8216;list&#8217;).selectedIndex = 0;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> else<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> {<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> document.getElementById(&#8216;list&#8217;).selectedIndex++;<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> }<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;"> changeImage();<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;">}<br />
</span></span></h5>
<h5><span style="font-weight: normal;"><span style="color: #888888;">&lt;/script&gt;</span></span></h5>
</blockquote>
<p><span style="font-family: calibri;">That was pretty much what the JavaScript needed, and then I could handle everything else from HTML which made things much easier.  All that is said and done, any Q&#8217;s just ask.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geedew.com/2007/12/23/how-to-converting-pdf-to-word-and-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
