<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/">

  <channel rdf:about="http://big.faceless.org:80/blog/">
    <title>BFO Blog - Java PDF Software tips and tricks.</title>
    <link>http://big.faceless.org:80/blog/</link>
    <description>Tips, Tricks and News from the Big Faceless Organization</description>
    <items>
      <rdf:Seq>
        
        <rdf:li resource="http://big.faceless.org:80/blog/2008/11/13/1226593800000.html" />
        
        <rdf:li resource="http://big.faceless.org:80/blog/2008/10/14/1223943180000.html" />
        
        <rdf:li resource="http://big.faceless.org:80/blog/2008/08/06/1218017700000.html" />
        
        <rdf:li resource="http://big.faceless.org:80/blog/2008/07/31/1217517647014.html" />
        
        <rdf:li resource="http://big.faceless.org:80/blog/2008/07/17/1216306371230.html" />
        
        <rdf:li resource="http://big.faceless.org:80/blog/2008/07/15/1216141851388.html" />
        
        <rdf:li resource="http://big.faceless.org:80/blog/2008/07/07/1215423120000.html" />
        
      </rdf:Seq>
    </items>
  </channel>

  
  <item rdf:about="http://big.faceless.org:80/blog/2008/11/13/1226593800000.html">
    <title>BFO releases Java PDF Library 2.10.6 and Report Generator 1.1.40</title>
    <link>http://big.faceless.org:80/blog/2008/11/13/1226593800000.html</link>
    
      
        <description>
          &lt;p&gt;
BFO have simultaneously released new versions of their Java PDF Library and Java Report Generator tools.
&lt;/p&gt;&lt;p&gt;
The 2.10.6 release of the PDF Library includes a vastly improved JavaScript environment with numerous bug fixes for the Library and the PDF Viewer extension. Version 1.1.40 brings the Report Generator up to speed with the improvements made to the PDF Library with the last few releases. The Report Generator is built on Graph Library 1.1.6 and PDF Library 2.10.6. Please see the &lt;a
href=&#034;http://big.faceless.org/viewtext.jsp?url=products/pdf/docs/CHANGELOG.txt&amp;title=Big+Faceless+PDF+Library+Changelog&#034;&gt;PDF Library Changelog&lt;/a&gt; for more details.&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
Download the latest releases from &lt;a
href=&#034;http://bfo.co.uk/products/download.jsp&#034;&gt;BFO website&lt;/a&gt;
&lt;/p&gt;
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://big.faceless.org:80/blog/2008/10/14/1223943180000.html">
    <title>Big Faceless releases Java PDF Library 2.10.4</title>
    <link>http://big.faceless.org:80/blog/2008/10/14/1223943180000.html</link>
    
      
        <description>
          &lt;p&gt;
BFO are pleased to announce the 2.10.4 release of their PDF library.
Several months in the making, it contains a large number of changes,
mostly under the hood.
&lt;/p&gt;&lt;p&gt;
For the end user, the primary new features will be the new single
column display in the Viewer; improvements to allow the library to
work with XFA-only PDFs and the addition of the new USPS
&#034;IntelligentMail&#034; BarCode. There was also a large rewrite of the
font-subsystem, improving the ability of the library to render
unusually constructed PDFs and paving the way for future enhancements.
The full list of changes is in the &lt;a
href=&#034;http://big.faceless.org/viewtext.jsp?url=products/pdf/docs/CHANGELOG.txt&amp;title=Big+Faceless+PDF+Library+Changelog&#034;&gt;PDF Library Changelog&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
As always, the latest release is at avilable for download at the &lt;a
href=&#034;http://bfo.co.uk/products/download.jsp&#034;&gt;BFO website&lt;/a&gt;
&lt;/p&gt;


        </description>
      
      
    
  </item>
  
  <item rdf:about="http://big.faceless.org:80/blog/2008/08/06/1218017700000.html">
    <title>BFO Technical Support &#039;second to none&#039; says top Adobe provider</title>
    <link>http://big.faceless.org:80/blog/2008/08/06/1218017700000.html</link>
    
      
        <description>
          &lt;p&gt;
