【ppt2svg svg2png/jpg】ppt转图片解决方案

ppt处理工具

  • pptx 免费,功能有限,会有一些问题
  • aspose 收费,功能丰富,有水印
  • spire 收费,功能丰富,有水印
  • 基于js/vue的方案

任务:PPT转图片

为了跳过水印,有几种间接的方案

方案一

推荐这种,结合多线程多进程加速导出速度,充分利用cpu

  • ppt -> svg
  • svg -> png/jpg

linux

apt-get update
apt-get install -y --no-install-recommends libgdiplus libc6-dev
pip install aspose.slides
pip install CairoSVG   # 如果缺失字体,需要进行安装

windows

pip install aspose.slides
pip install CairoSVG
import io
import cairosvg
import aspose.slides as aspose_slidesppt_path='path/to/ppt'
presentation = aspose_slides.Presentation(ppt_path)
for i, slide in enumerate(presentation.slides):buffer = io.BytesIO()slide.write_as_svg(buffer)buffer.seek(0)svg_data = buffer.read().decode("utf-8")...(删除svg中的水印)cairosvg.svg2png(bytestring=svg_data.encode("utf-8"), write_to=f'test/{i}.png', scale=4,# dpi=xx,# ...其它的参数)

方案二

  • pptx -> pdf
  • pdf -> png/jpg

linux

sudo apt update && sudo apt upgrade
sudo apt-get install libreoffice
libreoffice --headless --convert-to pdf /path/to/ppt

OR

apt update && apt install python3-uno unoconv
sed -i 's|#!/usr/bin/env python3|#!/usr/bin/python3|' /usr/bin/unoconv
unoconv -f pdf /path/to/ppt

THEN

pip install PyMuPDF

import fitzpdf_path = ''
pdfDoc = fitz.open(pdf_path)
for i, page in enumerate(pdfDoc.pages()):rotate = int(0)# 每个尺寸的缩放系数为1.3,这将为我们生成分辨率提高2.6的图像。# 此处若是不做设置,默认图片大小为:792X612, dpi=72# pix = page.get_pixmap()zoom_x = 6zoom_y = 6# (1.33333333-->1056x816)   (2-->1584x1224)  (3-->3572x2526)# x和y的值越大越清晰,图片越大,但处理也越耗时间,这里取决于你想要图片的清晰度# 默认为1.333333,一般日常使用3就够了,不能设置太大,太大容易使电脑死机mat = fitz.Matrix(zoom_x, zoom_y)pix = page.get_pixmap(matrix=mat, dpi=None, colorspace='rgb', alpha=False)pix.save(f'images/{i}.png')

OR
sudo apt-get install imagemagick

convert -density 250 -quality 100 tmp-good.pdf slide-%d.jpg

win

安装libreoffice

...

方案三

只能win系统,使用PowePoint/WPS接口
pip install comtypes

import os
from comtypes.client import CreateObject
#
初始化PowerPoint应用
powerpoint = CreateObject("Powerpoint.Application")  # KWPP.Application
powerpoint.Visible = 1# 打开PPT文件
pptx_path = os.path.abspath(pptx_path)
ppt = powerpoint.Presentations.Open(pptx_path)# 遍历每个幻灯片并保存为图片
save_path = 'slides'
fori, slide in enumerate(ppt.Slides):  # 0->image_path = f"{save_path}/slide_{i}.png"image_path = os.path.abspath(image_path)slide.Export(image_path, "PNG")# 关闭PPT文件和PowerPoint应用
ppt.Close()
powerpoint.Quit()

方案四

  • 使用linux-WPS

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/880135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式系统的概念与设计模式

概念 定义:分布式系统是指将数据和计算任务分散到多个独立的计算机上,这些计算机通过网络进行通信和协作,共同对外提供服务。分布式系统不仅提高了系统的可靠性和可扩展性,还增强了系统的并发处理能力和数据管理能力。 特点&…

【操作系统强化】王道强化一轮笔记

第一章 计算机系统概述 考点1 操作系统的概念、特征和功能 1. 2. 考点2 内核态与用户态 1. 2.用户态和内核态之间的切换本质上就是应用程序和操作系统对CPU控制器的切换 考点3 中断和异常 1. 2. 考点4 系统调用 1. 2. 3.C 考点5 操作系统引导 1. 2. ①磁盘的物理格式化&…

React-Native 中使用 react-native-image-crop-picker 在华为手机上不能正常使用拍照功能

背景: React-Native 0.66 中使用 react-native-image-crop-picker 在安卓 华为手机上不能正常使用拍照功能, 其他品牌正常 代码如下: import ImagePicker from react-native-image-crop-picker;ImagePicker.openCamera(photoOptions).then(image > {callback(image);}) …

Linux 自旋锁

当内核发生访问资源冲突的时候,可以有两种锁解决方案: 1.原地等待 2.挂起当前进程,调度其它进程执行 spinklock 是内核中提供的一种比较常见的锁机制,自旋锁是“原地等待” 的方式解决资源冲突的,即,一个…

mysql如何避免插入重复数据

创建唯一索引(重复则忽略,不会报错) 创建方式1 -- 创建表时添加唯一键 CREATE TABLE goodsapp_colors (id int AUTO_INCREMENT PRIMARY Key,colorname varchar(50) not null unique,colorImage varchar(50) not null unique ); 创建方式2…

万恶的goto关键字

提到goto, 大家一定能想到迪杰斯特拉发表的著名论文goto有害论(Go To Statement Considered Harmful)。正是它推动了结构化程序设计语言的发展。公正地说,goto并非那么可怕,机器码/汇编码本身支持跳转,就是goto的底层形态。计算机程序中条件选…

库仑定律-库仑力-两个电荷之间静电力的计算公式

图中: q1,q2 为两个电荷r 为电荷间的距离 r ^ 1 , 2 \widehat{r}_{1,2} r 1,2​ 为从 q1 指向 q2 的单位向量 F ⃗ 1 , 2 \vec{F}_{1,2} F 1,2​ 为 q1 施加到 q2 上的静电力 公式: F ⃗ 1 , 2 q 1 q 2 K r 2 r ^ 1 , 2 \vec{F}_{1,2} \f…

七种修复错误:由于找不到msvcr110.dll 无法继续执行的方法

当你在运行某些程序时遇到“找不到msvcr110.dll”的错误提示,这通常意味着你的系统缺少了Microsoft Visual C 2012 Redistributable包中的一个重要文件。这个DLL文件是Microsoft Visual C Redistributable的一部分,用于支持许多使用Visual C编写的软件和…

FastAPI挂载静态资源

FastAPI挂载静态资源 使用场景:前后端不分离,后端挂载图片,css,js等静态资源,给客户端响应html页面 首先假设项目根目录为app,app目录下的static为存放静态资源的目录 #app/main.py from fastapi import FastAPIapp…

.netCore运行的环境WindowsHosting和dotnet-sdk区别

Windows Hosting和dotnet-sdk是.NET Core的两个不同组件,各自扮演着不同的角色。‌ Windows Hosting‌:这是专门为在Windows服务器上运行ASP.NET Core应用程序设计的组件。它包含了IIS(Internet Information Services)集成模块,使得ASP.NET …

Tornado 是一个 Python 异步网络库和 web 框架

Tornado 是一个 Python 异步网络库和 web 框架,它最初由 FriendFeed 开发,后来被 Facebook 收购并开源。Tornado 因其非阻塞的 I/O 操作和优秀的性能而广受欢迎,特别是在需要处理大量并发连接的应用中。Tornado 的底层实现主要依赖于 Python …

【软件测试】如何设计测试用例? 设计测试用例常用的方法.

目录 一.什么是测试用例?二.总体设计测试用例的万能公式.2.1 功能性能界面兼容易用安全2.2 弱网测试2.3 安装卸载测试. 三. 常用设计具体测试用例的方法3.1 等价类3.2 边界值3.3 正交法3.3.1 正交表3.3.2 如何设计正交表,并根据正交表编写测试用例 3.4 判定表法3.4.1 根据判定…

《Nginx核心技术》第18章:基于主从模式搭建Nginx+Keepalived双机热备环境

作者:冰河 星球:http://m6z.cn/6aeFbs 博客:https://binghe.gitcode.host 文章汇总:https://binghe.gitcode.host/md/all/all.html 星球项目地址:https://binghe.gitcode.host/md/zsxq/introduce.html 沉淀&#xff0c…

Linux下搭建iSCSI共享存储-(Linux-IO Target)

Linux下搭建iSCSI共享存储-(Linux-IO Target) 相比昂贵的商业用的ipsan存储,软件实现的ipsan方案更加经济实惠,适用于一般的测试环境。Linux-IO Target是Linux内核中的一个软件,用于实现各种SCSI Target。它支持的SAN技术包括Fibre Channel、…

光子架与电子架 -- 光子架与电子架

电子架 指插放交叉板、OTU单板、支/线路板、保护类单板的子架。 在通用型平台子架和平台子架中如果仅插放OTU单板(非中继模式)视为电子架。光电混合的子架视为电子架。 电子架主要实现将客户侧信号转换成标准波长的光信号,供光子架调度。 光子…

p18 docker镜像原理之联合文件系统,p19 docker镜像分层的理解

镜像是什么 镜像其实就是一种轻量级的,可执行的一种软件包,用来打包基于环境开发的软件,里面可以包括代码,环境,数据库,配置文件等信息 如何得到镜像? 可以从镜像仓库下载比方说dockerhub 比…

jenkins分布式构建

Jenkins分布式构建是一种将构建任务分散到多个机器上的方法,以提高构建效率和并行处理能力 1. 架构 主节点(Master):负责管理构建任务、调度和监控所有从节点。从节点(Slave):实际执行构建任务…

JavaEE: 深入探索TCP网络编程的奇妙世界(六)

文章目录 TCP核心机制TCP核心机制九: 面向字节流TCP核心机制十: 异常处理 小小的补充(URG 和 PSH)~TCP小结TCP/UDP 对比用UDP实现可靠传输(经典面试题) 结尾 TCP核心机制 上一篇文章JavaEE: 深入探索TCP网络编程的奇妙世界(五) 书接上文~ TCP核心机制九: 面向字节流 TCP是面…

C++vector类的模拟实现

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 模拟实现vector类 收录于专栏【C语法基础】 本专栏旨在分享学习C的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 前置说明 1. vecto…

密集行人数据集 CrowdHumanvoc和yolo两种格式,yolo可以直接使用train val test已经划分好有yolov8训练200轮模型

密集行人数据集 CrowdHuman voc和yolo两种格式,yolo可以直接使用 train val test已经划分好 有yolov8训练200轮模型。 CrowdHuman 密集行人检测数据集 数据集描述 CrowdHuman数据集是一个专为密集行人检测设计的数据集,旨在解决行人密集场景下的检测挑…