当前位置: 首页 > news >正文

php如何搭建网站后台楚天网站建设合同

php如何搭建网站后台,楚天网站建设合同,平湖手机网站建设,网站文本编辑器文章目录 word转pdf的相关第三方jar说明Linux系统安装LibreOffice在线安装离线安装word转pdf验证 Java工具类代码 word转pdf的相关第三方jar说明 docx4j 免费开源、稍微复杂点的word,样式完全乱了,且xalan升级为2.7.3后会报错。poi 免费开源、官方文档少…

文章目录

    • word转pdf的相关第三方jar说明
    • Linux系统安装LibreOffice
      • 在线安装
      • 离线安装
      • word转pdf验证
    • Java工具类代码

word转pdf的相关第三方jar说明

  • docx4j
    免费开源、稍微复杂点的word,样式完全乱了,且xalan升级为2.7.3后会报错。
  • poi
    免费开源、官方文档少、学习成本大、使用复杂、生成的样式也有问题。
  • aspire.doc
    样式保留很好、使用方便。
    未付费时,第一行会有红色水印且超过500个段落(大概25页)会被截取。
    网上没有破解版。
  • aspose.words
    样式保留很好、使用方便。
    网上有破解版。
  • documents4j
    样式保留很好、使用方便。
    底层直接调用微软的office所以,完美保留样式

Linux系统安装LibreOffice

在线安装

CentOS:使用以下命令安装

sudo yum install libreoffice

Ubuntu:使用以下命令安装

sudo apt-get install libreoffice

执行命令需要root权限:sudo -i、su

离线安装

在linux下离线安装libreoffice

word转pdf验证

查看版本:

libreoffice --version

启动服务:

nohup libreoffice --headless --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard &

word转pdf验证:

// 安装完后进入/usr/bin 或者 usr/local/bin目录下执行。 outdir输出是一个文件夹
libreoffice --headless --invisible --convert-to pdf /file/word/test.docx --outdir /file/word/test

也可以安装Apache OpenOffice,二者基本差不多,更推荐LibreOffice
LibreOffice vs OpenOffice:哪个免费办公套件更适合你?

Java工具类代码

maven依赖:

<!--word转pdf-->
<dependency><groupId>com.documents4j</groupId><artifactId>documents4j-local</artifactId><version>${documents4j.version}</version>
</dependency>
<dependency><groupId>com.documents4j</groupId><artifactId>documents4j-transformer-msoffice-word</artifactId><version>${documents4j.version}</version>
</dependency>

java代码:

package com.chinamobile.cmss.services.main.util;
import com.documents4j.api.DocumentType;
import com.documents4j.api.IConverter;
import com.documents4j.job.LocalConverter;
import lombok.extern.slf4j.Slf4j;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;/*** Documents4j工具类** @author liquanhong* @createTime 2023/12/05*/
@Slf4j
public class Documents4jUtil {// windows 生成目录private static String winDirUrl = "D:\\temp\\file\\pdf\\";/*** word转pdf** @param file word源文件*/public static void convertWordToPdf(File file) {String os = System.getProperty("os.name").toLowerCase();log.info("convertWordToPdf 当前操作系统:{}", os);if (os.contains("win")) {// Windows操作系统windowsWordToPdf(file);} else if (os.contains("nix") || os.contains("nux") || os.contains("mac")) {// Unix/Linux/Mac操作系统linuxWordToPdf(file);} else {// 未知操作系统throw new RuntimeException("不支持当前操作系统转换文档。");}}/*** 通过documents4j 实现word转pdf -- Windows 环境 需要有 Microsoft Office 服务** @param file 源文件*/public static void windowsWordToPdf(File file) {File outputFile = new File(winDirUrl + file.getName().replaceAll("\\.(docx?|\\w+)$", "") + ".pdf");try(InputStream  docxInputStream = new FileInputStream(file);OutputStream outputStream = new FileOutputStream(outputFile)){IConverter converter = LocalConverter.builder().build();converter.convert(docxInputStream).as(DocumentType.DOCX).to(outputStream).as(DocumentType.PDF).execute();} catch (Exception e) {log.error("winWordToPdf windows环境word转换为pdf时出现异常:", e);}}/*** 通过libreoffice 实现word转pdf -- linux 环境 需要有 libreoffice 服务** @param file 源文件*/public static void linuxWordToPdf(File file) {// 获取文件的绝对路径和目标路径String absolutePath = file.getAbsolutePath();String parentPath = file.getParent();// 构建LibreOffice的命令行工具命令String command = "libreoffice --headless --invisible --convert-to pdf " + absolutePath + " --outdir " + parentPath;// 执行转换命令try {executeLinuxCmd(command);} catch (Exception e) {log.error("linuxWordToPdf linux环境word转换为pdf时出现异常:", e);}}/*** 执行命令行** @param cmd 命令行* @return* @throws IOException*/private static boolean executeLinuxCmd(String cmd) throws IOException {Process process = Runtime.getRuntime().exec(cmd);try {process.waitFor();} catch (InterruptedException e) {log.error("executeLinuxCmd 执行Linux命令异常:", e);Thread.currentThread().interrupt();return false;}return true;}
}

命令行注意加上 --headless --invisible 否则异步执行的时候容易出现无反应的情况。

参考链接、参考链接、参考链接

http://www.yayakq.cn/news/760763/

相关文章:

  • html制作网站重庆做网站开发的集中
  • 化妆品网站建设思路做网站需要走哪些程序
  • 集团公司网站模板海报设计在线生成免费
  • 餐饮网站建设网站建设费用会计入什么费用
  • 即墨区城乡建设局网站官网网页制作的企业
  • 阿里云空间部署网站广西建设职业技术学院
  • 代理网站地址推介做界面的网站
  • 织梦高端html5网站建设工作室网络公司网站模板公司网站建设技术
  • 网站建设及优化 赣icp网站制作的要求
  • 如何创建游戏网站软件开发公司推荐
  • 博海博海网站建设新手怎么引流推广推广引流
  • 大型网站架构实战展览会建设网站平台的作用
  • 网站建设公司的成本有哪些方面网站备案没了
  • 不建网站如何做淘宝客做母婴育儿类网站好做seo排名吗
  • 云南省网站建设公司郴州最大的网络科技公司
  • 江苏手机网站建设公司wordpress页脚太高
  • 网站必做外链网站集约建设报告
  • 萍乡网站推广小程序介绍怎么写吸引人
  • 网站建设所学内容关闭wordpress注册功能
  • 网站开发 360浏览器做的网站很卡是什么原因呢
  • 网站代理怎么做的百度站长如何添加网站
  • 网站手机网页如何做网站推广运营招聘
  • asp网站如何做伪静态网站改版对网站优化影响最大的问题有哪些
  • 网站开发目标开题报告微站开发
  • 岗顶做网站公司wordpress网站布置视频教程
  • 企业网站设计要点浦东建设网站制作
  • 汕头专业的开发网站方案营销活动推广方案
  • app软件开发软件沈阳seo排名公司
  • 开家网站建设培训班下wordpress
  • 网站语言那种好阿里巴巴招聘