mac如何利用 applescript 批量将word转换成pdf

2023-11-09

没有更多的废话,直接上代码,代码的注释应该很清楚了。

property word_docs : {"org.openxmlformats.wordprocessingml.document", "com.microsoft.word.doc"}
property default_path : (path to desktop) as alias
property Delim : {".docx", ".doc"}
property PDF : ".pdf"

set outPDF to {}

-- 打开文件选择对话框,只允许选择Word文档,并将所选文件存储在变量 selected_files 中
set selected_files to (choose file of type word_docs default location default_path with multiple selections allowed without invisibles and showing package contents)

-- 将Word文档的扩展名替换为PDF,并将PDF文件路径添加到 outPDF 列表中
set {TID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, Delim}
repeat with afile in selected_files
    copy item 1 of text items of (afile as text) & PDF to the end of outPDF
end repeat
set AppleScript's text item delimiters to TID

-- 使用Microsoft Word应用程序对象
tell application id "com.microsoft.Word"
    -- 将Microsoft Word窗口设置为活动窗口
    activate
    -- 循环遍历所选的Word文档
    repeat with i from 1 to count of selected_files
        -- 获取所选Word文档的POSIX路径
        set theOriginalPath to POSIX path of (item i of selected_files)
        -- 打开Word文档
        open theOriginalPath
        -- 等待0.5秒,以确保Word文档已完全打开
        delay 0.5
        -- 获取转换后的PDF文件的POSIX路径
        set theOutputPath to POSIX path of (item i of outPDF)
        -- 开始一个异常处理块,以处理Word文档访问权限请求的问题
        try
            -- 获取当前打开的Word文档对象
            tell active document
                -- 将Word文档另存为PDF文件
                save as it file name theOutputPath file format format PDF
                -- 关闭Word文档,并不保存更改
                close saving no
            end tell
        on error err
            -- 如果在保存Word文档为PDF文件时发生错误,则执行以下操作
            -- 使用System Events应用程序对象
            tell application "System Events"
                -- 按下ESC键,以关闭访问权限请求窗口
                key code 53
            end tell
            -- 等待2秒钟,以确保访问权限请求窗口已关闭
            delay 2
            -- 获取当前打开的Word文档对象
            tell active document
                -- 将Word文档另存为PDF文件
                save as it file name theOutputPath file format format PDF
                -- 关闭Word文档,并不保存更改
                close saving no
            end tell
        end try
    end repeat
end tell

-- 返回转换后的PDF文件路径列表
return outPDF

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

mac如何利用 applescript 批量将word转换成pdf 的相关文章

