在 MS Word 中自动保存 PDF

Hol*_*ene 5 pdf microsoft-office make microsoft-word

这个问题的灵感来自于我对 LaTeX 的使用,您通常在其中共享生成的 PDF,而不是源文件。我希望我的.docx文档是源文件,而 PDF 是要共享的文件。因此,我希望每次保存.docx文件时都让 MS Word 使用相同的文档名称制作 PDF 。有没有办法获得这种行为?我使用的是 mac,但如果能够在基于 Windows 的计算机上执行此操作,那就太好了。

示例:如果我创建了一个名为 的新文档mydocument.docx,则 MS Word 会在名为mydocument.pdf. 每次我更改和保存 .pdf 时,都会保存和覆盖 PDF mydocument.docx。有点类似make的动作?

Ada*_*dam 5

您可以通过覆盖用户从编辑器激活这两个功能时调用的SaveSaveAs宏来实现这一点。这应该适用于支持直接另存为 PDF 的所有 Word 版本,即 Microsoft Word 2007 SP2 及更高版本(包括 Word for Mac 2008 及更高版本)。

实现此目的的完整宏如下,将其插入到您的活动模板中,以便它适用于您创建的所有文档。

有一个错误处理程序可以让您知道操作是否失败(很可能是因为您打开的 PDF 被锁定以供查看)。如果在捕获事件时遇到任何问题,您还可以尝试使用应用程序事件代替覆盖。

' Override File -> Save
Public Sub FileSave()

    ActiveDocument.Save
    SaveActiveDocumentAsPdf

End Sub

' Override File -> Save As...
Public Sub FileSaveAs()

    ActiveDocument.SaveAs
    SaveActiveDocumentAsPdf

End Sub

Sub SaveActiveDocumentAsPdf()

    On Error GoTo Errhandler

    If InStrRev(ActiveDocument.FullName, ".") <> 0 Then

        Dim strPath As String
        strPath = Left(ActiveDocument.FullName, InStrRev(ActiveDocument.FullName, ".") - 1) & ".pdf"

        ActiveDocument.SaveAs FileName:=strPath, FileFormat:=wdFormatPDF
    End If

    On Error GoTo 0

    Exit Sub

Errhandler:

    MsgBox "There was an error saving a copy of this document as PDF. " & _
    "Ensure that the PDF is not open for viewing and that the destination path is writable. Error code: " & Err

End Sub
Run Code Online (Sandbox Code Playgroud)