ubuntu 下 python 将ppt,word 转换为pdf.

2023-05-16

最近发现了一个挺厉害的人工智能学习网站,内容通俗易懂,风趣幽默,感兴趣的可以点击此链接进行查看:床长人工智能教程

 废话不多说,请看正文!

前言:

  在我以前的博客中有这么两篇博客,一篇是:将word 转换为图片(word to pdf ->pdf to image),另一篇是:python将ppt文件转换为jpg图片. 这两篇博客都是讲如何将word,ppt转换为图片,但是这些方法都是在win系统中实现的,而在ubuntu下根本无法运行代码.原因时转换过程中借用的时win的接口库win32com. 这个库bantu压根不存在.所以以前的方法在ubuntu系统就不能实现了,只能另寻出路所幸,皇天不服有心人,在经过多日查找,终于找到解决方法.

ppt转换为pdf:

准备工作:安装 subprocess 这个库

打开终端,执行以下语句:

sudo pip3 install subprocess

安装库以后就好办了,执行一下代码便可以实现转换.

import subprocess
from subprocess import Popen, PIPE

    def ppt_to_pdf(self, outfile, infile, timeout=None):
        """将ppt 转换为pdf

        函数说明:将路径为infile的ppt文件转换为pdf,保存进路径为outfile的pdf文件.

        参数: outfile(str):保存文件pdf 的路径.

        参数: infile(str):ppt文件的路径.

        参数: timeout:转换文件时的时间延迟.
        """
        args = ['libreoffice', '--headless', '--convert-to', 'pdf', '--outdir',outfile, infile]
        process = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=timeout)
        re.search('-> (.*?) using filter', process.stdout.decode())

同理,将word转换为pdf

import subprocess
from subprocess import Popen, PIPE


    def word_to_pdf(self,outfile, infile, timeout=None):
        """将word 转换为pdf

        函数说明:将路径为infile的word文件转换为pdf,保存进路径为outfile的pdf文件.

        参数: outfile(str):保存文件pdf 的路径.

        参数: infile(str):word文件的路径.

        参数: timeout:转换文件时的时间延迟.
        """
        args = ['libreoffice', '--headless', '--convert-to', 'pdf', '--outdir', outfile, infile]
        process = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=timeout)
        re.search('-> (.*?) using filter', process.stdout.decode())

将word,ppt转换为pdf 的方法是一样的,只不过是输入文件不一样罢了.

下面顺便也提一下将pdf转换为图片吧

首先要先安装 fitz 这个库,打开终端使用以下代码.

sudo pip3 install fitx

转换的代码:

from PyQt5 import QtGui
import fitz

pdf = fitz.open(file)
for pg in range(pdf.pageCount):
     page = pdf.loadPage(pg)  # 使用循环将所有转换为图片。
     pagePixmap = page.getPixmap()
     # 获取 image 格式
     imageFormat = QtGui.QImage.Format_RGB888
     # 生成 QImage 对象
     pageQImage = QtGui.QImage(pagePixmap.samples, pagePixmap.width,pagePixmap.height, pagePixmap.stride, imageFormat)
     pageQImage.save(file1 + '/image' + '%s.jpg' % (pg + 1))
pdf.close()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu 下 python 将ppt,word 转换为pdf. 的相关文章

