protected void setBlobAttributes(Blob result, TemplateBasedDocument templateBasedDocument) { // try to guess mimetype and extension of the resulting Blob MimetypeRegistry mreg = Framework.getService(MimetypeRegistry.class); String mimetype = "text/html"; String extension = ".html"; if (mreg != null) { String found_mimetype = guessMimeType(result, mreg); if (found_mimetype != null) { mimetype = found_mimetype; List<String> extensions = mreg.getExtensionsFromMimetypeName(mimetype); if (extensions != null && extensions.size() > 0) { extension = "." + extensions.get(0); } } } if ("text/xml".equalsIgnoreCase(mimetype)) { // because MimetypeRegistry return a stupid result for XML extension = ".xml"; } result.setMimeType(mimetype); String targetFileName = FileUtils.getFileNameNoExt(templateBasedDocument.getAdaptedDoc().getTitle()); result.setFilename(targetFileName + extension); }
xdoc.putDocument(FileUtils.getFileNameNoExt(file.getName()), loadXML(file)); } else { // presume a blob xdoc.putBlob(file.getName(), Blobs.createBlob(file));
String targetFileName = FileUtils.getFileNameNoExt(templateBasedDocument.getAdaptedDoc().getTitle());
protected Blob applyConverter(Blob blob, String converter, String destMimeType, Map<String, Serializable> params) { ConversionService cs = Framework.getService(ConversionService.class); BlobHolder bh = cs.convert(converter, new SimpleBlobHolder(blob), params); if (bh == null || bh.getBlob() == null) { return blob; } else { Blob result = bh.getBlob(); MimetypeRegistry mtr = Framework.getService(MimetypeRegistry.class); String filename = FileUtils.getFileNameNoExt(blob.getFilename()); filename = filename + "." + mtr.getExtensionsFromMimetypeName(destMimeType).get(0); result.setFilename(filename); if (result.getMimeType() == null) { result.setMimeType(destMimeType); } return result; } }