如何在 macOS 上一键批量把 PPT 和 Word 文件转成 PDF
2023-05-02 00:01:43发布 浏览546次 信息编号:52115
友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。
如何在 macOS 上一键批量把 PPT 和 Word 文件转成 PDF
相信很多人都有或者曾经有过将多个PPT/Word文件转PDF的需求。 可能是一堆PPT课件手机bin文件打开方式,方便批注,也可能是一些Word文档,方便阅读。 一次只能打开一个文档,选择“另存为”,选择“PDF”,点击“保存”,关闭,再打开下一个文档。 当文档数量增加时,整个过程会变得很挫败。
最近研究了这个烦人的问题,做了一个动作,可以在不到2秒的时间内将多个PPT/Word文件转换成PDF(下图是该版本的demo)。
在视频中,我剪掉了转换过程中的等待时间。 可以看到每次转换一个文件都会有提示,全部转换完成后会有提示。
要实现这样的批量转换效果,请先下载,然后通过以下两个自动操作下载适合您电脑的:
这两个动作的用法是:
下载并执行任何操作后,您可以对其进行转换。 如果您想了解制作动作的过程,请继续阅读。
准备
如果要进行批量转换,则必须依赖命令,但该系列不支持通过命令进行文件格式转换。 经过一番查找,找到了一个免费的开源软件。 您可以通过从其官方网站下载 dmg 来安装最新版本。
通过查看可以看出,进行格式转换的命令如下:
soffice --convert-to pdf filename
其中包括要转换的文件。
如果要批量转换,只需:
1.将要转换的文件放入一个文件夹
2. cd到要转换的文件所在的文件夹
3.执行---to pdf *.ppt或---to pdf *.doc
命令
*为通配符,替换零个、单个或多个字符,*.ppt会匹配所有ppt格式的文件,如果要转换的文件中同时存在ppt和word文件,可以使用---to pdf *来实现, * 会匹配当前目录下的所有文件。
至此,已经实现了文件批量转PDF,但是每次打开手机bin文件打开方式,cd到对应文件夹,复制粘贴命令有点麻烦,所以我通过做动作进一步简化了。
版本动作
发送功能可以直接在所选文件上运行脚本而无需打开它。
在 中,按快捷键 ⌥ - ⌘ - E,新建一个动作,粘贴以下脚本。 这里我选择脚本语言。
#!/usr/bin/env python
#
# LaunchBar Action Script
#
import sys
import subprocess as sp
import os
import json
import shutil
my_env = os.environ.copy()
my_env["PATH"] = "/usr/local/bin:" + my_env["PATH"]
# Note: The first argument is the script's path
for arg in sys.argv[1:]:
fileFolder = os.path.dirname(arg)
new_file= os.path.basename(arg)
my_command = ["soffice", "--convert-to", "pdf", arg, "--outdir", fileFolder]
sp.check_output(my_command, env=my_env)
my_command = ["osascript", "notification.scpt", new_file, "Conversion Finished"]
sp.check_output(my_command, env=my_env)
my_command = ["osascript", "done.scpt", "All Finished!"]
sp.check_output(my_command, env=my_env)
for arg in sys.argv[1:]: 前面的代码负责导入库和声明环境变量, for arg in sys.argv[1:]: 之后,对每个选中的文件进行如下操作。 值得注意的两个命令是:
前者是格式转换命令,注意这里加“--”表示输出目录为选中文件所在目录,后者负责为每个完成的文件发送通知。
这个动作到这里就完成了,操作非常简单:
选择文件; 长按 ⌘ - 空格键或其他您自定义的快捷键,通过发送功能发送至; input to pdf,选择相应的,回车。
如文章开头的视频所示,整个过程不到2秒,可以将不同格式的文件统一转成PDF。
版本动作
为了方便那些没有它的人,这里做了一个相同动作的版本。 与相比,目前无法针对每个文件发送一个完成通知,只能在所有文件完成后发送一个通知。
一旦你下载了这个,这里是如何做的:
新建
在里面新建一个,选择这里,这样选择文件后,右键在服务中找到这个
一个一个地创建动作
然后按照图中标注的顺序创建动作:
把这里的“”改成“”,因为我们处理的对象是文档; 应用环境选择; 添加一个动作“Get Items”,因为我们处理的对象是 as中的一个文件,将“Pass Input”改为“as”; 贴下面这段代码,注意这里的代码和上一节的完全一样,只是去掉了通知部分的代码,因为我不知道怎么把通知脚本放在里面,您只能通过其他方式弹出通知; 添加弹出通知动作“ ”,您可以选择标题和副标题; 保存,大功告成,我在这里命名为“”。
#!/usr/bin/env python
#
import sys
import subprocess as sp
import os
import json
import shutil
my_env = os.environ.copy()
my_env["PATH"] = "/usr/local/bin:" + my_env["PATH"]
# Note: The first argument is the script's path
for arg in sys.argv[1:]:
fileFolder = os.path.dirname(arg)
new_file= os.path.basename(arg)
my_command = ["soffice", "--convert-to", "pdf", arg, "--outdir", fileFolder]
sp.check_output(my_command, env=my_env)
使用起来也很简单,选中要转换的文档,右击,在服务中选择“”即可。
最后使用效果
理论上,任何面向文件的命令都可以通过产生式或动作来简化。
支持的文件格式转换很多,除了PDF,还有epub/html等等,..的其他功能。
注:本文借鉴@Minja在Power+的文章《拿走所有常见格式,使用快速无损压缩图片 | 工作日志》。
> 你离高效生活只差一步:订阅Power+专栏
提醒:请联系我时一定说明是从星空网上看到的!