BFO are pleased to add &lt;a href=&#034;http://www.4point.com&#034;&gt;4Point&lt;/a&gt;, the world&#039;s largest Adobe consulting practice, to its enviable client base.&lt;/p&gt;
&lt;p&gt;A spokesman for 4Point said, &#034;We used (BFO&#039;s) PDF Library to meet our client&#039;s need for rich inter-document navigation. With (the) PDF Library we were able to stitch together flat PDFs, create a set of inter-document linking bookmarks, and hyperlink inter-documents via existing and built table of contents and index pages. We chose Big Faceless&#039; PDF Library because it is feature-rich and user-friendly—the API is very coherent and intuitive.&#034;&lt;/p&gt;
&lt;p&gt;For more information read the full &lt;a href=&#034;http://big.faceless.org/press.jsp#56&#034;&gt;press release&lt;/a&gt;
&lt;/p&gt;
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://big.faceless.org:80/blog/2008/07/31/1217517647014.html">
    <title>Converting PDF to TIFF, PNG and JPEG</title>
    <link>http://big.faceless.org:80/blog/2008/07/31/1217517647014.html</link>
    
      
        <description>
          &lt;p&gt;
We&#039;re asked some questions more than others at BFO, and one of the most common concerns conversion of a PDF to a bitmap image format - typically TIFF, but sometimes JPEG or another format. This process is called &#034;rasterization&#034; and while it&#039;s very easy to do with the &#034;extended plus viewer&#034; version of our &lt;a href=&#034;http://bfo.co.uk/products/pdf&#034;&gt;PDF Library&lt;/a&gt;, it&#039;s worth going over in more detail.
&lt;/p&gt;
&lt;h3&gt;Summary for the impatient&lt;/h3&gt;
&lt;p style=&#034;border:1px dotted gray; padding:1em; font-style:italic&#034;&gt;How fast your rasterization runs depends on the resolution of the output bitmap, the compression used and the complexity of the source document, in decreasing order of significance. For text, typically a 200dpi 1-bit TIFF image is the way to go. JPEG is the wrong answer.
&lt;/p&gt;&lt;p&gt;
In order to get small files and fast, acceptable results you need to decide three things: bit depth, format and resolution. File size is dependent on these factors, and speed is dependent on these factors and the contents of the page you&#039;re rasterizing: a page with large images in unusual ColorSpaces will slow things down, even if you&#039;re rendering to a thumbnail size output.
&lt;/p&gt;

