word的xml格式转为普通的doc或者docx格式怎么转,请大神指教!!

孤独的搬砖人 2019-04-28 09:51:51
使用java将freemarker根据ftl模板生成的word文件转化为PDF
freemarker转成的word是xml格式,转成PDF时显示的是xml内容
将freemarker生成的文件另存成doc文件,再使用openoffice转化可以正常转化
请大神指教,怎么可以将freemarker生成的word文件转为PDF文件
//freemarker生成word文件
public static void printToPdf(String templatePath, String templateName, Map<String, Object> dataMap,
String tmpUrl) {
configuration = new Configuration();
configuration.setDefaultEncoding("UTF-8");
configuration.setServletContextForTemplateLoading(ServletContextUtils.getServletContext(), templatePath);
Template t = null;
try {
t = configuration.getTemplate(templateName);
File outFile = new File(tmpUrl);
Writer out = null;
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"));
t.process(dataMap, out);
IOUtils.closeQuietly(out);
String source = tmpUrl;
String target = tmpUrl.substring(0, tmpUrl.lastIndexOf('.')) + ".pdf";
word2pdf(source, target);
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
}
}

//转PDF
private static void word2pdf(String source, String target) {
String OpenOffice_HOME = "G:/soft/openoffice/";//openoffice安装目录
if (OpenOffice_HOME.charAt(OpenOffice_HOME.length() - 1) != '/') {
OpenOffice_HOME += "/";
}
Process pro = null;
try {
File inputFile = new File(source);
File outputFile = new File(target);
if (!outputFile.getParentFile().exists()) {
outputFile.getParentFile().mkdirs();
}
String command = OpenOffice_HOME
+ "program\\soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;StarOffice.ServiceManager\" -nofirststartwizard";
pro = Runtime.getRuntime().exec(command);
OpenOfficeConnection connection = new SocketOpenOfficeConnection("127.0.0.1", 8100);
connection.connect();
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
converter.convert(inputFile, outputFile);
connection.disconnect();
pro.destroy();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
pro.destroy();
}
}

...全文
1051 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zfystart 2022-03-22
  • 打赏
  • 举报
回复

请问楼主解决了吗

十八道胡同 2019-04-28
  • 打赏
  • 举报
回复 1
我自己生在做freemarker生成word文件,word文件的确可以正常生成的 word转pdf,我看你是借助于openoffice来的, 你换其他工具试试?

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