» Archive for the 'tutorial' Category

PdftoImage-Convert PDF to Image by using PdfRenderer library

Wednesday, January 30th, 2008 by rubypdf

Bases on PDF Renderer library, we can easily develop many useful tools. Here is a example I wrote today, the aim is converting every pages of a pdf to images (png, if you need other format, you can use JAI).

import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
 
import javax.imageio.ImageIO;
 
import com.sun.pdfview.PDFFile;
import com.sun.pdfview.PDFPage;
 
 
public class Pdf2Image {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		if(args.length!=2)
		{
			System.err.println("Usage:Pdf2Image pdf imageFolder");
			return;
		}
		File file = new File(args[0]);
		RandomAccessFile raf;
		try {
			raf = new RandomAccessFile(file, "r");
 
			FileChannel channel = raf.getChannel();
			ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
			PDFFile pdffile = new PDFFile(buf);
			// draw the first page to an image
			int num=pdffile.getNumPages();
			for(int i=0;i<num;i++)
			{
				PDFPage page = pdffile.getPage(i);
 
				//get the width and height for the doc at the default zoom				
				int width=(int)page.getBBox().getWidth();
				int height=(int)page.getBBox().getHeight();				
 
				Rectangle rect = new Rectangle(0,0,width,height);
				int rotation=page.getRotation();
				Rectangle rect1=rect;
				if(rotation==90 || rotation==270)
					rect1=new Rectangle(0,0,rect.height,rect.width);
 
				//generate the image
				BufferedImage img = (BufferedImage)page.getImage(
							rect.width, rect.height, //width & height
							rect1, // clip rect
							null, // null for the ImageObserver
							true, // fill background with white
							true  // block until drawing is done
					);
 
				ImageIO.write(img, "png", new File(args[1]+i+".png"));
			}
		} 
		catch (FileNotFoundException e1) {
			System.err.println(e1.getLocalizedMessage());
		} catch (IOException e) {
			System.err.println(e.getLocalizedMessage());
		}
	}
}

Source Code of PDF2Image

How to Make Adobe Reader Remember Your Page

Wednesday, January 16th, 2008 by rubypdf

Adobe reader 8 supports “Restore last view settings when reopening documents”, so you can easily remember the page number that you read last time(as well as the zoom and pan settings). But by default, it does not enable the feature, so need we do some configure, the steps are as follow,
Click Edit > Preferences, choose Documents, and then check the box marked, “Restore last view settings when reopening documents.
Free free to have a look the screen shots.

bookmark_1.jpg bookmark_2.jpg

That’s it! Sometimes the best hacks are the simplest ones.

If your Adobe Reader version is lower than 8.0, please try this javascript plugin,

Download bookmark_page.js-1.0.zip. Unzip it, and then copy it into your Acrobat or Reader JavaScripts directory. Restart Acrobat/Reader, and bookmark_page.js will add new items to your View menu(from screen shot, you can find there are 4 menus under rotate view menu). bookmark_3.jpg

using nup_pdf to convert PDF to booklet

Monday, January 14th, 2008 by rubypdf

from planetpdf forum, some body asked a question about ” Print PDf like book”

Suppose i have 12 pages in my pdf, I would like to print pdf on front and back sides (with 2 pages on front and 2 pages on back):
Here is the result I would like to have :
Front page 1 : 12p-1p
Back page 1 : 2p-11p
Front page 2 : 10p-3p
Back page 2 : 4p-9p
Front page 3 : 8p-5p
Back page 3 : 6p-7p

So I think maybe nup_pdf can do this job, after tested, we can do it in this way
nup_pdf in.pdf out.pdf 2 -k 1

reference:
how to make N-up PDF with free software
http://forum.planetpdf.com/webboard/wbpx.dll/read?163955,7