随机推荐

  • c++ fbxsdk安装配置_Linux上安装软件 - coydone

    安装JDK 1 下载JDK http www oracle com technetwork java javase downloads jdk8 downloads 2133151 html 2 使用XFTP工具导入linux 3 解压到
  • C++中如何调用C里面的函数

    经验证 下机制可行 Here is a setup that allows C to call C Maybe this method is appropriate for your need 1 use the not using pre
  • OpenLDAP配置TLS加密传输

    原文发表于cu 2016 07 04 参考文档 基于OpenSSL自建CA与颁发SSL证书 http seanlook com 2015 01 18 openssl self sign ca OpenLDAP with TLS http m
  • 计算机网络——TCP四次挥手过程详解

    上次写了TCP的三次握手 这次总结一下TCP的四次挥手的过程 理清楚为什么握手是三次 挥手需要四次 TCP是面向连接的 连接的建立过程被称为 三次握手 天下没有不散的宴席 有了连接的建立 就会有连接的断开 TCP断开的过程通常被称为 四次挥
  • 【安装arch+win11双系统老按不上

    最近安装arch win11双系统老按不上换了debain也不行 网上了查了下 换Ubuntu总算装上了 Linux和windows双系统 安装Win11要求计算机支持TPM2 0 还有安全启动 https www microsoft co
  • mybatis-plus实现自动填充数据如:数据库中createTime和updateTime

    关于数据库中每个表中 或者会有需要记录表中数据修改的时间 这个时候应该怎么做呢 当然我们的常规做法就是 首先在数据库中添加两个字段 然后在实体类中添加两个属性 private Date createTime private Date upd
  • 人工智能是怎么用在人脸识别上的?

    相信大家都有这样的生活经历 小区的门禁不知道从什么时候开始可以 刷脸 进入了 支付宝账号登录不知道从什么时候开始只需要扫脸了等等 这一切都是人脸识别技术在改变我们的生活 那么人脸识别技术究竟是什么 它是如何工作的呢 人工智能是怎么用在人脸识
  • 学习傅里叶变换的心得

    为什么要进行傅立叶变换 傅立叶变换究竟有何意义 如何用Matlab实现快速傅立叶变换 写在最前面 本文是我阅读了多篇相关文章后对它们进行分析重组整合而得 绝大部分内容非我所原创 在此向多位原创作者致敬 一 傅立叶变换的由来 关于傅立叶变换
  • UV 自动化展开

    采用ABF Angle Based Flattening 方法进行UV的展开 具体原版内容见 ABF plus plus Fast and Robust Angle Based Flattening UV展开可看为3d到2d的映射 而ABF
  • 在Linux程序中输出函数调用栈

    在Linux程序中输出函数调用栈 12 23 2013 程序发生异常时 将函数的调用栈打印出来 可以大大提高定位效率 Linux中提供了三个函数用来获取调用栈 1 2 3 4 5 6
  • react选项卡

    index jsx import React Component from react class table extends Component constructor props super props this state curre
  • 设计模式之自己实现动态代理

    基于前一篇设计模式之代理模式 我们来深入分析下JDK动态代理是如何实现的 并自己实现JDK动态代理 github代码 github动态代理代码 老铁 如果喜欢可以给看小星星 谢谢 1 JDK动态代理原理分析 1 通过被代理对象的引用 利用反
  • 红帽Linux安装教程

    红帽Linux安装教程 小白安装教程 服务于每一位想学习的人 目录 红帽Linux安装教程 前言 拥有一个虚拟机 下载镜像 新建虚拟机 系统安装 总结 前言 本虚拟机安装的是VM15 5 其他虚拟机也可以 使用红帽6的镜像 需要请私信 图中
  • win7下安装linux双系统完整版

    在网上搜索了很多资料 本人亲身经历 利用强大的easybcd 成功在win7下硬盘安装了red hat enterprise linux 6的双系统 具体过程如下 下载的下载的red hat enterprise linux 5文件为rhe
  • FTP服务器版本信息可被获取(CVE-1999-0614)漏洞修复

    FTP服务器版本信息可被获取 CVE 1999 0614 漏洞修复 风险等级 低 漏洞描述 NSFOCUS建议您采取以下措施以降低威胁 修改源代码或者配置文件改变缺省banner信息 漏洞CVE编号 CVE 1999 0614 服务器为Ub
  • Linux命令行使用技巧

    1 什么是Linux Linux操作系统 GUN Linux GUN是开源组织 Linux是指Linux内核 内核 系统核心程序 相当于人的大脑 负责系统程序和硬件分配 2 如何进入Linux的超级用户 1 选择not listed 进入超
  • 单链表拆分

    设 C a1 b1 a2 b2 an bn 为线性表 采用带头结点的单链表存放 设计一个就地算法 将其拆分为两个线性表 使得A a1 a2 an B bn b2 b1 B表采用头插法建立 LinkList Solve LinkList A
  • android ReactNative之Cannot find entry file index.android.js in any of the roots

    由于公司要求 想让我去了解一下ReactNative开发 说是为了以后开发的以后方便移植到IOS上 晕 没办法 照着React Native的中文开发文档配置环境https reactnative cn docs 0 51 getting
  • LeetCode【58】最后一个单词的长度

    题目 给定一个仅包含大小写字母和空格 的字符串 返回其最后一个单词的长度 如果不存在最后一个单词 请返回 0 说明 一个单词是指由字母组成 但不包含任何空格的字符串 示例 输入 Hello World 输出 5 1 public int l
  • mac如何利用 applescript 批量将word转换成pdf

    没有更多的废话 直接上代码 代码的注释应该很清楚了 property word docs org openxmlformats wordprocessingml document com microsoft word doc propert