关于实现ppt转pdf功能工作总结

需求功能:将已生成的ppt转为pdf以实现预览功能。
因为卡了好多天,因此将踩过的坑做个总结。

1. 访问生成的问件跨域(nginx转发没有配置跨域)

  解决方案: 添加匹配允许跨域的配置

 location /ppt/ {
            # 设置允许跨域的域,* 表示允许任何域,也可以设置特定的域
            add_header 'Access-Control-Allow-Origin' '*';
     
            # 允许的方法
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
     
            # 允许的头信息字段
            add_header 'Access-Control-Allow-Headers' 'User-Agent,Keep-Alive,Content-Type';
     
            # 缓存时间
            add_header 'Access-Control-Max-Age' 1728000;
            alias /home/XXX/file/;
            }

2. 依赖 aspose-slides 为商业包 有水印且无法在中央仓库下载

  问题详述:

aspose-slides 无法在中央仓库https://repo.maven.apache.org/maven2/ 或者阿里云仓库等下载需要配置其公司私有仓库

  解决方案:

  1. 这里首先选择在官网中查找最新版本。依赖下载网址:https://releases.aspose.com/slides/java/
    下载后打入本地依赖(但是有水印)。
  2. 后续发现阿里云仓库中有去水印版本的依赖,经过选择后引入以下依赖(相关版本可以在阿里云仓库中自行寻找):
		<dependency>
            <groupId>com.luhuiguo</groupId>
            <artifactId>aspose-slides</artifactId>
            <version>23.1</version>
        </dependency>

3. windows正常使用 linux下转换失败

  问题详述:
对于常用的java11版本,无论是docker容器部署方式还是服务器直接部署 aspose-slides
依赖在linux下无法使用,但是在windows下功能正常。

  解决方案:
使用jdk11在linux会报错sun.font…或者其余警告报错等,总结为一些java内部方法无法通过反射找到。估计原因是因为依赖构建时是采用低版本的jdk因此决定降低java版本,使用jdk8构建项目并且将此功能单独抽离达成微服务项目。选用oracle官方提供的镜像dockette/jdk8
在这里插入图片描述

4. 字体展示为小方块

  问题详述
经过以上的处理 在linux下已经可以看到pdf中有内容了,但是文字展示为小方块,图示入下:
在这里插入图片描述
  问题分析:
分析认为内容已经转成功了 可能是因为没有linux中不含字体,因此需要在linux系统中添加字体文件。
  解决方案:

  1. 在windows中 C:\Windows\Fonts 文件夹中找到引用的字体(这里用的是宋体)
    在这里插入图片描述

  2. 将字体上传到linux中 位置为 /usr/share/fonts

  3. 找到容器id运行命令(这里有个坑,容器可能会默认不安装 fontconfig工具)
    docker exec -it fe7f84eb63fd /bin/bash 或者 docker exec -it fe7f84eb63fd sh
    使用 fc-list 命令来检查系统是否已经安装了Fontconfig。如果命令返回fc-list: command not
    found,则表示Fontconfig尚未安装。
    如果未安装则需要重新构建镜像 需要在dockerFile文件中添加以下指令
    RUN apk add --no-cache fontconfig

  4. 进入容器内部输入指令:
    cd /usr/share
    mkdir fonts
    在另外的窗口将字体传入docker容器中
    docker cp simsun.ttc fe7f84eb63fd:/usr/share/fonts/
    再回到容器内部的窗口输入fc-list验证
    然后需要重启容器!!!
    验证结果

  5. 验证功能:已经可以成功展示与下载。在这里插入图片描述`

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值