随机推荐

  • LeetCode多线程

    1114 按序打印 我们提供了一个类 xff1a public class Foo public void one print 34 one 34 public void two print 34 two 34 public void th
  • 通过docker和gitlab实现项目自动打包部署

    Gitlab如何实现自动打包部署到docker集群 xff1f 预备知识 xff1a 开发模式转变 xff1a 瀑布模型 敏捷开发 DevOps DevOps xff1a Development Operations的组合词 CICD xf
  • JPA部分字段查询

    部分字段查询 实体类 编写想要查询字段的构造方法 span class token annotation punctuation 64 Data span span class token annotation punctuation 64
  • 数字马力一面

    1 自我介绍 2 讲下项目 xff0c 技术架构 3 xxl job的配置 xff0c 负载均衡策略讲一下 xff1f 基础配置如执行器名称 xff0c ip 端口等 负载均衡策略列举 xff1a 故障转移 xff0c 最近最久未使用 xf
  • Idea自动生成get()和set()方法的快捷操作

    1 首先创建好一个类 xff0c 里面可以暂时有2个属性 span class token keyword public span span class token keyword class span span class token c
  • 数字马力二面

    1 自我介绍下 2 介绍下项目 我们做的是CRM售后项目 xff0c 包括工单 xff0c 商返 xff0c 备件 xff0c 结算等九个模块 xff0c 我主要做的是工单 xff0c 备件模块 xff0c 工单模块就包括了各种报单 xff
  • 七层网络协议及三次握手四次挥手

    网络协议层次划分 为什么会有七层 xff0c 五层 xff0c 四层之说 七层协议 xff1a ISO定义的网络分层 xff0c 理论上的国际标准 四层协议 xff1a TCP IP分层 xff0c 实际的国际标准 五层协议 xff1a 我
  • git rebase 合并多次提交记录为一次提交

    使用git rebase 合并多次提交记录为一次提交 例 xff1a 下面有3次提交 xff0c 提交3的hash值为e79117d0 执行下面命令 span class token function git span rebase spa
  • 微服务整体架构图解

  • Spring自己注入自己,解决异步失效问题

    1 为什么会产生同一类内异步注解失效 xff1f 我们要清楚 xff0c 异步 xff0c 事务这些注解生效的原理 xff0c 在于通过切面创建了代理类 xff0c 通过操作代理类我们实现了异步 xff0c 事务 xff0c 但是当我们在同
  • 修改ubuntu(18.04)登录密码

    1 首先对Ubuntu系统进行重启 xff0c 在系统重启的过程中长按键盘shift键 xff0c 此时会进入GNU GRUB界面 xff0c 如下图所示 选择Advanced options for Ubuntu 按enter键进入 2
  • 怎样通过SpringMVC生成图片验证码?

    生成图片验证码 首先要添加一个jar包 kaptcha 2 3 2 jar 是一个java开源的验证码工具包 xff0c kaptcha 是一个非常实用的验证码生成工具 有了它 xff0c 你可以生成各种样式的验证码 xff0c 因为它是可
  • 使用phpstorm在线编辑服务器所创建的ftp文件,phpstorm小技巧。

    一 从服务器创建的开始 二 保证电脑上面可以访问服务器创建的ftp下的文件 可以使用FlashFXP 5 来连接服务器的ftp下的文件 使用说明如下 此处输入对应的ftp的IP地址 xff0c 用户名 xff0c 密码 就可以访问ftp文件
  • SR850出现fault in slot ALL PCI error on system ThinkSystem SR850报错

    SR850出现fault in slot ALL PCI error on system ThinkSystem SR850报错 一 报错信息显示二 判断故障并修复 一 报错信息显示 服务器型号为lenovo SR850 xff0c XCC
  • Java笔记(7)——equals和toString方法的重写和一个例子

    1 Object类 Object类是所有类的根父类 xff0c 如果在类中没有extends关键字指明其父类 xff0c 默认其父类为Object类 2 61 61 与equals方法的区别 61 61 xff1a 是否指向了同一个对象 e
  • linux开放端口

    注 本位系统版本centos8 一 直接上命令 开放端口3306 firewall cmd zone 61 public add port 61 3306 tcp permanent 如果出现报错 说明防火墙没打开 可以执行 systemc
  • QT学习笔记(七)—— QT程序自动寻找依赖的DLL,用来打包发布

    下载软件的方式有两种 比如当我们在Windows系统中去下载python3 7时 xff0c 有两种下载选项 xff1a 一种是下载打包好的 zip文件 打包好的 zip文件就是下面我们要介绍的方法 xff0c 不过它有可能 xff08 我
  • 写一些个人对ajax的认识和总结,全部是干货!

    1 首先我们要知道的是 xff0c ajax它不是一门编程语言 xff0c 它只是一种有着标准的方法 xff01 2 ajax可以说是异步的JavaScript和xml 那么ajax有什么优缺点呢 xff1f 优点 xff1a 1 它可以在
  • kali-linux快速安装教程

    kali linux快速入门 xff1a 1 下载安装 xff1a 1 1 xff1a 目前一般人用的都是windows系统 xff0c 所以我们只需要下载虚拟机版本的kali系统就好了 1 2 xff1a kali下载地址 xff1a h
  • ubuntu 下 python 将ppt,word 转换为pdf.

    最近发现了一个挺厉害的人工智能学习网站 xff0c 内容通俗易懂 xff0c 风趣幽默 xff0c 感兴趣的可以点击此链接进行查看 xff1a 床长人工智能教程 废话不多说 xff0c 请看正文 xff01 前言 在我以前的博客中有这么两篇