Mark Stephens has been working with Java and PDF since 1999 and has diversified into HTML5, SVG and JavaFX.

He also enjoys speaking at conferences and has been a Speaker at user groups, Business of Software, Seybold and JavaOne conferences. He has a very dry sense of humor and an MA in Medieval History for which he has not yet found a practical use.

Author Archives: Mark Stephens

What is PDF pagesize?

Page size can cause some confusion with PDFs because there are several possible values. All PDF files have a MediaBox which defines the size of the PDF in units. Values 0,0,595,842 (listed in the file as an Array [0 0 595 842]) are the normal values for an A4 portrait page, although they can also…

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). params = new; FileOutputStream os = new FileOutputStream(outputDir + imageName+”.tif”);“encode”,…

Read More