Our latest 2.20 release of the PDF Library adds full support for the creation of PDF/UA compliant documents, and hopefully this article will shed a little light on what they are.
One of the main new features in release 2.18.2 of our PDF Library was support for "Long Term Validation" of signatures. The purpose of these isn't immediately clear - read on for details.
We detail the major new change in 2.18, the OutputProfiler class
BFO have just released a new update to their PDF Library, the first for a few months. Here we describe a few features that are in the new release in a bit more detail. Integrating Logging messages with the viewer Our logging framework is a thin wrapper around whichever of Log4J or java.util.logging is configured, which means it's essentially a functional interface. Lo...
Our major new release has been several months coming - here's why.
It's been 4 months since our last PDF API release, what does it have in store? Besides changes to the page list, there are two major new areas: PDF/A-2 and PDF/A-3 support has been added The Swing classes now support linearized loading New PDF/A revisions We're seeing more and more companies adopt ISO 19005, aka PDF/A, and we're pleased to have added support fo...
You released 2.14.1 of your PDF API yesterday, and today there's a 2.15. What are you people playing at? Read on, we'll explain.
There are many situations where a PDF has to be "rasterized" - the contents of each page turned into a bitmap image - such as when a PDF is being converted to PDF/A and the page contents cannot be repaired. This article shows how to do it efficiently.
We've put out our first PDF library in 5 months, and although there are a lot of small changes there are very few headline grabbers. Perhaps the most interesting is the ability to restrict operations in the viewer with permissions - here we go into that framework in a little more detail.
We've been getting a few emails asking about the new "pdf.js" viewer in Firefox, and why some of our documents don't render correctly in that viewer. Read on to find out why.
This challenge was too good to resist. We've neglected to make our cards PDF/A compliant, which you are welcome to interpret as a commentary on the impermanence of romantic love, or perhaps it would have just taken longer to do. Either way we hope you had a happy Hallmark day. The code is below, and if you want to generate your own cards for someone you love (or even someone you don't) you ca...
The "P" in PDF stands for "Portable", and PDF is now an ISO Specification. So you could be forgiven for being surprised when you learn about XFA. We're asked about it a lot so what follows is a bit of a FAQ. What is XFA XFA stands for "XML Forms Architecture", and it's been part of Acrobat since Acrobat 6. It's an XML syntax which defines the document (the whole document, not just the fo...
Yesterday we released our first PDF Library for a few months, version 2.12, so it's a good to give a bit of a summary of the changes
We've recently released version 2.11.25 - here's a quick summary of some of the features.
Acrobat added dynamically updated barcode fields in Acrobat 7, but they haven't been documented until now, in the upcoming PDF 2.0 specification. This article shows you how to use them to make data extraction from printed forms a lot easier.
A new feature in 2.11.25 of the PDF Library is the ability to capture handwritten signatures from an iPad, iPhone or Android tablet. Useful? Maybe not, but it is kinda neat as you can see in the video.
We've covered them before, but Applets - a technology launched in 1996 with Java 1.0 - just keep changing. What follows is the definitive, step-by-step guide to compiling our viewer as an Applet useful as of mid-2012.
Usually on this blog we cover details of things you can do with our PDF API, so it's a bit of a departure to cover something we can't. Read on to learn about Reader Extensions and the limitations they imply.
We've just released 2.11.24 of our PDF Library which has our latest round of bugfixes and improvements. Download it from the the usual location
How to use the new OpenType layout features in the PDF Library and Report Generator.
When working with Java APIs that use native code you can hit an OutOfMemory in the PermGen space due to weaknesses in Java's garbage collectors. Here's an ugly little hack that might help.
In the second part of our "extending the viewer" series, we show you how to go all the way - we create a new "Custom Stamp" feature, then show you how to compile it, bundle it with the Jar than prepare the Jar in the most efficient way for applet delivery.
The Report Generator has got a few new tricks in release 1.1.51. Graph Library integration, Flash, PDF sets and Xinclude - read on for a summary and some examples.
Not all digital signatures are created equal. Our PDF Library has been able to digitally sign documents for years, but digitally signing a file with a key that's trusted by Acrobat is a little trickier, and requires hardware. Here, we show you how to do it.
A quick tip completely unrelated to PDF or Graphs: How to create a new self-signed X.509 Certificate with Java.
Sometimes when you convert a PDF to TIFF, you're left with a lot of whitespace around the content of the page. This article shows an easy way to remove it.
The Report Generator is a layer on top of the PDF Library API which converts XML to PDF. The XML is much easier to work with, but there are always situations where you'll need the flexibility of the API. Here we show you how to do this, and we also present a neat and non-obvious technique for watermarking.
If you're deploying Java code as Applets, Pack 200 compression can reduce the size of your download by 70%. This article shows how to build digitally signed Jars with Pack 200 compression using Apache Ant. It can be applied to any code, not just BFO code.
Most people when they think of protecting a PDF, think of a password. However this isn't the only way to do it. Both Acrobat and our PDF viewer allow a PDF to be decrypted using a private key which is specific to a user. In this article we show you how to create a key, encrypt a document for that key and then decrypt it again.
The PDF Library supports a large number of barcodes, including QR-Code. This article shows some tricks you can do with these dense 2D barcodes.
We occasionally are asked how to print a PDF from a web browser without displaying a dialog. There isn't an easy answer to this, but you can get fairly close with our Viewer API.
The BFO PDF Library can create TIFF images from PDF using a number of compression algorithms, including Group 4. If for some reason you want to use Group 3 compression you'll need to use a third party library like JAI. This article shows you how.
The JPEG 2000 compression algorithm was designed in 2000 as a successor to the venerable JPEG algorithm, which dates back to 1992. It's designed to compress "continuous tone" images such as photographs, and supports both a lossy (like JPEG) and a lossless format. We covered a bit on image compression in a previous article. Adobe added support for JPEG 2000 compressed images in Acrobat 5.0, (calling it JPX compression), and it's becoming more and more common to find PDF Documents containing photographic images compressed with this algorithm.
Reading and writing PDF documents to and from the same disk file can have unexpected consequences. This article covers what to watch out for if you do this, and details a few ways to get around the problems it can cause, including the new features added in 2.11.2 for this problem.
BFO have released a new version of their Java PDF Library. Version 2.11.2 fixes an issue with IBM versions of Java that was introduced in the previous release - a change of obfuscator clashed with a bug in some releases of the JRE supplied with Websphere. There are fixes for Customers reading and writing PDFs to the same File, a memory leak in the Viewer has been fixed, and a number of bugs have...
We'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 "rasterization" and while it's very easy to do with the "extended plus viewer" version of our PDF Library, it's worth going over in more detail.
The 2.10.3 release of the PDF library adds support for writing "Linearized" PDF documents, sometimes called "Web Optimized" or "Fast Web View" enabled. This feature has been a part of the PDF specification since Acrobat 3.0, but it's poorly understood even by developers.
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 "web-optimized" PDF'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 ...
Hello and welcome to the latest section of BFO's website, the "BFO Blog". We'll be using this section to disseminate useful bits of information that we think our customers might want to hear, but that don't really fit anywhere else.