&lt;h3&gt;1. Bit Depth&lt;/h3&gt;
&lt;p&gt;
This is the number of bits required to represent each pixel. Values typically range from 1 up to 8, then 24 and 32. 1bit gives you black and white only, with values up to 8bit giving up to 256 unique colors. 24bit is RGB and 32bit is CMYK (and you can add an optional alpha (transparency) channel to both of these for 32bit or 40bit images, although we won&#039;t cover that here). In Java, the bit-depth is determined by the &lt;a href=&#034;http://java.sun.com/j2se/1.4.2/docs/api/java/awt/image/ColorModel.html&#034; class=&#034;external&#034;&gt;java.awt.image.ColorModel&lt;/a&gt;.
&lt;/p&gt;

&lt;h3&gt;2. Format&lt;/h3&gt;
&lt;p&gt;
The format affects the compression used. Broadly your choices are:
&lt;/p&gt;
&lt;ul&gt;

&lt;li style=&#034;margin:1em 0&#034;&gt;&lt;b&gt;JPEG&lt;/b&gt; - a lossy format, designed for compression of photographs, it&#039;s typically 24bit RGB (8bit and 32bit are possible but poorly supported by Java). JPEG is bad choice for anything other than photographs as it adds noise to the image: Here&#039;s a JPEG conversion of a PDF containing text, and a blown-up version of the same image:
&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&#034;images/ConvertToBitmap/HelloUnicodeWorld.jpg&#034;/&gt;&lt;br/&gt;&lt;div class=&#034;caption&#034;&gt;Fig 1. JPEG Image (7.1KB)&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&#034;images/ConvertToBitmap/HelloUnicodeWorld-zoom.png&#034;/&gt;&lt;br/&gt;&lt;div class=&#034;caption&#034;&gt;Fig 2. Zoom of JPEG&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;li style=&#034;margin:2em 0&#034;&gt;&lt;b&gt;PNG&lt;/b&gt; - for text and lineart destined for the web, PNG is an excellent choice. Images can be saved as 24bit RGB or as indexed images of 8bit or less.
&lt;table&gt;
&lt;tr&gt;&lt;td&gt;&lt;img src=&#034;images/ConvertToBitmap/HelloUnicodeWorld-24.png&#034;/&gt;&lt;div class=&#034;caption&#034;&gt;Fig 3. 24bit PNG (7.5KB)&lt;/div&gt;&lt;/td&gt;&lt;td&gt;24bit PNG is the best choice for lossless reproduction of RGB content, but the file sizes can be large.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;img src=&#034;images/ConvertToBitmap/HelloUnicodeWorld-8.png&#034;/&gt;&lt;div class=&#034;caption&#034;&gt;Fig 4. 8bit PNG (4.5KB)&lt;/div&gt;&lt;/td&gt;&lt;td&gt;8bit PNG can reproduce 256 colors and is very similar to GIF but with better compression. For grayscale images it&#039;s lossless.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;img src=&#034;images/ConvertToBitmap/HelloUnicodeWorld-4.png&#034;/&gt;&lt;div class=&#034;caption&#034;&gt;Fig 5. 4bit PNG (2.5KB)&lt;/div&gt;&lt;/td&gt;&lt;td&gt;4bit PNG can reproduce 16 colors, which is still plenty for a Grayscale image as you can see here. Other bit depths are possible too.&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;li style=&#034;margin:2em 0&#034;&gt;&lt;b&gt;TIFF&lt;/b&gt; - almost always the best choice unless you&#039;re viewing your images on the web, where it&#039;s poorly supported. TIFF is a container format and can contain multiple images with different compression types. The BFO PDF Library can create 1bit Images compressed with CCITT Group 4 compression, 24bit RGB with LZW compression (similar to PNG) or 32bit CMYK with LZW compression. These are the best options available in baseline TIFF for those bit-depths&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;3. Resolution&lt;/h3&gt;
&lt;p&gt;The number of dots-per-inch of the output image is arguably the &lt;b&gt;single most important factor&lt;/b&gt; that determines the size of the bitmap and the time required to create it. For 1bit images, 200dpi (fax resolution) is typical, and 300dpi gives good results when printed and is usually enough. Lower resolutions may be appropriate for grayscale or color documents, but while they may look OK on screen they&#039;ll look blocky when printed.&lt;/p&gt;

&lt;h3&gt;How to convert a PDF to a TIFF image&lt;/h3&gt;
&lt;p&gt;
If you chose TIFF for your image format, creating the TIFF file is easy:
&lt;pre&gt;
PDFParser parser = new PDFParser(pdf);
ColorModel cm = PDFParser.BLACKANDWHITE;
int dpi = 200;
OutputStream out = new FileOutputStream(&#034;out.tif&#034;);
parser.writeAsTIFF(out, cm, dpi);
out.close();
&lt;/pre&gt;
&lt;div class=&#034;caption&#034;&gt;Example 1. Creating a multi-page TIFF image&lt;/div&gt;
This will create a 200dpi 1bit CCITT TIFF image, which is pretty typical for black and white documents. A multi-page TIFF will be created if the PDF has multiple pages, but if you&#039;d prefer to create a single TIFF image for each page:
&lt;pre&gt;
PDFParser parser = new PDFParser(pdf);
ColorModel cm = PDFParser.BLACKANDWHITE;
int dpi = 200;
List copy = new ArrayList(pdf.getPages());
for (int i=0;i&amp;lt;pages.size();i++) {
    pdf.getPages().clear();
    pdf.getPages().add(copy.get(i));
    OutputStream out = new FileOutputStream(&#034;page&#034;+i+&#034;.tif&#034;);
    parser.writeAsTIFF(out, cm, dpi);
    out.close();
}
&lt;/pre&gt;
&lt;div class=&#034;caption&#034;&gt;Example 2. Creating single-page TIFF images&lt;/div&gt;
&lt;p&gt;The ColorModel determines the type of image created - the &lt;a href=&#034;http://big.faceless.org/products/pdf/docs/api/org/faceless/pdf2/PDFParser.html&#034;&gt;PDFParser&lt;/a&gt; class has models for RGB, CMYK and  two ways of creating a 1bit image: BLACKANDWHITE or getBlackAndWhiteColorModel(). Which of these last two is fastest is &lt;i&gt;theoretically&lt;/i&gt; dependent on the JVM and operating system:

&lt;table style=&#034;font-size:smaller; width:100%; border:1px solid gray&#034;&gt;
&lt;tr style=&#034;font-weight:bold;background:#EEE&#034;&gt;
&lt;th&gt;Environment&lt;/th&gt;&lt;th&gt;BLACKANDWHITE&lt;/th&gt;&lt;th&gt;getBlackAndWhiteColorModel&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;OS X/Apple Java 1.5&lt;/td&gt;&lt;td&gt;10s&lt;/td&gt;&lt;td&gt;25s&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;OS X/Apple Java 1.6&lt;/td&gt;&lt;td&gt;10s&lt;/td&gt;&lt;td&gt;24s&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Linux/Sun Java 1.5&lt;/td&gt;&lt;td&gt;5s&lt;/td&gt;&lt;td&gt;25s&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Linux/Sun Java 1.6&lt;/td&gt;&lt;td&gt;5s&lt;/td&gt;&lt;td&gt;20s&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Windows/Sun Java 1.4&lt;/td&gt;&lt;td&gt;6s&lt;/td&gt;&lt;td&gt;27s&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Windows/Sun Java 1.5&lt;/td&gt;&lt;td&gt;6s&lt;/td&gt;&lt;td&gt;24s&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Windows/Sun Java 1.6&lt;/td&gt;&lt;td&gt;5s&lt;/td&gt;&lt;td&gt;21s&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;div class=&#034;caption&#034;&gt;Table 1. Time taken for conversion of 24 pages to TIFF at 200dpi on 2Ghz machine&lt;/div&gt;
&lt;p&gt;I say &#034;theoretically&#034; because the above table looks pretty clear cut! I&#039;m convinced we got different results last time we benchmarked this. Do check which is fastest on your system yourself.&lt;/p&gt;


&lt;h3&gt;How to create a PNG or JPEG image?&lt;/h3&gt;
If you want to create a bitmap other than a TIFF, you need to use the &lt;a href=&#034;http://java.sun.com/j2se/1.4.2/docs/api/javax/imageio/package-summary.html&#034; class=&#034;external&#034;&gt;javax.imageio&lt;/a&gt; package added in Java 1.4 (there other approaches, but this is the standard one). Broadly it goes as follows:
&lt;pre&gt;
PDFParser parser = new PDFParser(pdf);
ColorModel cm = PDFParser.RGB;
int dpi = 200;
for (int i=0;i&amp;lt;pdf.getNumberOfPages();i++) {
    PagePainter painter = parser.getPagePainter(i);
    BufferedImage image = painter.getImage(dpi, cm);
    ImageIO.write(image, &#034;PNG&#034;, new File(&#034;page&#034;+i+&#034;.png&#034;));
}
&lt;/pre&gt;
&lt;div class=&#034;caption&#034;&gt;Example 3. Creating PNG images for each page&lt;/div&gt;
&lt;p&gt;
Choosing the colormodel will determine what sort of output you get. The above example will create a 24bit PNG image, but if you wanted to create the image as an 8bit or 4bit grayscale PNG:
&lt;/p&gt;
&lt;pre class=&#034;example&#034;&gt;
// 8-bit grayscale index
byte[] v = new byte[256];
for (int i=0;i&amp;lt;256;i++) v[i] = (byte)i;
ColorModel cm = new IndexColorModel(8, 256, v, v, v);

// 4-bit grayscale index
byte[] v = new byte[16];
for (int i=0;i&amp;lt;16;i++) v[i] = (byte)Math.max(255, i&amp;lt;&amp;lt;4);
ColorModel cm = new IndexColorModel(4, 16, v, v, v);
&lt;/pre&gt;
&lt;div class=&#034;caption&#034;&gt;Example 4. ColorModels to create index PNG images&lt;/div&gt;
&lt;p&gt;
You can use the same approach as above but specify &#034;JPEG&#034; as the format to &lt;code&gt;ImageIO.write&lt;/code&gt; to create JPEG images, and other formats are possible too. If you want to use an indexed PNG image that&#039;s not grayscale you can either choose the colors yourself in advance, or you can &#034;quantize&#034; the image down from 24bit to 8bit or less. This requires an external package such as the one supplied by &lt;a href=&#034;http://www.gif4j.com/java-color-quantizer.htm&#034;&gt;GIF4J&lt;/a&gt;.&lt;/p&gt;



        </description>
      
      
    
  </item>
  
  <item rdf:about="http://big.faceless.org:80/blog/2008/07/17/1216306371230.html">
    <title>Linearized PDF</title>
    <link>http://big.faceless.org:80/blog/2008/07/17/1216306371230.html</link>
    
      
        <description>
          &lt;p&gt;
The 2.10.3 release of the &lt;a href=&#034;/products/pdf&#034;&gt;PDF library&lt;/a&gt; adds support for writing &#034;Linearized&#034; PDF documents, sometimes called &#034;Web Optimized&#034; or &#034;Fast Web View&#034; enabled. This feature has been a part of the PDF specification since Acrobat 3.0, but it&#039;s poorly understood even by developers.
&lt;/p&gt;&lt;p&gt;
The idea behind linearization is faster display of PDF documents downloaded from the web. It does this by arranging the document structure in a specific way, and adding &#034;hints tables&#034; which specify the position in the file of certain objects. 
&lt;/p&gt;&lt;p&gt;
A linearization-aware PDF viewer requests the PDF from the webserver normally, but if it finds it&#039;s linearized halts the download after receiving the hints table and first page. Navigating to a different page sends a request for just that section of the document to the webserver, by means of an HTTP &lt;a class=&#034;external&#034; href=&#034;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.7&#034;&gt;Partial Content&lt;/a&gt; request - effectively performing random access on the file over the web.
&lt;/p&gt;&lt;p&gt;
Already this throws up a few facts:
&lt;/p&gt;&lt;ul class=&#034;bulletpoint&#034;&gt;
&lt;li&gt;&lt;h3&gt;The PDF must be downloaded from a webserver for viewing&lt;/h3&gt;This means using the Acrobat plugin in your web-browser: if you right-click the document and &#034;Save As&#034; for opening later, the PDF is treated normally.&lt;/li&gt;
&lt;li&gt;&lt;h3&gt;Multiple requests will be made for the same URL&lt;/h3&gt;Generating a linearized PDF on the fly and returning it directly won&#039;t work - the PDF has to be saved (usually to the filesystem) and served from there (perhaps by means of a &lt;a class=&#034;external&#034; href=&#034;http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3&#034;&gt;302&lt;/a&gt; redirect). The web-server must set the &#034;Content-Length&#034; header and also set &#034;Accept-Ranges: bytes&#034;: Apache does this, Tomcat currently doesn&#039;t - if you&#039;re having problems then check your webserver is returning the correct headers.&lt;/li&gt;
&lt;li&gt;&lt;h3&gt;The more pages you have, the more useful linearization is&lt;/h3&gt;For a single page PDF Acrobat ignores the linearization and downloads the PDF normally. If your PDF is two pages with the first one consisting of a large graphic and the second one mostly of text the benefits will be pretty marginal, but for a 10,000 page PDF the impact of linearization can be huge.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;
Another key point about linearization is it won&#039;t work if the document has been altered - so loading a linearized PDF, modifying a form field then saving it will remove the linearization.  Of course you can re-linearize the PDF again when you save it: the one time this won&#039;t work is if the original PDF is digitally signed, which gives us our final key point.
&lt;/p&gt;&lt;ul class=&#034;bulletpoint&#034;&gt;
&lt;li&gt;&lt;h3&gt;Modifying a linearized, digitally signed PDF removes linearization&lt;/h3&gt;If digital signatures are part of your workflow, make sure they&#039;re applied last, just before the PDF is made available for download. PDFs with more than one digital signature cannot be linearized.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;
So now you&#039;ve decided to linearize your PDF documents, how do you do it? In Acrobat when you &#034;Save As&#034; they&#039;re linearized by default - with our &lt;a href=&#034;/products/pdf&#034;&gt;PDF Library&lt;/a&gt; it&#039;s as simple as applying the correect &lt;code&gt;OutputProfile&lt;/code&gt; before saving:
&lt;/p&gt;
&lt;pre&gt;
PDF pdf = new PDF(new PDFReader(new File(&#034;in.pdf&#034;)));
OutputProfile p = new OutputProfile(OutputProfile.Default);
p.setRequired(OutputProfile.Feature.Linearized);
pdf.setOutputProfile(p);
pdf.render(new FileOutputStream(&#034;out.pdf&#034;));
&lt;/pre&gt;
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://big.faceless.org:80/blog/2008/07/15/1216141851388.html">
    <title>Big Faceless releases PDF Library 2.10.3</title>
    <link>http://big.faceless.org:80/blog/2008/07/15/1216141851388.html</link>
    
      
        <description>
          &lt;p&gt;
BFO have released a major update to their PDF Library. The 2.10.3 release has a number of significant improvements across the board: for the first time the PDF library can now write Linearized, or &#034;web-optimized&#034; PDF&#039;s, which are optimized for faster display in a web browser. Text extraction has been rewritten and is now significantly faster and more accurate. A bug causing higher than necessary memory use with the PDFReader has been squashed, and there are a number of speed and stability improvements. The Swing PDF Viewer has some very significant stability improvements, and now includes the ability to search and select text from a PDF.
&lt;/p&gt;&lt;p&gt;
The new release is recommended for all our customers, and is available for download now at &lt;a href=&#034;/&#034;&gt;http://bfo.co.uk&lt;/a&gt;. See the &lt;a href=&#034;/viewtext.jsp?url=products/pdf/docs/CHANGELOG.txt&amp;amp;title=PDF%20Library%20Change%20Log&#034;&gt;PDF Library Changelog&lt;/a&gt; for more details.
&lt;/p&gt;
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://big.faceless.org:80/blog/2008/07/07/1215423120000.html">
    <title>The BFO Blog arrives</title>
    <link>http://big.faceless.org:80/blog/2008/07/07/1215423120000.html</link>
    
      
        <description>
          &lt;p&gt;
Hello and welcome to the latest section of BFO&#039;s website, the &#034;BFO Blog&#034;. We&#039;ll be using this section to disseminate useful bits of information that we think our customers might want to hear, but that don&#039;t really fit anywhere else.
&lt;/p&gt;
&lt;p&gt;
The PDF specification runs to 1300 pages, and with the recent release of Acrobat 9.0 that&#039;s about to increase still further. Over the coming months we&#039;ll try to sift some gems from this rubble, as well as offering optimization tips, tricks, hacks and ideas on squeezing the most out of both our products and Java. Stay tuned.
&lt;/p&gt;
        </description>
      
      
    
  </item>
  

</rdf:RDF>
