1 29 30 package com.caucho.quercus.lib.pdf; 31 32 import com.caucho.util.L10N; 33 34 import java.io.IOException ; 35 import java.util.ArrayList ; 36 import java.util.logging.Logger ; 37 38 41 public class PDFPage { 42 private static final Logger log 43 = Logger.getLogger(PDFStream.class.getName()); 44 private static final L10N L = new L10N(PDFStream.class); 45 46 private int _parent; 47 private int _id; 48 49 private PDFStream _stream; 50 51 private double _width; 52 private double _height; 53 54 private ArrayList <String > _resources = new ArrayList <String >(); 55 56 PDFPage(PDFWriter out, int parent, double width, double height) 57 { 58 _parent = parent; 59 _id = out.allocateId(1); 60 _width = width; 61 _height = height; 62 _stream = new PDFStream(out.allocateId(1)); 63 } 64 65 68 public int getId() 69 { 70 return _id; 71 } 72 73 76 public PDFStream getStream() 77 { 78 return _stream; 79 } 80 81 void addResource(String resource) 82 { 83 if (! _resources.contains(resource)) 84 _resources.add(resource); 85 } 86 87 void write(PDFWriter out) 88 throws IOException 89 { 90 out.beginObject(_id); 91 out.println(" << /Type /Page"); 92 out.println(" /Parent " + _parent + " 0 R"); 93 out.println(" /MediaBox [0 0 " + _width + " " + _height + "]"); 94 out.println(" /Contents " + _stream.getId() + " 0 R"); 95 out.println(" /Resources <<"); 96 97 for (int i = 0; i < _resources.size(); i++) { 98 out.println(" " + _resources.get(i)); 99 } 100 101 out.println(" >>"); 102 out.println(" >>"); 103 out.endObject(); 104 105 _stream.write(out); 106 } 107 } 108 | Popular Tags |