List of usage examples for com.lowagie.text.pdf XfaForm getDomDocument
public org.w3c.dom.Document getDomDocument()
From source file:org.kuali.coeus.propdev.impl.budget.subaward.PropDevPropDevBudgetSubAwardServiceImpl.java
License:Open Source License
/** * extracts XML from PDF/*from www . j a v a 2 s .c o m*/ */ protected byte[] getXMLFromPDF(PdfReader reader) throws Exception { XfaForm xfaForm = reader.getAcroFields().getXfa(); Node domDocument = xfaForm.getDomDocument(); if (domDocument == null) return null; Element documentElement = ((Document) domDocument).getDocumentElement(); Element datasetsElement = (Element) documentElement.getElementsByTagNameNS(XFA_NS, "datasets").item(0); Element dataElement = (Element) datasetsElement.getElementsByTagNameNS(XFA_NS, "data").item(0); Element xmlElement = (Element) dataElement.getChildNodes().item(0); Node budgetElement = getBudgetElement(xmlElement); byte[] serializedXML = XfaForm.serializeDoc(budgetElement); return serializedXML; }
From source file:org.kuali.coeus.propdev.impl.s2s.S2sUserAttachedFormServiceImpl.java
License:Open Source License
private List<S2sUserAttachedForm> extractAndPopulateXml(ProposalDevelopmentDocument developmentProposal, PdfReader reader, S2sUserAttachedForm userAttachedForm, Map attachments) throws Exception { List<S2sUserAttachedForm> formBeans = new ArrayList<S2sUserAttachedForm>(); XfaForm xfaForm = reader.getAcroFields().getXfa(); Node domDocument = xfaForm.getDomDocument(); if (domDocument == null) { S2SException s2sException = new S2SException(KeyConstants.S2S_USER_ATTACHED_FORM_WRONG_FILE_TYPE, "Uploaded file is not Grants.Gov fillable form"); s2sException.setTabErrorKey("userAttachedFormsErrors"); throw s2sException; }// w w w . j ava 2 s . c om Element documentElement = ((Document) domDocument).getDocumentElement(); Element datasetsElement = (Element) documentElement.getElementsByTagNameNS(XFA_NS, "datasets").item(0); Element dataElement = (Element) datasetsElement.getElementsByTagNameNS(XFA_NS, "data").item(0); Element grantApplicationElement = (Element) dataElement.getChildNodes().item(0); byte[] serializedXML = XfaForm.serializeDoc(grantApplicationElement); DocumentBuilderFactory domParserFactory = DocumentBuilderFactory.newInstance(); domParserFactory.setNamespaceAware(true); javax.xml.parsers.DocumentBuilder domParser = domParserFactory.newDocumentBuilder(); domParserFactory.setIgnoringElementContentWhitespace(true); ByteArrayInputStream byteArrayInputStream = null; org.w3c.dom.Document document = null; try { byteArrayInputStream = new ByteArrayInputStream(serializedXML); document = domParser.parse(byteArrayInputStream); } finally { if (byteArrayInputStream != null) byteArrayInputStream.close(); } if (document != null) { Element form = null; NodeList elements = document .getElementsByTagNameNS("http://apply.grants.gov/system/MetaGrantApplication", "Forms"); Element element = (Element) elements.item(0); if (element != null) { NodeList formChildren = element.getChildNodes(); int formsCount = formChildren.getLength(); if (formsCount > 1) { NodeList selectedOptionalFormElements = document.getElementsByTagNameNS( "http://apply.grants.gov/system/MetaGrantApplicationWrapper", "SelectedOptionalForms"); int selectedOptionalFormsCount = selectedOptionalFormElements == null ? 0 : selectedOptionalFormElements.getLength(); if (selectedOptionalFormsCount > 0) { Element selectedFormNode = (Element) selectedOptionalFormElements.item(0); NodeList selectedForms = selectedFormNode.getElementsByTagNameNS( "http://apply.grants.gov/system/MetaGrantApplicationWrapper", "FormTagName"); int selectedFormsCount = selectedForms == null ? 0 : selectedForms.getLength(); if (selectedFormsCount > 0) { List seletctedForms = new ArrayList(); for (int j = 0; j < selectedFormsCount; j++) { Element selectedForm = (Element) selectedForms.item(j); String formName = selectedForm.getTextContent(); seletctedForms.add(formName); } List exceptions = new ArrayList(); for (int i = 0; i < formsCount; i++) { form = (Element) formChildren.item(i); String formNodeName = form.getLocalName(); if (seletctedForms.contains(formNodeName)) { try { addForm(developmentProposal, formBeans, form, userAttachedForm, attachments); } catch (UnmarshalException ume) { exceptions.add("Not able to create xml for the form " + formNodeName + " Root Cause:" + ume.getMessage() + "<br>"); } } } if (!exceptions.isEmpty()) throw new S2SException(exceptions.toString()); } } } else { form = (Element) formChildren.item(0); addForm(developmentProposal, formBeans, form, userAttachedForm, attachments); } } else { form = document.getDocumentElement(); addForm(developmentProposal, formBeans, form, userAttachedForm, attachments); } } return formBeans; }
From source file:org.kuali.kra.proposaldevelopment.budget.service.impl.BudgetSubAwardServiceImpl.java
License:Educational Community License
/** * extracts XML from PDF/*from w ww . j ava 2 s .c o m*/ */ protected byte[] getXMLFromPDF(PdfReader reader) throws Exception { XfaForm xfaForm = reader.getAcroFields().getXfa(); Node domDocument = xfaForm.getDomDocument(); if (domDocument == null) throw new Exception("Not a valid pdf form"); Element documentElement = ((Document) domDocument).getDocumentElement(); Element datasetsElement = (Element) documentElement.getElementsByTagNameNS(XFA_NS, "datasets").item(0); Element dataElement = (Element) datasetsElement.getElementsByTagNameNS(XFA_NS, "data").item(0); Element xmlElement = (Element) dataElement.getChildNodes().item(0); Node budgetElement = getBudgetElement(xmlElement); byte[] serializedXML = XfaForm.serializeDoc(budgetElement); return serializedXML; }
From source file:org.kuali.kra.s2s.service.impl.S2SUserAttachedFormServiceImpl.java
License:Educational Community License
private List<S2sUserAttachedForm> extractAndPopulateXml(DevelopmentProposal developmentProposal, PdfReader reader, S2sUserAttachedForm userAttachedForm, Map attachments) throws Exception { List<S2sUserAttachedForm> formBeans = new ArrayList<S2sUserAttachedForm>(); XfaForm xfaForm = reader.getAcroFields().getXfa(); Node domDocument = xfaForm.getDomDocument(); if (domDocument == null) { S2SException s2sException = new S2SException(KeyConstants.S2S_USER_ATTACHED_FORM_WRONG_FILE_TYPE, "Uploaded file is not Grants.Gov fillable form"); s2sException.setTabErrorKey("userAttachedFormsErrors"); throw s2sException; }// ww w .j a va 2 s.c o m Element documentElement = ((Document) domDocument).getDocumentElement(); Element datasetsElement = (Element) documentElement.getElementsByTagNameNS(XFA_NS, "datasets").item(0); Element dataElement = (Element) datasetsElement.getElementsByTagNameNS(XFA_NS, "data").item(0); Element grantApplicationElement = (Element) dataElement.getChildNodes().item(0); byte[] serializedXML = XfaForm.serializeDoc(grantApplicationElement); DocumentBuilderFactory domParserFactory = DocumentBuilderFactory.newInstance(); domParserFactory.setNamespaceAware(true); javax.xml.parsers.DocumentBuilder domParser = domParserFactory.newDocumentBuilder(); domParserFactory.setIgnoringElementContentWhitespace(true); ByteArrayInputStream byteArrayInputStream = null; org.w3c.dom.Document document = null; try { byteArrayInputStream = new ByteArrayInputStream(serializedXML); document = domParser.parse(byteArrayInputStream); } finally { if (byteArrayInputStream != null) byteArrayInputStream.close(); } if (document != null) { Element form = null; NodeList elements = document .getElementsByTagNameNS("http://apply.grants.gov/system/MetaGrantApplication", "Forms"); Element element = (Element) elements.item(0); if (element != null) { NodeList formChildren = element.getChildNodes(); int formsCount = formChildren.getLength(); if (formsCount > 1) { //String xpathSelectedForms = "//*[namespace-uri()='http://apply.grants.gov/system/MetaGrantApplicationWrapper' and *[local-name()='SelectedOptionalForms'] " + // "or @*[namespace-uri()='http://apply.grants.gov/system/MetaGrantApplicationWrapper' and *[local-name()='SelectedOptionalForms']]]"; //NodeList selectedFormElements = XPathAPI.selectNodeList(document,xpathSelectedForms); NodeList selectedOptionalFormElements = document.getElementsByTagNameNS( "http://apply.grants.gov/system/MetaGrantApplicationWrapper", "SelectedOptionalForms"); int selectedOptionalFormsCount = selectedOptionalFormElements == null ? 0 : selectedOptionalFormElements.getLength(); if (selectedOptionalFormsCount > 0) { Element selectedFormNode = (Element) selectedOptionalFormElements.item(0); NodeList selectedForms = selectedFormNode.getElementsByTagNameNS( "http://apply.grants.gov/system/MetaGrantApplicationWrapper", "FormTagName"); int selectedFormsCount = selectedForms == null ? 0 : selectedForms.getLength(); if (selectedFormsCount > 0) { List seletctedForms = new ArrayList(); for (int j = 0; j < selectedFormsCount; j++) { Element selectedForm = (Element) selectedForms.item(j); //NodeList selectedFormNames = selectedForm.getElementsByTagNameNS("http://apply.grants.gov/system/MetaGrantApplicationWrapper","Name-Version"); String formName = selectedForm.getTextContent(); seletctedForms.add(formName); } List exceptions = new ArrayList(); for (int i = 0; i < formsCount; i++) { form = (Element) formChildren.item(i); String formNodeName = form.getLocalName(); if (seletctedForms.contains(formNodeName)) { try { addForm(developmentProposal, formBeans, form, userAttachedForm, attachments); } catch (UnmarshalException ume) { exceptions.add("Not able to create xml for the form " + formNodeName + " Root Cause:" + ume.getMessage() + "<br>"); } } } if (!exceptions.isEmpty()) throw new S2SException(exceptions.toString()); } } } else { form = (Element) formChildren.item(0); addForm(developmentProposal, formBeans, form, userAttachedForm, attachments); } } else { form = document.getDocumentElement(); addForm(developmentProposal, formBeans, form, userAttachedForm, attachments); } } return formBeans; }
From source file:questions.forms.FillDynamicXfa2.java
public static void main(String[] args) { try {// w ww.j av a 2 s .c om // getting new data from a "datasets" XML snippet File file = new File(RESOURCE_DATA); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); DocumentBuilder db = dbf.newDocumentBuilder(); Document newdoc = db.parse(file); Element element = newdoc.getDocumentElement(); NodeList nodelist = element.getElementsByTagNameNS("http://www.xfa.org/schema/xfa-data/1.0/", "data"); Node newdata = nodelist.item(0); // replacing the XFA in an existing document PdfReader reader = new PdfReader(RESOURCE_PDF); XfaForm xfa = new XfaForm(reader); Document doc = xfa.getDomDocument(); NodeList list = doc.getElementsByTagNameNS("http://www.xfa.org/schema/xfa-data/1.0/", "datasets"); list.item(0).replaceChild(doc.importNode(newdata, true), list.item(0).getFirstChild()); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT)); xfa.setDomDocument(doc); xfa.setChanged(true); XfaForm.setXfa(xfa, stamper.getReader(), stamper.getWriter()); stamper.close(); } catch (IOException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } }
From source file:questions.forms.ReadXfa2.java
public static void main(String[] args) { try {/*from ww w . ja v a 2 s.c o m*/ PdfReader reader = new PdfReader(RESOURCE); FileOutputStream os = new FileOutputStream(RESULT); XfaForm xfa = new XfaForm(reader); Document doc = xfa.getDomDocument(); Transformer tf = TransformerFactory.newInstance().newTransformer(); tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); tf.setOutputProperty(OutputKeys.INDENT, "yes"); tf.transform(new DOMSource(doc), new StreamResult(os)); reader.close(); } catch (IOException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } }