public DocumentVisualization visualizeDocument(byte[] document, String language, List<MimeType> mimeTypes, String documentViewerServlet) throws Exception { // per default we do nothing byte[] browserData = document; String browserContentType = "text/xml"; ByteArrayInputStream documentInputStream = new ByteArrayInputStream( document); Document dom = this.documentBuilder.parse(documentInputStream); String namespace = dom.getDocumentElement().getNamespaceURI(); if (null != namespace) { LOG.debug("document namespace: " + namespace); byte[] xsl = this.context.getXmlStyleSheet(namespace); if (null != xsl) { LOG.debug("XML style sheet present"); browserContentType = "text/html"; Transformer transformer = this.transformerFactory .newTransformer(new StreamSource( new ByteArrayInputStream(xsl))); if (null != language) { transformer.setParameter("language", language); } ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); transformer.transform(new DOMSource(dom), new StreamResult( outputStream)); browserData = outputStream.toByteArray(); } } return new DocumentVisualization(browserContentType, browserData); }
public DocumentVisualization findDocument(byte[] parentDocument, String resourceId) throws Exception { ZipInputStream zipInputStream = new ZipInputStream( new ByteArrayInputStream(parentDocument)); ZipEntry zipEntry; while (null != (zipEntry = zipInputStream.getNextEntry())) { if (getResourceId(zipEntry).equals(resourceId)) { LOG.debug("Found file: " + resourceId); byte[] data = IOUtils.toByteArray(zipInputStream); return new DocumentVisualization( new MimetypesFileTypeMap().getContentType(zipEntry.getName()), data); } } return null; }
stringBuilder.append("</body></html>"); return new DocumentVisualization("text/html;charset=utf-8", stringBuilder.toString().getBytes());
return new DocumentVisualization("text/html;charset=utf-8", stringBuffer.toString().getBytes());