1 26 27 package it.stefanochizzolini.clown.documents.contents.xObjects; 28 29 import it.stefanochizzolini.clown.documents.Document; 30 import it.stefanochizzolini.clown.objects.PdfDirectObject; 31 import it.stefanochizzolini.clown.objects.PdfName; 32 import it.stefanochizzolini.clown.objects.PdfObjectWrapper; 33 import it.stefanochizzolini.clown.objects.PdfReference; 34 import it.stefanochizzolini.clown.objects.PdfStream; 35 36 39 public abstract class XObject 40 extends PdfObjectWrapper<PdfStream> 41 { 42 51 public static XObject wrap( 52 PdfReference reference 53 ) 54 { 55 58 if(reference == null) 59 return null; 60 61 PdfName subtype = (PdfName)((PdfStream)reference.getDataObject()).getHeader().get(PdfName.Subtype); 62 if(subtype.equals(PdfName.Form)) 63 return new FormXObject(reference); 64 else if(subtype.equals(PdfName.Image)) 65 return new ImageXObject(reference); 66 else 67 return null; 68 } 69 73 78 protected XObject( 79 Document context 80 ) 81 { 82 this( 83 context, 84 new PdfStream() 85 ); 86 } 87 88 91 protected XObject( 92 Document context, 93 PdfStream baseDataObject 94 ) 95 { 96 super( 97 context.getFile(), 98 baseDataObject 99 ); 100 101 baseDataObject.getHeader().put(PdfName.Type,PdfName.XObject); 102 } 103 104 107 protected XObject( 108 PdfDirectObject baseObject 109 ) 110 { 111 super( 112 baseObject, 113 null ); 115 } 116 } | Popular Tags |