本文主要是介绍aspose-words word转pdf 服务器不需要重启,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章综合了其他网友的方法,方便观看,后面附有链接
用到的jar aspose-words-15.8.0-jdk16.jar
服务器字体设置:
yum install -y fontconfig mkfontscale
cd /usr/share/fonts目录
把windows机器中 C:\Windows\Fonts里面的内容,全部拷贝到linux的上述目录(/usr/share/fonts中)
mkfontscale
mkfontdir
fc-cache服务器不需要重启,但是安装完新字体需要执行
mkfontscale
mkfontdir
fc-cache
服务器字体目录图:
license.xml 文件内容(用于破解水印)
<?xml version="1.0" encoding="UTF-8" ?>
<License><Data><Products><Product>Aspose.Total for Java</Product><Product>Aspose.Words for Java</Product></Products><EditionType>Enterprise</EditionType><SubscriptionExpiry>20991231</SubscriptionExpiry><LicenseExpiry>20991231</LicenseExpiry><SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber></Data><Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
</License>
pom.xml打包
<resource><directory>src/main/resources</directory><filtering>true</filtering><excludes><exclude>font/*.ttf</exclude><exclude>font/*.woff</exclude></excludes></resource><resource><directory>src/main/resources</directory><filtering>false</filtering><includes><include>font/*.ttf</include><include>font/*.woff</include></includes></resource></resources><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><configuration><nonFilteredFileExtensions><nonFilteredFileExtension>ttf</nonFilteredFileExtension><nonFilteredFileExtension>woff</nonFilteredFileExtension><nonFilteredFileExtension>woff2</nonFilteredFileExtension></nonFilteredFileExtensions></configuration><version>3.2.0</version></plugin>
代码(适当自行修改):
public static boolean doc2pdf(String inPath, String outPath) {// 验证License 若不验证则转化出的pdf文档会有水印产生if (!getLicense()) {return false;}FileOutputStream os = null;try {//把项目下的字体拷贝到服务器字体目录下ClassPathResource resource = new ClassPathResource("font" + File.separator + "msyh.ttf");InputStream is = resource.getInputStream();String linuxFontBasePath = "/usr/share/fonts";File fontFile = new File(linuxFontBasePath + File.separator + "msyh.ttf");if (!fontFile.exists()) {FileCopyUtils.copy(FileCopyUtils.copyToByteArray(is),fontFile);}File file = new File(outPath); //新建一个空白pdf文档os = new FileOutputStream(file);long old = System.currentTimeMillis();Document doc = new Document(inPath);Environment environment = SpringContextUtil.getBean(Environment.class);String[] activeProfiles = environment.getActiveProfiles();//非开发环境则拷贝字体到服务器系统字体目录中if (null != activeProfiles && !"local".equals(activeProfiles[0])) {FontSettings.setFontsFolder(linuxFontBasePath + File.separator, true);}//sourcerFile是将要被转化的word文档doc.save(os, SaveFormat.PDF);os.close();long now = System.currentTimeMillis();System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒"); //转化用时} catch (Exception e) {e.printStackTrace();return false;}finally {if (os != null) {try {os.flush();os.close();} catch (IOException e) {e.printStackTrace();}}}return true;}
参考地址:
地址一:https://blog.csdn.net/somdip/article/details/100098976
地址二:https://blog.csdn.net/somdip/article/details/100098976
地址三:https://blog.csdn.net/somdip/article/details/100098976
这篇关于aspose-words word转pdf 服务器不需要重启的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!