0

我正在尝试编写一个脚本以将 Word 文档保存为单文件网页 (.mht) 格式。我已经完成了编写实际“保存”命令的部分,但我被困在那里。这就是我想要做的:

# the_file is a variable which has been set here
tell application "Microsoft Word"
    activate
    open the_file
    save the_file as [type]
end tell

开放部分工作得很好。但是我不知道要为保存类型输入什么。也许更重要的是,我不知道在哪里可以找到可用类型的列表。任何人都可以帮忙吗?

编辑:评论者建议使用字典;我在那里找到了以下内容,但不知道如何解释它[我是一个 AS 菜鸟]。

[file format format document97/‌format document97/‌format template97/‌format template97/‌format text/‌format text line breaks/‌format dostext/‌format dostext line breaks/‌format rtf/‌format Unicode text/‌format Unicode text/‌format HTML/‌format web archive/‌format stationery/‌format xml/‌format document/‌format documentME/‌format template/‌format templateME/‌format PDF/‌format flat document/‌format flat documentME/‌format flat template/‌format flat templateME/‌format custom dictionary/‌format exclude dictionary/‌format documentAuto/‌format templateAuto] : The format in which the document is saved.
4

2 回答 2

2

试试format web archive。在列出的所有格式中,这种格式看起来最有可能。

于 2012-07-07T19:44:04.553 回答
0

1-使用命令时必须指定文档save,而不是文件路径。为了更好地控制,使用open带有属性的命令file name,它返回文档对象。

使用 this :open the_file时,它不返回任何内容,在这种情况下您必须使用front document,但它不可靠,例如,如果另一个文档随后打开。

2-在Applescriptsave中使用命令时Word不会更改扩展名,脚本必须替换扩展名。另外,我建议该命令有更多选项,而不是.save assave

答案已更新:格式化 HTML而不是Web 存档

set the_file to (choose file) 
   tell application "Microsoft Word"
        set thisDoc to open file name (the_file as string)
        set tName to my removeExtension(name of thisDoc)

        -- save in the same directory
    save as thisDoc file format format HTML file name (tName & ".htm") with HTML display only output
        close thisDoc saving no
    end tell

    on removeExtension(t)
        if t does not contain "." then return t
        set tid to text item delimiters
        set text item delimiters to "."
        set t to (text items 1 thru -2 of t) as string
        set text item delimiters to tid
        return t
    end removeExtension

如果您不想要HTML display only output,请使用without HTML display only output

于 2012-07-07T22:23:20.753 回答