Created attachment 27465 [details] With this patch I am able to change the mimetype. I can't found a solution with the unmodified poi code for the following problem. It should be possible to convert the following templates: ".dotx" to ".docx" ".dotm" to ".docm" ".xltx" to "xlsx" ".xltm" to ".xlsm" ".potx" to ".pptx" ".potm" to ".pptm" I am able to do this after installing the attached patch. Usage: OPCPackage pack = new ZipPackage(stream, PackageAccess.READ_WRITE); if (pack != null) { pack.getParts(); ArrayList<PackagePart> list = pack.getPartsByContentType(oldContentType); for (PackagePart packagePart : list) { if (packagePart.getContentType().equals(oldContentType)) { PackagePartName partName = packagePart.getPartName(); pack.getContenTypeManager().addContentType(partName, newContentType); } } ByteArrayOutputStream outputStream = new ByteArrayOutputStream(1024); pack.save(outputStream); //TODO save as file with the new file extention } Please include this patch for the next version or implement an other nicer way to change the contenttype.
Replacement of content types supported in r1294998. There is a new method OPCPackage.replaceContentType(String oldType, String newType) that does the job. Usage: OPCPackage pkg = OPCPackage.open(new FileInputStream("macro-workbook.xlsm")); pkg.replaceContentType( "application/vnd.ms-excel.sheet.macroEnabled.main+xml", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"); FileOutputStream out = new FileOutputStream("workbook.xlsx"); pkg.save(out); out.close(); Yegor