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. 的相关文章

  • 通过 Scrapy 抓取 Google Analytics

    我一直在尝试使用 Scrapy 从 Google Analytics 获取一些数据 尽管我是一个完全的 Python 新手 但我已经取得了一些进展 我现在可以通过 Scrapy 登录 Google Analytics 但我需要发出 AJAX
  • Python 中的 Lanczos 插值与 2D 图像

    我尝试重新缩放 2D 图像 灰度 图像大小为 256x256 所需输出为 224x224 像素值范围从 0 到 1300 我尝试了两种使用 Lanczos 插值来重新调整它们的方法 首先使用PIL图像 import numpy as np
  • 使 django 服务器可以在 LAN 中访问

    我已经安装了Django服务器 可以如下访问 http localhost 8000 get sms http 127 0 0 1 8000 get sms 假设我的IP是x x x x 当我这样做时 从同一网络下的另一台电脑 my ip
  • 如何从 R 读取 PDF 元数据

    我们很好奇 有没有一种方法可以从 R 读取 PDF 元数据 例如下面显示的信息 通过搜索我对此无能为力 r pdf metadata在当前的问题库中 非常欢迎任何指点 我想不出纯 R 的方法来执行此操作 但您可能可以安装您最喜欢的 PDF
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 如何使用 Ansible playbook 中的 service_facts 模块检查服务是否存在且未安装在服务器中?

    我用过service facts检查服务是否正在运行并启用 在某些服务器中 未安装特定的软件包 现在 我如何知道这个特定的软件包没有安装在该特定的服务器上service facts module 在 Ansible 剧本中 它显示以下错误
  • Apache 2 中的“捕获 SIGWINCH”错误是什么?

    我的服务器 ubuntu 8 04 LAMP运行drupal 6 当流量较高时 它会停止提供页面 重新启动apache2将不起作用 所以我必须重新启动该服务 我在 apache2 error log 中找到了这条消息 通知 捕获SIGWIN
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 向 Altair 图表添加背景实心填充

    I like Altair a lot for making graphs in Python As a tribute I wanted to regenerate the Economist graph s in Mistakes we
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • Conda SafetyError:文件大小不正确

    使用创建 Conda 环境时conda create n env name python 3 6 我收到以下警告 Preparing transaction done Verifying transaction SafetyError Th
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐

  • 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 前言 在我以前的博客中有这么两篇