PDF to image quality

The PDF file format was designed as much as possible to be Vector graphics. The problem with bitmaps and pixels is that pixels can only be on or off. While you can use some clever tricks such as anti-aliasing and hinting to smooth lines, you can’t draw fractions of a pixel. If a line is…

Read More

JButton backgrounds

We use a lot of JButtons in our Java PDF viewer and thought that the following observations might be of help to other Java developers. When you create a JButton it can be transparent (no background) and you can see through them or have a background color. This is done using the method setOpaque(boolean flag)…

Read More

Java Printing page size problem

Java has a very flexible printing system called JPS which makes printing very easy. Any JComponent can be made to print its contents by adding a print method public int print(Graphics graphics, PageFormat pf, int page) throws PrinterException {} When Java needs to print, it calls this method and whatever you paint onto the graphics…

Read More

Java Memory leaks with FileChannel

It is a myth that Java has no ‘memory leaks’. It is certainly much better than developing in C and many of the gotchas do not exist in Java. But there are still potential memory issues in Java. For example, we have been looking at using FileChannel. This allows the developer to have only part…

Read More

Saving Java images as Tifs wth JAI

Java makes it very easy to create images as BufferedImages which¬† can then be saved out in standard image file formats. Here is the code to save an image as a Tif image using the JAI image (a free library from Sun). com.sun.media.jai.codec.TIFFEncodeParam params = new com.sun.media.jai.codec.TIFFEncodeParam(); FileOutputStream os = new FileOutputStream(outputDir + imageName+”.tif”); javax.media.jai.JAI.create(“encode”,…

Read More