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

<channel>
	<title>Karl Heinz Kremer's Ramblings</title>
	<atom:link href="http://khk.net/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://khk.net/wordpress</link>
	<description>Stuff, stuff and more stuff</description>
	<pubDate>Fri, 01 Aug 2008 20:53:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Ms. Sylvia is Sick</title>
		<link>http://khk.net/wordpress/2008/08/01/ms-sylvia-is-sick/</link>
		<comments>http://khk.net/wordpress/2008/08/01/ms-sylvia-is-sick/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 20:53:55 +0000</pubDate>
		<dc:creator>khk</dc:creator>
		
		<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://khk.net/wordpress/?p=160</guid>
		<description><![CDATA[People who know me know how important good coffee is to me. For the last two years I&#8217;ve been using a Rancilio Sylvia to brew my morning cappuccino. And that is exactly what I wanted to do last Sunday morning:
So, I grind, tamp, and install the filter. I push the button, and within a split [...]]]></description>
			<content:encoded><![CDATA[<p>People who know me know how important good coffee is to me. For the last two years I&#8217;ve been using a <a href="http://coffeegeek.com/reviews/consumer/rancilio_silvia">Rancilio Sylvia</a> to brew my morning cappuccino. And that is exactly what I wanted to do last Sunday morning:</p>
<p>So, I grind, tamp, and install the filter. I push the button, and within a split second, I see light brown water shooting out of the filter&#8230; </p>
<p>That&#8217;s not what&#8217;s supposed to happen. Maybe I did not tamp enough&#8230; So, I try again - with the same result. Maybe the setting on my grinder got changed, adjust, grind, tamp, and give it another try - with the same result. </p>
<p><a href="http://www.flickr.com/photos/68335338@N00/516256573" title="View 'Cappuccino Cups' on Flickr.com"><img src="http://farm1.static.flickr.com/238/516256573_ea1de01bc6.jpg" alt="Cappuccino Cups" class="flickr" /></a></p>
<p>I notice that I can turn the handle of the filter a lot farther than usually&#8230; Did something break in the group head? </p>
<p>ARRRRGGGGHHHH&#8230; I need my morning coffee! My despair is good news for the local coffee shop. </p>
<p>After breakfast, I try to get on Rancilio&#8217;s web site to see if they have any troubleshooting instructions. The <a href="http://www.rancilio.com/">web site</a> is down. The <a href="http://www.rancilio.it/">Italian web site</a> is down too. Is this a conspiracy to drive me nuts?</p>
<p>OK, I have not cleaned the machine in a while, let&#8217;s start with that. Sure enough, the machine needed a good cleaning. I put everything together again, try another shot - the same result. </p>
<p>While disposing of the grounds, I notice something: The grounds are cold. They should be hot, but given the speed with which the water rushed through, at least a bit warm. Cold. Hmmm&#8230; I realize that not just the grounds are cold, the filter is cold too&#8230; and the group head too, and the whole machine is cold. Even though the &#8220;heating&#8221; lamp is on, the machine is not heating. </p>
<p>Aha! That explains everything. How could I miss that important clue?</p>
<p>So, let&#8217;s try Google. And sure enough, I find information about how to reset the thermal protection &#8220;thingy&#8221;. I open the machine, look around, and there it is: A small red button. I push it and hear a &#8220;click&#8221;. </p>
<p><a href="http://www.flickr.com/photos/68335338@N00/2718004482" title="View 'Ms. Sylvia' on Flickr.com"><img src="http://farm4.static.flickr.com/3177/2718004482_715146d72f.jpg" alt="Ms. Sylvia" class="flickr" /></a></p>
<p>I suppose that means that the thing actually got triggered. After putting the cup warming tray back on I turn the machine on, and after a couple of minutes I can feel how it is getting warm. Bingo!</p>
<p>Desperate times call for desperate measures, so I do not wait the 30 minutes the machine usually needs to warm up, I do part of the &#8220;<a href="http://www.coffeekid.com/archived/rancilio/cheatsilvia">Cheating Ms. Sylvia</a>&#8221; process and pull a shot after 15 minutes: It&#8217;s delicious!</p>
<p><a href="http://www.flickr.com/photos/68335338@N00/2349129385" title="View 'Cup of Cappuccino' on Flickr.com"><img src="http://farm3.static.flickr.com/2164/2349129385_43120e4167.jpg" alt="Cup of Cappuccino" class="flickr" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://khk.net/wordpress/2008/08/01/ms-sylvia-is-sick/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Are Spammers Getting Lazy?</title>
		<link>http://khk.net/wordpress/2008/07/18/are-spammers-getting-lazy/</link>
		<comments>http://khk.net/wordpress/2008/07/18/are-spammers-getting-lazy/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 12:37:52 +0000</pubDate>
		<dc:creator>khk</dc:creator>
		
		<category><![CDATA[Misc]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://khk.net/wordpress/?p=157</guid>
		<description><![CDATA[A Spam email without the message body? How am I supposed to buy stuff from them - or claim the price I won?

]]></description>
			<content:encoded><![CDATA[<p>A Spam email without the message body? How am I supposed to buy stuff from them - or claim the price I won?</p>
<p><a href="http://khk.net/wordpress/wp-content/uploads/2008/07/lazyspam_800px.png"><img class="aligncenter size-medium wp-image-159" title="lazyspam_800px" src="http://khk.net/wordpress/wp-content/uploads/2008/07/lazyspam_800px.png" alt="Lazy Spammer" class="flickr" width="500" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://khk.net/wordpress/2008/07/18/are-spammers-getting-lazy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rocks</title>
		<link>http://khk.net/wordpress/2008/07/10/rocks/</link>
		<comments>http://khk.net/wordpress/2008/07/10/rocks/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 22:36:57 +0000</pubDate>
		<dc:creator>khk</dc:creator>
		
		<category><![CDATA[Photos]]></category>

		<guid isPermaLink="false">http://khk.net/wordpress/?p=156</guid>
		<description><![CDATA[Somebody stacked rocks at the Chimney Bluffs beach. I&#8217;ve used my new Canon 70-200 f/2.8 lens wide open. With F2.8 the depth of field is very shallow, and I guess I have to get used to that&#8230;










]]></description>
			<content:encoded><![CDATA[<p>Somebody stacked rocks at the Chimney Bluffs beach. I&#8217;ve used my new <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2FCanon-70-200mm-2-8L-Telephoto-Cameras%2Fdp%2FB00006I53X%3Fpf%5Frd%5Fp%3D413862901%26pf%5Frd%5Fs%3Dcenter-41%26pf%5Frd%5Ft%3D201%26pf%5Frd%5Fi%3DB00006I53W%26pf%5Frd%5Fm%3DATVPDKIKX0DER%26pf%5Frd%5Fr%3D0WN460CM9A20MVJNE6T0&#038;tag=spechtshomepa-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325">Canon 70-200 f/2.8</a><img src="http://www.assoc-amazon.com/e/ir?t=spechtshomepa-20&amp;l=ur2&amp;o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> lens wide open. With F2.8 the depth of field is very shallow, and I guess I have to get used to that&#8230;</p>
<p><a href="http://www.flickr.com/photos/68335338@N00/2657062478" title="View 'Rocks (1)' on Flickr.com"><img src="http://farm4.static.flickr.com/3197/2657062478_1a233c6e5c.jpg" alt="Rocks (1)" class="flickr" /></a></p>
<p><a href="http://www.flickr.com/photos/68335338@N00/2656234737" title="View 'Rocks (2)' on Flickr.com"><img src="http://farm4.static.flickr.com/3044/2656234737_3d8fe3c560.jpg" alt="Rocks (2)" class="flickr" /></a></p>
<p><a href="http://www.flickr.com/photos/68335338@N00/2656235023" title="View 'Rocks (3)' on Flickr.com"><img src="http://farm4.static.flickr.com/3040/2656235023_08e51b8d09.jpg" alt="Rocks (3)" class="flickr" /></a></p>
<p><a href="http://www.flickr.com/photos/68335338@N00/2656235285" title="View 'Rocks (4)' on Flickr.com"><img src="http://farm4.static.flickr.com/3177/2656235285_cd55f7a6bd.jpg" alt="Rocks (4)" class="flickr" /></a></p>
<p><a href="http://www.flickr.com/photos/68335338@N00/2657063850" title="View 'Rocks (5)' on Flickr.com"><img src="http://farm4.static.flickr.com/3038/2657063850_d809297ee9.jpg" alt="Rocks (5)" class="flickr" /></a></p>
<p><a href="http://www.flickr.com/photos/68335338@N00/2657064186" title="View 'Rocks (6)' on Flickr.com"><img src="http://farm4.static.flickr.com/3173/2657064186_88f751a1f1.jpg" alt="Rocks (6)" class="flickr" /></a></p>
<p><a href="http://www.flickr.com/photos/68335338@N00/2657064578" title="View 'Rocks (7)' on Flickr.com"><img src="http://farm3.static.flickr.com/2308/2657064578_571ef1c057.jpg" alt="Rocks (7)" class="flickr" /></a></p>
<p><a href="http://www.flickr.com/photos/68335338@N00/2656236637" title="View 'Rocks (8)' on Flickr.com"><img src="http://farm4.static.flickr.com/3192/2656236637_e6c145ef32.jpg" alt="Rocks (8)" class="flickr" /></a></p>
<p><a href="http://www.flickr.com/photos/68335338@N00/2657062478" title="View 'Rocks (1)' on Flickr.com"><img src="http://farm4.static.flickr.com/3197/2657062478_1a233c6e5c.jpg" alt="Rocks (1)" class="flickr" /></a></p>
<p><a href="http://www.flickr.com/photos/68335338@N00/2657065174" title="View 'Rocks (9)' on Flickr.com"><img src="http://farm4.static.flickr.com/3208/2657065174_358ab53883.jpg" alt="Rocks (9)" class="flickr" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://khk.net/wordpress/2008/07/10/rocks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>He&#8217;s Dead, Jim!</title>
		<link>http://khk.net/wordpress/2008/07/08/hes-dead-jim/</link>
		<comments>http://khk.net/wordpress/2008/07/08/hes-dead-jim/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 01:39:17 +0000</pubDate>
		<dc:creator>khk</dc:creator>
		
		<category><![CDATA[Photos]]></category>

		<guid isPermaLink="false">http://khk.net/wordpress/?p=155</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/68335338@N00/2651668890" title="View 'He's Dead, Jim!' on Flickr.com"><img src="http://farm4.static.flickr.com/3146/2651668890_89bd1c3971.jpg" alt="He's Dead, Jim!" class="flickr" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://khk.net/wordpress/2008/07/08/hes-dead-jim/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Centercode is Looking for Beta Testers in NYC</title>
		<link>http://khk.net/wordpress/2008/07/08/centercode-is-looking-for-beta-testers-in-nyc/</link>
		<comments>http://khk.net/wordpress/2008/07/08/centercode-is-looking-for-beta-testers-in-nyc/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 21:22:25 +0000</pubDate>
		<dc:creator>khk</dc:creator>
		
		<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://khk.net/wordpress/?p=154</guid>
		<description><![CDATA[Do you live (or work) in the NYC area, and are interesting in beta testing a &#8220;portable internet device&#8221;? Centercode is looking for beta testers at https://www.onlinebeta.com/callout/default.html?callid={28E7069E-D185-43EE-BC5A-536E11BBA143}
I would love to sign up, but unfortunately Rochester is not really considered to be a NYC suburb.
]]></description>
			<content:encoded><![CDATA[<p>Do you live (or work) in the NYC area, and are interesting in beta testing a &#8220;portable internet device&#8221;? Centercode is looking for beta testers at <a href="https://www.onlinebeta.com/callout/default.html?callid={28E7069E-D185-43EE-BC5A-536E11BBA143}">https://www.onlinebeta.com/callout/default.html?callid={28E7069E-D185-43EE-BC5A-536E11BBA143}</a></p>
<p>I would love to sign up, but unfortunately Rochester is not really considered to be a NYC suburb.</p>
]]></content:encoded>
			<wfw:commentRss>http://khk.net/wordpress/2008/07/08/centercode-is-looking-for-beta-testers-in-nyc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Capture Rochester</title>
		<link>http://khk.net/wordpress/2008/07/06/capture-rochester/</link>
		<comments>http://khk.net/wordpress/2008/07/06/capture-rochester/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 17:26:47 +0000</pubDate>
		<dc:creator>khk</dc:creator>
		
		<category><![CDATA[Misc]]></category>

		<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://khk.net/wordpress/?p=153</guid>
		<description><![CDATA[Rochester&#8217;s paper, the Democrat and Chronicle, is going to publish a coffee table book with the best photos of Rochester. Anybody can submit pictures on the web site of the project. I never miss an opportunity to shamelessly promote myself  so there are a bunch of my Rochester pictures on the site as well. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ci.rochester.ny.us/">Rochester</a>&#8217;s paper, the <a href="http://www.democratandchronicle.com">Democrat and Chronicle</a>, is going to publish a coffee table book with the best photos of Rochester. Anybody can submit pictures on the <a href="http://www.capturerochester.com">web site of the project</a>. I never miss an opportunity to shamelessly promote myself <img src='http://khk.net/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> so there are a bunch of my Rochester pictures on the site as well. </p>
<p>The photos that get the most votes will get published in the book, so please go and vote for me <img src='http://khk.net/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<!-- Start of Capture Badge --></p>
<style type="text/css">
div#capture_montage {background: red; width: 203px; padding: 5px 10px; background: #fff; border: 1px solid #dcdcdc;}
img.cm_thumb {border: 0; width: 46px; height: 46px;}
a.cm_thumb_link {float: left; display: inline; margin: 0; padding: 0; width: 46px; height: 46px; border: 2px #fff solid; text-decoration: none;}
a.cm_thumb_link:hover {border-color: #ff9a99;}
div#capture_montage p {font-family: georgia; font-weight: 100; font-size: 10px; color: #999; margin: 0; padding: 5px 0;}
div#capture_montage p a {color: #ff1a00; text-decoration: none;}
div#capture_montage p a:hover {color: #ff9a99;}
p#cm_attribution {text-align: right; clear: both;}
</style>
<p><script type="text/javascript" src="http://capturerochester.com/widget/photo_montage?photos=8&#038;user=khkremer"></script><br />
<!-- End of Capture Badge --></p>
]]></content:encoded>
			<wfw:commentRss>http://khk.net/wordpress/2008/07/06/capture-rochester/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SPAM SPAM SPAM SPAM</title>
		<link>http://khk.net/wordpress/2008/07/04/spam-spam-spam-spam/</link>
		<comments>http://khk.net/wordpress/2008/07/04/spam-spam-spam-spam/#comments</comments>
		<pubDate>Sat, 05 Jul 2008 03:33:37 +0000</pubDate>
		<dc:creator>khk</dc:creator>
		
		<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://khk.net/wordpress/?p=152</guid>
		<description><![CDATA[I am using Google Apps For Your Domain (GAFYD) for - among other things - my email. Google&#8217;s SPAM filter is pretty good, but I used to go through the messages in my SPAM folder occasionally, and every now and then I would pull out a message that was incorrectly identified as SPAM&#8230; I don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I am using <a href="http://www.google.com/a">Google Apps For Your Domain (GAFYD)</a> for - among other things - my email. Google&#8217;s SPAM filter is pretty good, but I used to go through the messages in my SPAM folder occasionally, and every now and then I would pull out a message that was incorrectly identified as SPAM&#8230; I don&#8217;t do that anymore. So, if you sent me something and have not received a reply, chances are that your message got lost in SPAM. </p>
<p>Why do I no longer look for ham in spam? Because it got too overwhelming. Google keeps a month worth of messages in the SPAM folder, anything older than a month gets deleted automatically. Up until yesterday I had 14000 SPAM messages. Today the count dropped to a bit over 8000. This means that about a month ago I received 6000 SPAM emails in about a day - oh man was I looking back to the good old days of only 300 SPAMs a day. The reason for that was that somebody used my my email address and my domain as the &#8220;From&#8221; address for a ton of SPAM, and a lot of mail servers out there still send out messages that are trying to tell the sender &#8220;your message got classified as spam&#8221; or &#8220;the user you tried to spam does unfortunately no longer exit&#8221;&#8230; And all these messages ended up in my mailbox. </p>
<p>This was not the first time that happened, and I&#8217;m just too tired of going through these messages and trying to find the needle in the spam stack.</p>
]]></content:encoded>
			<wfw:commentRss>http://khk.net/wordpress/2008/07/04/spam-spam-spam-spam/feed/</wfw:commentRss>
		</item>
		<item>
		<title>French Bread</title>
		<link>http://khk.net/wordpress/2008/07/03/french-bread/</link>
		<comments>http://khk.net/wordpress/2008/07/03/french-bread/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 14:02:57 +0000</pubDate>
		<dc:creator>khk</dc:creator>
		
		<category><![CDATA[Cooking]]></category>

		<guid isPermaLink="false">http://khk.net/wordpress/?p=151</guid>
		<description><![CDATA[Here is my first attempt to bake on of the breads in Daniel Leader&#8217;s
Local Breads: Sourdough and Whole-Grain Recipes from Europe&#8217;s Best Artisan Bakers. As usual, I had a problem with following instructions, and I had to modify the recipe a bit: Instead of 500g of all purpose flour, I used 400g of AP and [...]]]></description>
			<content:encoded><![CDATA[<p>Here is my first attempt to bake on of the breads in Daniel Leader&#8217;s<br />
<a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fproduct%2F0393050556&#038;tag=spechtshomepa-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325">Local Breads: Sourdough and Whole-Grain Recipes from Europe&#8217;s Best Artisan Bakers</a>. As usual, I had a problem with following instructions, and I had to modify the recipe a bit: Instead of 500g of all purpose flour, I used 400g of AP and 100g of <a href="http://www.hodgsonmill.com/servlet/ProductView?command=cp&#038;commodityID=21709">whole wheat graham flour</a>. I did not want to replace too much flour with whole wheat to not change the character of the bread and the consistency of the dough too much. </p>
<p><a href="http://www.flickr.com/photos/68335338@N00/2626256396" title="View 'French Bread (1)' on Flickr.com"><img src="http://farm4.static.flickr.com/3032/2626256396_5e60e94a0b.jpg" alt="French Bread (1)" class="flickr" /></a></p>
<p>And, because of time constraints, I had to &#8220;rush&#8221; the whole process a bit by shaving off a few minutes of every step. The temperature on that day (it was very hot) may have worked to my advantage because the dough did rise a lot faster. </p>
<p><a href="http://www.flickr.com/photos/68335338@N00/2626257164" title="View 'French Bread (2)' on Flickr.com"><img src="http://farm4.static.flickr.com/3074/2626257164_4490b6c894.jpg" alt="French Bread (2)" class="flickr" /></a></p>
<p>French bread is best fresh, and I did not want to eat three loafs within an hour of baking them, so I also cut short the baking time a bit - hence the somehow pale look of the finished bread. </p>
<p><a href="http://www.flickr.com/photos/68335338@N00/2625436477" title="View 'French Bread (3)' on Flickr.com"><img src="http://farm4.static.flickr.com/3267/2625436477_7a42e0dc90.jpg" alt="French Bread (3)" class="flickr" /></a></p>
<p>That allows me to freeze the loafs and then just pop them into my convection toaster oven for 8 to 10 minutes and have delicious fresh french bread. </p>
]]></content:encoded>
			<wfw:commentRss>http://khk.net/wordpress/2008/07/03/french-bread/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PDF Content Streams</title>
		<link>http://khk.net/wordpress/2008/07/02/pdf-content-streams/</link>
		<comments>http://khk.net/wordpress/2008/07/02/pdf-content-streams/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 21:30:18 +0000</pubDate>
		<dc:creator>khk</dc:creator>
		
		<category><![CDATA[Acrobat]]></category>

		<category><![CDATA[PDF]]></category>

		<guid isPermaLink="false">http://khk.net/wordpress/?p=144</guid>
		<description><![CDATA[How Did You Get Here?
I did some research on why and how visitors come to my site. One interesting finding is that a number of people are searching for information about PDF content streams. Here is the list of the 50 most common Google searches that contain the string &#8220;content&#8221;:

1	pdf content streams
2	content streams pdf
3	acrobat content [...]]]></description>
			<content:encoded><![CDATA[<h2>How Did You Get Here?</h2>
<p>I did some research on why and how visitors come to my site. One interesting finding is that a number of people are searching for information about PDF content streams. Here is the list of the 50 most common Google searches that contain the string &#8220;content&#8221;:</p>
<p><span id="more-144"></span></p>
<pre>1	pdf content streams
2	content streams pdf
3	acrobat content streams
4	pdf "content streams"
5	adobe content streams
6	content streams
7	acrobat +"content streams"
8	content streams acrobat
9	content streams in pdfs
10	what are content streams in pdf
11	"content stream" pdf issues
12	"content stream"+pdf
13	"content streams" pdf
14	"content streams"+"pdf"
15	"content streams"+adobe+pdf
16	acrobat content stream
17	acrobat content stream reduction
18	acrobat professional content streams
19	acrobat reduce content stream
20	acrobat what is a content stream
21	acrobat, "content stream"
22	content stream adobe acrobat pdf
23	content stream in acrobat pdf
24	content streams adobe pdf
25	content streams in a pdf
26	content streams in adobe
27	content streams in pdf
28	content streams pdf acrobat
29	how to create content stream in pdf
30	how to reduce adobe acrobat content stream?
31	how to reduce content streams acrobat
32	move content streams pdf
33	pdf "content stream"
34	pdf "content stream" example
35	pdf "content streams" help
36	pdf acrobat what is content stream
37	pdf stream content
38	pdf what are content streams
39	pdf what is content streams
40	pdf+content+streams
41	reduce content streams in acrobat professional
42	what are content streams in pdfs
43	what are content streams pdf
44	what are pdf content streams
45	what are pdf content streams?
46	what is a content stream in acrobat
47	what is a content stream in pdf
48	what is content stream acrobat
49	what is content stream in a pdf?
50	what pdf content streams</pre>
<p>So, I guess you want to learn more about what PDF content streams are, and how to create them, with an example or two thrown in&#8230; I think I can do that.</p>
<p>In a <a href="http://khk.net/wordpress/2007/05/30/my-favorite-acrobat-8-feature/">previous post</a> and <a href="http://khk.net/wordpress/2007/06/07/working-with-pdf-page-content-streams/">here</a>, I&#8217;ve shown you how to look into a content stream with the tools that Acrobat has on board. The good news here is that with Acrobat 9 Professional (or Pro Extended), you do no longer have to run a preflight first, the option to browse the internal structure of the PDF is available right away.</p>
<p>What does the PDF spec has to say about content streams?</p>
<h2>PDF Specification</h2>
<p>Section 3.7 in the PDF Specification talks about content streams (and resource objects - the two travel together). Here we read that &#8220;Content streams are the primary means for describing the appearance of pages and other graphical elements.&#8221; Section 3.7.1 goes into more detail. The name &#8220;content stream&#8221; does already give away an important piece of information: We are talking about stream objects. The content stream is a stream object that describes how a page will be rendered. If your recollection of what a stream object is is a bit fuzzy, please review section &#8220;3.4.6 Object Streams&#8221; in the PDF spec again.</p>
<p>When we look at a page object in a PDF document, we will see a number of required entries in the page object dictionary:</p>
<ul>
<li>Type</li>
<li>Parent</li>
<li>Resources</li>
<li>MediaBox</li>
</ul>
<p>Hmmm&#8230; This list does not include the <tt>Contents</tt> entry (which does point to a content stream). Because this entry is optional, a page does not need page content, so an empty page in a PDF document does not necessarily contain a content stream. This makes it very easy to add blank pages to a PDF file.</p>
<p>Back to the spec: The <tt>Contents</tt> can be either a single stream or an array of streams. It is up to the creating application to decide which way to go. In general, if it&#8217;s possible to create the content stream in one operation, it&#8217;s probably best to use a single stream object, whereas a page content that contains different parts that are created either at different times, or copied from other objects or locations would suggest an array of content streams.</p>
<h2>Contents of a Content Stream</h2>
<p>So, what exactly is the content of a content stream? We find this information in the &#8220;Operator Summary&#8221; (appendix A in the PDF specification). This section lists all operators and a reference to where the operator is introduced in the body of the PDF specification.</p>
<p>I don&#8217;t want to discuss every operator (maybe in a future post - let me know if that&#8217;s something you want to see), but just fore reference purposes and so that this stuff shows up if somebody googles for one or more of these operators, here is a list:</p>
<p>b,B,b*,B*,BDC,BI,BMC,BT,BX,c,cm,CS,cs,d,d0,d1,Do,DP,EI,EMC,ET,EX,f,F,f*,G,g,gs,h,I,ID,J,j,K,k,l,m,M,MP,n,q,Q,re,RG,rg,rl,s,S,SC,SCN,scn,sh,T*,Tc,Td,TD,Tf,TJ,Tj,TL,Tm,Tr,Ts,Tw,Tz,v,w,W,W*,y,&#8217;,&#8221;</p>
<p>Go and read up on those operators <img src='http://khk.net/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Creating Content Streams</h2>
<p>So, how do you create a page stream out of nothing? There are two ways: easy (that is relative!) and complicated.</p>
<p>Let&#8217;s take a look at the simple method first.</p>
<h3>Using a Library or a Framework</h3>
<p>The most simple approach to creating a content stream is to let somebody else to do the heavy lifting: If you have a PDF library or a framework that allows you to create PDF content, then you don&#8217;t have to mess with the details of what needs to be where in your content stream. Examples for libraries are of course the <a href="http://www.adobe.com/devnet/acrobat/">Adobe PDF Library, or the Acrobat API</a> (take a look at the PDE level of API functions), <a href="http://www.pdflib.de">PDFLib</a> or <a href="http://www.lowagie.com/iText/">iText</a>. Just get familiar with the environment and create PDF content streams as complicated as you need them to be - without too much hassle.</p>
<h3>Manually Creating Content Streams</h3>
<p>OK, before we go any further, allow me a question: Why do you want to do this the hard way? Just stick to the approach mentioned in the last paragraph and be done with it. There really are not many reasons to torture yourself with this stuff, so just get a nice library and enjoy life&#8230;</p>
<p>Still here? There are only two things I can tell you at this point: Read the PDF spec, and read it again, and when you try to create your first content stream, make sure you get the stream length right. If you are dedicated to learning how to do this from scratch, there is nothing I can say that will magically make it unnecessary to read (and understand!) the PDF spec. So, get started, and if you have questions, ask them in the comments to this article. Good luck.</p>
<p> </p>
<h2>Content Streams in PDF Files</h2>
<p>So, what does a content stream in a PDF file look like? Here is an example:</p>
<p> </p>
<pre>13 0 obj
&lt;&lt;
	/Length 66/Filter/FlateDecode
&gt;&gt; stream
[some binary data]

endstream
endobj</pre>
<p>This stream is obviously compressed - which is indicated by the &#8220;/Filter&#8221; option of &#8220;/FlatDecode&#8221; in the stream dictionary. Let&#8217;s take a look at the uncompressed stream:</p>
<p>The first image shows the content stream of a page using the &#8220;View content stream with q/Q nesting levels collapsed&#8221;, and the second image uses the &#8220;View content stream by marked object&#8221;. The important difference is that the first image shows just the content stream operators, whereas the second image shows the operator without any parameters, followed by a description. To see the actual operators with parameters, the individual blocks need to be expanded.</p>
<div style="text-align:center;"><img src="http://khk.net/wordpress/wp-content/uploads/2008/07/contentstream-1.png" border="0" alt="ContentStream_1.png" width="487" height="461" /></div>
<div style="text-align:center;"><img src="http://khk.net/wordpress/wp-content/uploads/2008/07/contentstream-2.png" border="0" alt="ContentStream_2.png" width="487" height="461" /></div>
<p>Do you have any idea what this PDF page will look like? Here is the PDF document: <a title="test.pdf" href="http://khk.net/wordpress/wp-content/uploads/2008/07/test.pdf">test.pdf</a></p>
]]></content:encoded>
			<wfw:commentRss>http://khk.net/wordpress/2008/07/02/pdf-content-streams/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Frog&#8217;s Back</title>
		<link>http://khk.net/wordpress/2008/06/30/frogs-back/</link>
		<comments>http://khk.net/wordpress/2008/06/30/frogs-back/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 11:30:57 +0000</pubDate>
		<dc:creator>khk</dc:creator>
		
		<category><![CDATA[Photos]]></category>

		<guid isPermaLink="false">http://khk.net/wordpress/?p=147</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><a title="View 'Frog's Back' on Flickr.com" href="http://www.flickr.com/photos/68335338@N00/2622224391"><img class="flickr" src="http://farm3.static.flickr.com/2268/2622224391_305d96c4d7.jpg" alt="Frog's Back" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://khk.net/wordpress/2008/06/30/frogs-back/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.412 seconds -->
<!-- Cached page served by WP-Cache -->
