1 package it.stefanochizzolini.clown.samples; 2 3 import it.stefanochizzolini.clown.bytes.FileInputStream; 4 import it.stefanochizzolini.clown.objects.PdfArray; 5 import it.stefanochizzolini.clown.objects.PdfDictionary; 6 import it.stefanochizzolini.clown.objects.PdfIndirectObject; 7 import it.stefanochizzolini.clown.objects.PdfInteger; 8 import it.stefanochizzolini.clown.objects.PdfName; 9 import it.stefanochizzolini.clown.objects.PdfReference; 10 import it.stefanochizzolini.clown.documents.Document; 11 import it.stefanochizzolini.clown.files.File; 12 import it.stefanochizzolini.clown.tokens.FileFormatException; 13 14 import java.io.RandomAccessFile ; 15 16 22 public class PrimitiveSample 23 implements ISample 24 { 25 public void run( 26 PDFClownSampleLoader loader 27 ) 28 { 29 35 36 String filePath = loader.getPdfFileChoice("Please select a PDF file"); 38 39 File file; 41 try 42 { 43 file = new File( 45 new FileInputStream( 46 new RandomAccessFile (filePath,"r") 47 ) 48 ); 49 } 50 catch(FileFormatException e) 51 {throw new RuntimeException (filePath + " file has a bad file format.",e);} 52 catch(Exception e) 53 {throw new RuntimeException (filePath + " file access error.",e);} 54 55 Document document = file.getDocument(); 57 58 PdfDictionary action = new PdfDictionary(); 60 61 action.put(new PdfName("S"),new PdfName("GoTo")); 63 64 PdfArray destination = new PdfArray(); 66 67 action.put(new PdfName("D"),destination); 69 70 PdfReference pageReference = (PdfReference)document.getPages().get(1).getBaseObject(); 72 73 destination.add(pageReference); 75 76 destination.add(new PdfName("FitV")); 78 79 destination.add(new PdfInteger(-32768)); 81 82 PdfIndirectObject actionIndirect = file.getIndirectObjects().add(action); 84 85 document.getBaseDataObject().put(new PdfName("OpenAction"),actionIndirect.getReference()); 87 document.update(); 88 89 loader.serialize(file,this.getClass().getSimpleName()); 91 } 92 } | Popular Tags |