List of usage examples for com.lowagie.text.pdf PdfReader getCatalog
public PdfDictionary getCatalog()
From source file:org.kuali.coeus.propdev.impl.budget.subaward.PropDevPropDevBudgetSubAwardServiceImpl.java
License:Open Source License
/** * extracts attachments from PDF File/*from ww w. j ava 2s. c o m*/ */ @SuppressWarnings("unchecked") protected Map extractAttachments(PdfReader reader) throws IOException { Map fileMap = new HashMap(); PdfDictionary catalog = reader.getCatalog(); PdfDictionary names = (PdfDictionary) PdfReader.getPdfObject(catalog.get(PdfName.NAMES)); if (names != null) { PdfDictionary embFiles = (PdfDictionary) PdfReader .getPdfObject(names.get(new PdfName("EmbeddedFiles"))); if (embFiles != null) { HashMap embMap = PdfNameTree.readTree(embFiles); for (Iterator i = embMap.values().iterator(); i.hasNext();) { PdfDictionary filespec = (PdfDictionary) PdfReader.getPdfObject((PdfObject) i.next()); Object fileInfo[] = unpackFile(reader, filespec); if (fileMap.containsKey(fileInfo[0])) { throw new RuntimeException(DUPLICATE_FILE_NAMES); } fileMap.put(fileInfo[0], fileInfo[1]); } } } for (int k = 1; k <= reader.getNumberOfPages(); ++k) { PdfArray annots = (PdfArray) PdfReader.getPdfObject(reader.getPageN(k).get(PdfName.ANNOTS)); if (annots == null) { continue; } for (Iterator i = annots.getArrayList().listIterator(); i.hasNext();) { PdfDictionary annot = (PdfDictionary) PdfReader.getPdfObject((PdfObject) i.next()); PdfName subType = (PdfName) PdfReader.getPdfObject(annot.get(PdfName.SUBTYPE)); if (!PdfName.FILEATTACHMENT.equals(subType)) { continue; } PdfDictionary filespec = (PdfDictionary) PdfReader.getPdfObject(annot.get(PdfName.FS)); Object fileInfo[] = unpackFile(reader, filespec); if (fileMap.containsKey(fileInfo[0])) { throw new RuntimeException(DUPLICATE_FILE_NAMES); } fileMap.put(fileInfo[0], fileInfo[1]); } } return fileMap; }
From source file:org.kuali.coeus.propdev.impl.s2s.S2sUserAttachedFormServiceImpl.java
License:Open Source License
private Map extractAttachments(PdfReader reader) throws IOException { Map fileMap = new HashMap(); PdfDictionary catalog = reader.getCatalog(); PdfDictionary names = (PdfDictionary) PdfReader.getPdfObject(catalog.get(PdfName.NAMES)); if (names != null) { PdfDictionary embFiles = (PdfDictionary) PdfReader .getPdfObject(names.get(new PdfName("EmbeddedFiles"))); if (embFiles != null) { HashMap embMap = PdfNameTree.readTree(embFiles); for (Iterator i = embMap.values().iterator(); i.hasNext();) { PdfDictionary filespec = (PdfDictionary) PdfReader.getPdfObject((PdfObject) i.next()); Object[] fileInfo = unpackFile(filespec); if (!fileMap.containsKey(fileInfo[0])) { fileMap.put(fileInfo[0], fileInfo[1]); }//w w w. j ava 2 s. c om } } } for (int k = 1; k <= reader.getNumberOfPages(); ++k) { PdfArray annots = (PdfArray) PdfReader.getPdfObject(reader.getPageN(k).get(PdfName.ANNOTS)); if (annots == null) continue; for (Iterator i = annots.listIterator(); i.hasNext();) { PdfDictionary annot = (PdfDictionary) PdfReader.getPdfObject((PdfObject) i.next()); PdfName subType = (PdfName) PdfReader.getPdfObject(annot.get(PdfName.SUBTYPE)); if (!PdfName.FILEATTACHMENT.equals(subType)) continue; PdfDictionary filespec = (PdfDictionary) PdfReader.getPdfObject(annot.get(PdfName.FS)); Object[] fileInfo = unpackFile(filespec); if (fileMap.containsKey(fileInfo[0])) { throw new RuntimeException(DUPLICATE_FILE_NAMES); } fileMap.put(fileInfo[0], fileInfo[1]); } } return fileMap; }
From source file:org.kuali.kra.s2s.service.impl.S2SUserAttachedFormServiceImpl.java
License:Educational Community License
private Map extractAttachments(PdfReader reader) throws IOException { Map fileMap = new HashMap(); PdfDictionary catalog = reader.getCatalog(); PdfDictionary names = (PdfDictionary) PdfReader.getPdfObject(catalog.get(PdfName.NAMES)); if (names != null) { PdfDictionary embFiles = (PdfDictionary) PdfReader .getPdfObject(names.get(new PdfName("EmbeddedFiles"))); if (embFiles != null) { HashMap embMap = PdfNameTree.readTree(embFiles); for (Iterator i = embMap.values().iterator(); i.hasNext();) { PdfDictionary filespec = (PdfDictionary) PdfReader.getPdfObject((PdfObject) i.next()); Object[] fileInfo = unpackFile(reader, filespec); if (!fileMap.containsKey(fileInfo[0])) { fileMap.put(fileInfo[0], fileInfo[1]); }/* w ww .ja va 2s . c o m*/ } } } for (int k = 1; k <= reader.getNumberOfPages(); ++k) { PdfArray annots = (PdfArray) PdfReader.getPdfObject(reader.getPageN(k).get(PdfName.ANNOTS)); if (annots == null) continue; for (Iterator i = annots.listIterator(); i.hasNext();) { PdfDictionary annot = (PdfDictionary) PdfReader.getPdfObject((PdfObject) i.next()); PdfName subType = (PdfName) PdfReader.getPdfObject(annot.get(PdfName.SUBTYPE)); if (!PdfName.FILEATTACHMENT.equals(subType)) continue; PdfDictionary filespec = (PdfDictionary) PdfReader.getPdfObject(annot.get(PdfName.FS)); Object[] fileInfo = unpackFile(reader, filespec); if (fileMap.containsKey(fileInfo[0])) { throw new RuntimeException(DUPLICATE_FILE_NAMES); } fileMap.put(fileInfo[0], fileInfo[1]); } } return fileMap; }
From source file:org.opensignature.opensignpdf.PDFSigner.java
License:Open Source License
/** * /*from w w w . jav a 2 s . co m*/ * @param pdfFile * @return * @throws IOException * @throws DocumentException * @throws FileNotFoundException */ private PdfReader createPDFReader(File pdfFile) throws IOException, DocumentException, FileNotFoundException { logger.info("[createPDFReader.in]:: " + Arrays.asList(new Object[] { pdfFile })); PdfReader reader; if ("true".equals(openOfficeSelected)) { String fileName = pdfFile.getPath(); String tempFileName = fileName + ".temp"; PdfReader documentPDF = new PdfReader(fileName); PdfStamperOSP stamperTemp = new PdfStamperOSP(documentPDF, new FileOutputStream(tempFileName)); AcroFields af = stamperTemp.getAcroFields(); af.setGenerateAppearances(true); PdfDictionary acro = (PdfDictionary) PdfReader .getPdfObject(documentPDF.getCatalog().get(PdfName.ACROFORM)); acro.remove(PdfName.DR); HashMap fields = af.getFields(); String key; for (Iterator it = fields.keySet().iterator(); it.hasNext();) { key = (String) it.next(); int a = af.getFieldType(key); if (a == 4) { ArrayList widgets = af.getFieldItem(key).widgets; PdfDictionary widget = (PdfDictionary) widgets.get(0); widget.put(PdfName.FT, new PdfName("Sig")); widget.remove(PdfName.V); widget.remove(PdfName.DV); widget.remove(PdfName.TU); widget.remove(PdfName.FF); widget.remove(PdfName.DA); widget.remove(PdfName.DR); widget.remove(PdfName.AP); } } stamperTemp.close(); documentPDF.close(); reader = new PdfReader(pdfFile.getPath() + ".temp"); } else { reader = new PdfReader(pdfFile.getPath()); } logger.info("[createPDFReader.retorna]:: "); return reader; }
From source file:org.sejda.impl.itext.component.PdfUnpacker.java
License:Apache License
private Set<PdfDictionary> getEmbeddedFilesDictionaries(PdfReader reader) { Set<PdfDictionary> retSet = new NullSafeSet<PdfDictionary>(); PdfDictionary catalog = reader.getCatalog(); PdfDictionary names = (PdfDictionary) PdfReader.getPdfObject(catalog.get(PdfName.NAMES)); if (names != null) { PdfDictionary embFiles = (PdfDictionary) PdfReader.getPdfObject(names.get(PdfName.EMBEDDEDFILES)); if (embFiles != null) { @SuppressWarnings("unchecked") HashMap<String, PdfObject> embMap = PdfNameTree.readTree(embFiles); for (PdfObject value : embMap.values()) { retSet.add((PdfDictionary) PdfReader.getPdfObject(value)); }//www . ja v a 2 s. com } } return retSet; }
From source file:pdflicense.PdfLicenseManager.java
License:Open Source License
/** * Update the XMP info with the insertion of a CC licence * /*from w w w . ja v a 2 s. c om*/ * @param args input pdf file, output pdf file, xmp file */ public void mainTextual(String[] args) { if (args.length < 2) { usage(); System.exit(1); } else { op = args[0]; if (op.equals("show") || op.equals("showXMP") || op.equals("showToc")) { if (args.length != 2) { System.out.print("\n\nERROR: incorrect number of parameters"); usage(); System.exit(1); } fNameIn = args[1]; } else if (op.equals("put") || op.equals("putXMP") || op.equals("putforce")) { if (args.length != 4) { System.out.print("\n\nERROR: incorrect number of parameters"); usage(); System.exit(1); } fNameIn = args[1]; fNameOut = args[2]; licenseShortName = args[3]; } else { System.out.print("ERROR: operation not known (" + op + ")\n\n"); usage(); System.exit(1); } } try { PdfReader reader = new PdfReader(fNameIn); XmpManager xm = new XmpManager(); byte[] xmpdata = reader.getMetadata(); if (op.equals("showXMP") || op.equals("show")) { if (xmpdata == null) { System.out.print("No XMP Licensing info is present\n"); } else { if (op.equals("showXMP")) { String s = new String(xmpdata); System.out.print(s); } else if (op.equals("show")) { String s = new String(xmpdata); xm.parseXmp(s); //System.out.println(xm.getXmpString()); License currLic = xm.getLicenseInfo(); System.out.print("***************************\n"); System.out.print("XMP Licensing info:\n"); System.out.print("***************************\n"); System.out.print(currLic.toString()); System.out.print("\n"); } } } else if (op.equals("showToc")) { PdfDictionary cat = reader.getCatalog(); Set k = cat.getKeys(); Object[] arr = k.toArray(); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } //PdfObject p = cat.get(PdfName.METADATA); //System.out.println(p.getName()); //System.out.println("/Metadata type="+p.type()); //PRIndirectReference iref = (PRIndirectReference)p; //findAllObjects(reader, PdfReader.getPdfObject(obj), hits); /* HashMap map = reader.getInfo(); Set keys = map.keySet(); Object []arr = keys.toArray(); for (int i=0; i<arr.length; i++) { System.out.println(arr[i]); } */ } else if (op.equals("put")) { CCLicense lic = new CCLicense(licenseShortName); if (xmpdata == null) { xm.createLicense(lic); } else { String s = new String(xmpdata); xm.parseXmp(s); xm.updateLicense(lic); } String xmpString = xm.getXmpString(); FileOutputStream fos = new FileOutputStream(fNameOut); writeXmp(reader, fos, xmpString.getBytes()); } else if (op.equals("putforce")) { CCLicense lic = new CCLicense(licenseShortName); xm.createLicense(lic); String xmpString = xm.getXmpString(); FileOutputStream fos = new FileOutputStream(fNameOut); writeXmp(reader, fos, xmpString.getBytes()); } else if (op.equals("putXMP")) { File f = new File(licenseShortName); int length = (int) f.length(); FileInputStream fin = new FileInputStream(f); BufferedInputStream data = new BufferedInputStream(fin); byte[] xmp = new byte[length]; data.read(xmp, 0, length); fin.close(); FileOutputStream fos = new FileOutputStream(fNameOut); writeXmp(reader, fos, xmp); } } catch (DocumentException de) { System.err.println(de.getMessage()); } catch (IOException ioe) { System.err.println(ioe.getMessage()); } catch (LicenseException e) { System.err.println(e.getMessage()); } }
From source file:questions.forms.FillDynamicXfa.java
public static void main(String[] args) { try {/*from w w w . j a va2 s .c om*/ PdfReader reader = new PdfReader(RESOURCE_PDF); File file = new File(RESOURCE_DATA); byte[] data = new byte[(int) file.length()]; FileInputStream is = new FileInputStream(file); int offset = 0; int numRead = 0; int datalength = data.length; while (offset < datalength && (numRead = is.read(data, offset, datalength - offset)) >= 0) { offset += numRead; } PdfDictionary root = reader.getCatalog(); PdfDictionary acroform = root.getAsDict(PdfName.ACROFORM); PdfArray xfa = acroform.getAsArray(PdfName.XFA); for (int i = 0; i < xfa.size(); i += 2) { if ("datasets".equals(xfa.getAsString(i).toString())) { PRStream s = (PRStream) xfa.getAsStream(i + 1); s.setData(data); } } PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT)); stamper.close(); } catch (IOException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } }
From source file:questions.forms.GetTextFields.java
@SuppressWarnings("unchecked") public static void main(String[] args) { try {//from w ww .ja v a 2s .co m PrintStream out = new PrintStream(new File(RESULT)); PdfLister lister = new PdfLister(out); PdfReader reader = new PdfReader(RESOURCE); PdfDictionary root = reader.getCatalog(); PdfDictionary acroform = root.getAsDict(PdfName.ACROFORM); out.println("These are the form's font dictionaries:"); PdfDictionary fonts = acroform.getAsDict(PdfName.DR).getAsDict(PdfName.FONT); for (PdfName key : (Set<PdfName>) fonts.getKeys()) { lister.listDict((PdfDictionary) PdfReader.getPdfObject(fonts.get(key))); } out.println("--------------"); out.println("This is the default appearance for the complete form:"); lister.listAnyObject(PdfReader.getPdfObject(acroform.get(PdfName.DA))); out.println("--------------"); AcroFields form = reader.getAcroFields(); Map<String, Item> fields = form.getFields(); Item item; for (String name : fields.keySet()) { out.println(name); if (form.getFieldType(name) == AcroFields.FIELD_TYPE_TEXT) { item = form.getFieldItem(name); PdfDictionary dict = (PdfDictionary) item.getMerged(0); out.println("This is the field's font dictionary:"); fonts = dict.getAsDict(PdfName.DR).getAsDict(PdfName.FONT); for (PdfName key : (Set<PdfName>) fonts.getKeys()) { lister.listDict((PdfDictionary) PdfReader.getPdfObject(fonts.get(key))); } out.println("---"); out.println("This is the field's default appearance"); lister.listAnyObject(PdfReader.getPdfObject(dict.get(PdfName.DA))); } else { out.println("NOT A TEXT FIELD!"); } out.println("--------------"); } } catch (IOException e) { e.printStackTrace(); } }
From source file:questions.forms.ReadXfa.java
public static void main(String[] args) { try {/*www . j a va2s. c om*/ PdfReader reader = new PdfReader(RESOURCE); FileOutputStream os = new FileOutputStream(RESULT); PdfDictionary root = reader.getCatalog(); PdfDictionary acroform = root.getAsDict(PdfName.ACROFORM); PdfArray xfa = acroform.getAsArray(PdfName.XFA); for (int i = 0; i < xfa.size(); i += 2) { System.out.println("Reading: " + xfa.getAsString(i)); PRStream s = (PRStream) xfa.getAsStream(i + 1); os.write(PdfReader.getStreamBytes(s)); } os.flush(); os.close(); } catch (IOException e) { e.printStackTrace(); } }
From source file:questions.forms.RemoveXfa.java
@SuppressWarnings("unchecked") public static void main(String[] args) { try {//from w w w . j av a 2 s .co m PdfReader reader = new PdfReader(RESOURCE); PdfDictionary root = reader.getCatalog(); PdfDictionary acroform = root.getAsDict(PdfName.ACROFORM); acroform.remove(PdfName.XFA); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT)); AcroFields form = stamper.getAcroFields(); Map<String, Item> fields = form.getFields(); for (String field : fields.keySet()) { System.out.println(field); form.setField(field, "value"); } stamper.partialFormFlattening("topmostSubform[0].Page1[0].SN_NUMBER[0]"); stamper.setFormFlattening(true); stamper.close(); } catch (IOException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } }