/**
* 文件类型转换
*
* @param srcFile src文件
* @param saveFormat {@link SaveFormat} 保存格式
* @return {@link byte[]} 字节数组
* @throws WatermarkException 水印异常
*/
private static byte[] convertWord(File srcFile) throws WatermarkException {
LicenseUtils.verificationLicense();
ByteArrayOutputStream os = null;
try {
setFonts();
os = new ByteArrayOutputStream(1024);
Document doc = new Document(srcFile.getPath());
// 40 - PDF
doc.save(os, 40);
return os.toByteArray();
} catch (Exception e) {
logger.error("convertWord {}", e.getMessage());
throw new WatermarkException(e.getMessage());
}finally {
IoUtil.close(os);
}
}
/**
* 自定字体库
*/
private static void setFonts(){
String osType=String.valueOf(OSInfo.getOSType);
String fonts [] = null;
/**
* 适配字体文件
*/
if(osType.equals("Linux")){
// /usr/share/fonts/chinese/ 存放字体文件夹
fonts = new String[]{"/usr/share/fonts/chinese/","/usr/share/fonts/simsun/","/usr/share/fonts/black/","/usr/share/fonts/wingdings/"};
}else if(osType.equals("Windows")){
fonts = new String[]{"/Users/fonts/chinese/","/Users/fonts/simsun/","/Users/fonts/black/","/Users/fonts/wingdings/"};
}
FontSettings.setFontsFolders(fonts, true);
}
/** * 许可证工具类 * * @author Rong.Jia * @date 2021/08/29 */ public class LicenseUtils { private static final Logger logger = LoggerFactory.getLogger(LicenseUtils.class); private static final String LICENSE_XML = "license.xml"; private static final AtomicBoolean LICENSE = new AtomicBoolean(Boolean.FALSE); static { try { License wordLicense = new License(); com.aspose.cells.License cellsLicense = new com.aspose.cells.License(); com.aspose.slides.License slideLicense = new com.aspose.slides.License(); com.aspose.pdf.License pdLicense = new com.aspose.pdf.License(); cellsLicense.setLicense(LicenseUtils.class.getClassLoader().getResourceAsStream(LICENSE_XML)); pdLicense.setLicense(LicenseUtils.class.getClassLoader().getResourceAsStream(LICENSE_XML)); slideLicense.setLicense(LicenseUtils.class.getClassLoader().getResourceAsStream(LICENSE_XML)); wordLicense.setLicense(LicenseUtils.class.getClassLoader().getResourceAsStream(LICENSE_XML)); LICENSE.compareAndSet(Boolean.FALSE, Boolean.TRUE); } catch (Exception e) { LICENSE.compareAndSet(Boolean.FALSE, Boolean.FALSE); logger.error("License验证失败... ", e); } } /** * 验证许可证 */ public static void verificationLicense() { Assert.isTrue(LICENSE.get(), "License验证不通过..."); }