/** * Moves the field keys from <CODE>from</CODE> to <CODE>to</CODE>. The moved keys * are removed from <CODE>from</CODE>. * @param from the source * @param to the destination. It may be <CODE>null</CODE> */ public static void moveFields(PdfDictionary from, PdfDictionary to) { for (Iterator<PdfName> i = from.getKeys().iterator(); i.hasNext();) { PdfName key = i.next(); if (fieldKeys.containsKey(key)) { if (to != null) to.put(key, from.get(key)); i.remove(); } } } }
/** * Moves the field keys from <CODE>from</CODE> to <CODE>to</CODE>. The moved keys * are removed from <CODE>from</CODE>. * @param from the source * @param to the destination. It may be <CODE>null</CODE> */ public static void moveFields(PdfDictionary from, PdfDictionary to) { for (Iterator<PdfName> i = from.getKeys().iterator(); i.hasNext();) { PdfName key = i.next(); if (fieldKeys.containsKey(key)) { if (to != null) to.put(key, from.get(key)); i.remove(); } } } }
/** * Visualizes a PdfDictionary object. * @param dictionary a com.itextpdf.text.pdf.PdfDictionary object */ public void listDict(PdfDictionary dictionary) { out.println("<<"); PdfObject value; for (PdfName key: dictionary.getKeys()) { value = dictionary.get(key); out.print(key.toString()); out.print(' '); listAnyObject(value); } out.println(">>"); }
/** * Visualizes a PdfDictionary object. * @param dictionary a com.itextpdf.text.pdf.PdfDictionary object */ public void listDict(PdfDictionary dictionary) { out.println("<<"); PdfObject value; for (PdfName key: dictionary.getKeys()) { value = dictionary.get(key); out.print(key.toString()); out.print(' '); listAnyObject(value); } out.println(">>"); }
if (xobjects == null) return "No XObjects"; for (PdfName entryName : xobjects.getKeys()) { PdfStream xobjectStream = xobjects.getAsStream(entryName);
private void serDic(PdfDictionary dic, int level, ByteBuffer bb, HashMap<RefKey, Integer> serialized) throws IOException { bb.append("$D"); if (level <= 0) return; Object[] keys = dic.getKeys().toArray(); Arrays.sort(keys); for (int k = 0; k < keys.length; ++k) { if(keys[k].equals(PdfName.P) &&(dic.get((PdfName)keys[k]).isIndirect() || dic.get((PdfName)keys[k]).isDictionary())) // ignore recursive call continue; serObject((PdfObject) keys[k], level, bb, serialized); serObject(dic.get((PdfName) keys[k]), level, bb, serialized); } }
private void serDic(PdfDictionary dic, int level, ByteBuffer bb, HashMap<RefKey, Integer> serialized) throws IOException { bb.append("$D"); if (level <= 0) return; Object[] keys = dic.getKeys().toArray(); Arrays.sort(keys); for (int k = 0; k < keys.length; ++k) { if(keys[k].equals(PdfName.P) &&(dic.get((PdfName)keys[k]).isIndirect() || dic.get((PdfName)keys[k]).isDictionary())) // ignore recursive call continue; serObject((PdfObject) keys[k], level, bb, serialized); serObject(dic.get((PdfName) keys[k]), level, bb, serialized); } }
/** * Add PDF meta values to the target PDF document. */ private void addPdfMetaValuesToPdfDocument( ITextRenderer renderer ) { Iterator pdfNameIter = this.pdfInfoValues.keySet().iterator(); while (pdfNameIter.hasNext()) { PdfName pdfName = (PdfName) pdfNameIter.next(); PdfString pdfString = (PdfString) pdfInfoValues.get( pdfName ); XRLog.render(Level.FINEST, "pdfName=" + pdfName + ", pdfString=" + pdfString ); renderer.getOutputDevice().getWriter().getInfo().put( pdfName, pdfString ); } if ( XRLog.isLoggingEnabled() ) { XRLog.render(Level.FINEST, "added " + renderer.getOutputDevice().getWriter().getInfo().getKeys() ); } }
private PdfObject cleverPdfDictionaryClone(PdfDictionary dict) { PdfDictionary newDict; if (dict.isStream()) { newDict = new PdfStream(emptyByteArray); newDict.remove(PdfName.LENGTH); } else newDict = new PdfDictionary(); for (PdfName key : dict.getKeys()) if (keysForCheck.contains(key)) newDict.put(key, dict.get(key)); return newDict; }
protected static PdfDictionary duplicatePdfDictionary(final PdfDictionary original, PdfDictionary copy, final PdfReader newReader) { if (copy == null) copy = new PdfDictionary(original.size()); for (Object element : original.getKeys()) { PdfName key = (PdfName)element; copy.put(key, duplicatePdfObject(original.get(key), newReader)); } return copy; }
/** Creates a new instance of DocumentFont */ DocumentFont(PRIndirectReference refFont, PdfDictionary drEncoding) { this.refFont = refFont; font = (PdfDictionary)PdfReader.getPdfObject(refFont); if (font.get(PdfName.ENCODING) == null && drEncoding != null) { for (PdfName key : drEncoding.getKeys()) { font.put(PdfName.ENCODING, drEncoding.get(key)); } } init(); }
/** Creates a new instance of DocumentFont */ DocumentFont(PRIndirectReference refFont, PdfDictionary drEncoding) { this.refFont = refFont; font = (PdfDictionary)PdfReader.getPdfObject(refFont); if (font.get(PdfName.ENCODING) == null && drEncoding != null) { for (PdfName key : drEncoding.getKeys()) { font.put(PdfName.ENCODING, drEncoding.get(key)); } } init(); }
protected static PdfDictionary duplicatePdfDictionary(final PdfDictionary original, PdfDictionary copy, final PdfReader newReader) { if (copy == null) copy = new PdfDictionary(original.size()); for (Object element : original.getKeys()) { PdfName key = (PdfName)element; copy.put(key, duplicatePdfObject(original.get(key), newReader)); } return copy; }
void createWidgets(ArrayList<Object> list, AcroFields.Item item) { for (int k = 0; k < item.size(); ++k) { list.add(item.getPage(k)); PdfDictionary merged = item.getMerged(k); PdfObject dr = merged.get(PdfName.DR); if (dr != null) PdfFormField.mergeResources(resources, (PdfDictionary)PdfReader.getPdfObject(dr)); PdfDictionary widget = new PdfDictionary(); for (Object element : merged.getKeys()) { PdfName key = (PdfName)element; if (widgetKeys.containsKey(key)) widget.put(key, merged.get(key)); } widget.put(iTextTag, new PdfNumber(item.getTabOrder(k).intValue() + 1)); list.add(widget); } }
private void createWidgets(ArrayList<Object> list, AcroFields.Item item) { for (int k = 0; k < item.size(); ++k) { list.add(item.getPage(k)); PdfDictionary merged = item.getMerged(k); PdfObject dr = merged.get(PdfName.DR); if (dr != null) PdfFormField.mergeResources(resources, (PdfDictionary)PdfReader.getPdfObject(dr)); PdfDictionary widget = new PdfDictionary(); for (Object element : merged.getKeys()) { PdfName key = (PdfName)element; if (widgetKeys.contains(key)) widget.put(key, merged.get(key)); } widget.put(iTextTag, new PdfNumber(item.getTabOrder(k).intValue() + 1)); list.add(widget); } }
private void createWidgets(ArrayList<Object> list, AcroFields.Item item) { for (int k = 0; k < item.size(); ++k) { list.add(item.getPage(k)); PdfDictionary merged = item.getMerged(k); PdfObject dr = merged.get(PdfName.DR); if (dr != null) PdfFormField.mergeResources(resources, (PdfDictionary)PdfReader.getPdfObject(dr)); PdfDictionary widget = new PdfDictionary(); for (Object element : merged.getKeys()) { PdfName key = (PdfName)element; if (widgetKeys.contains(key)) widget.put(key, merged.get(key)); } widget.put(iTextTag, new PdfNumber(item.getTabOrder(k).intValue() + 1)); list.add(widget); } }
void createWidgets(ArrayList<Object> list, AcroFields.Item item) { for (int k = 0; k < item.size(); ++k) { list.add(item.getPage(k)); PdfDictionary merged = item.getMerged(k); PdfObject dr = merged.get(PdfName.DR); if (dr != null) PdfFormField.mergeResources(resources, (PdfDictionary)PdfReader.getPdfObject(dr)); PdfDictionary widget = new PdfDictionary(); for (Object element : merged.getKeys()) { PdfName key = (PdfName)element; if (widgetKeys.containsKey(key)) widget.put(key, merged.get(key)); } widget.put(iTextTag, new PdfNumber(item.getTabOrder(k).intValue() + 1)); list.add(widget); } }
/** * merge field attributes from two dictionaries * @param parent one dictionary * @param child the other dictionary * @return a merged dictionary */ protected PdfDictionary mergeAttrib(PdfDictionary parent, PdfDictionary child) { PdfDictionary targ = new PdfDictionary(); if (parent != null) targ.putAll(parent); for (Object element : child.getKeys()) { PdfName key = (PdfName) element; if (key.equals(PdfName.DR) || key.equals(PdfName.DA) || key.equals(PdfName.Q) || key.equals(PdfName.FF) || key.equals(PdfName.DV) || key.equals(PdfName.V) || key.equals(PdfName.FT) || key.equals(PdfName.NM) || key.equals(PdfName.F)) { targ.put(key,child.get(key)); } } return targ; } /**
private PdfObject propagate(PdfObject obj) throws IOException { if (obj == null) { return new PdfNull(); } else if (obj.isArray()) { PdfArray a = (PdfArray)obj; for (int i = 0; i < a.size(); i++) { a.set(i, propagate(a.getPdfObject(i))); } return a; } else if (obj.isDictionary() || obj.isStream()) { PdfDictionary d = (PdfDictionary)obj; for (PdfName key : d.getKeys()) { d.put(key, propagate(d.get(key))); } return d; } else if (obj.isIndirect()) { obj = PdfReader.getPdfObject(obj); return addToBody(propagate(obj)).getIndirectReference(); } else return obj; }
private PdfObject propagate(PdfObject obj) throws IOException { if (obj == null) { return new PdfNull(); } else if (obj.isArray()) { PdfArray a = (PdfArray)obj; for (int i = 0; i < a.size(); i++) { a.set(i, propagate(a.getPdfObject(i))); } return a; } else if (obj.isDictionary() || obj.isStream()) { PdfDictionary d = (PdfDictionary)obj; for (PdfName key : d.getKeys()) { d.put(key, propagate(d.get(key))); } return d; } else if (obj.isIndirect()) { obj = PdfReader.getPdfObject(obj); return addToBody(propagate(obj)).getIndirectReference(); } else return obj; }