PDFSheet.java

00001 package edu.stanford.hci.r3.paper.sheets;
00002 
00003 import java.io.File;
00004 import java.io.FileInputStream;
00005 import java.io.FileNotFoundException;
00006 import java.io.IOException;
00007 
00008 import com.lowagie.text.Rectangle;
00009 import com.lowagie.text.pdf.PdfReader;
00010 
00011 import edu.stanford.hci.r3.paper.Sheet;
00012 import edu.stanford.hci.r3.render.SheetRenderer;
00013 import edu.stanford.hci.r3.render.sheets.PDFSheetRenderer;
00014 import edu.stanford.hci.r3.units.Points;
00015 import edu.stanford.hci.r3.util.DebugUtils;
00016 
00030 public class PDFSheet extends Sheet {
00031 
00032         private File file;
00033 
00034         private int pageNum;
00035 
00036         private PdfReader pdfReader;
00037 
00043         public PDFSheet(File pdfFile) {
00044                 this(pdfFile, 1);
00045         }
00046 
00052         public PDFSheet(File pdfFile, int pageNumber) {
00053                 file = pdfFile;
00054                 addConfigurationPath(pdfFile.getParentFile());
00055 
00056                 pageNum = pageNumber;
00057                 try {
00058                         pdfReader = new PdfReader(new FileInputStream(file));
00059                 } catch (FileNotFoundException e) {
00060                         e.printStackTrace();
00061                 } catch (IOException e) {
00062                         e.printStackTrace();
00063                 }
00064 
00065                 // PDF pages count from 1, not 0
00066                 final int numberOfPages = pdfReader.getNumberOfPages();
00067                 if (pageNum < 1) {
00068                         System.out.println("WARNING: pageNum: " + pageNum
00069                                         + " is an invalid page. Setting it to 1. (PDFSheet.java)");
00070                         pageNum = 1;
00071                 }
00072                 if (pageNum > numberOfPages) {
00073                         System.out.println("WARNING: pageNum: " + pageNum
00074                                         + " is an invalid page. Setting it to " + numberOfPages + ". (PDFSheet.java)");
00075                         pageNum = numberOfPages;
00076                 }
00077 
00078                 // get the size of page
00079                 final Rectangle pageSize = pdfReader.getPageSize(pageNum);
00080                 setSize(new Points(pageSize.width()), new Points(pageSize.height()));
00081 
00082                 // hmm... how should we handle rotations?
00083                 DebugUtils.println("The Rotation of the PDFSheet is: " + pdfReader.getPageRotation(pageNumber));
00084         }
00085 
00089         public SheetRenderer getRenderer() {
00090                 return new PDFSheetRenderer(this);
00091         }
00092 
00096         public PdfReader getReader() {
00097                 return pdfReader;
00098         }
00099 }

Generated on Sat Apr 14 18:21:36 2007 for R3 Paper Toolkit by  doxygen 1.4.7