在MS Word中自动保存PDF


3

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

示例:如果我创建一个我命名的新文档 mydocument.docx,然后MS Word在名为的同一位置制作副本 mydocument.pdf。每次更改和保存时,PDF都将被保存和覆盖 mydocument.docx。有点 make 像行动?


您可以使用doPdf,但它无法完全按照您的需要工作。在这种情况下,每次都需要通过将doPdf作为打印选项进行打印。
Dj.

这取决于您如何创建PDF,但您将创建一些宏来保存.docx然后还创建PDF。它基本上会做你手动做的事情。
Max Wyss

Answers:


3

你可以通过覆盖来实现这一目标 SaveSaveAs 当用户从编辑器激活这两个函数时调用的宏。这应该适用于支持直接以PDF格式保存的所有Word版本,即Microsoft Word 2007 SP2及更高版本(包括Word for Mac 2008及更高版本)。

下面是实现此目的的完整宏,将其插入到您的活动模板中,以便它可以与您创建的所有文档一起使用。

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

' 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

大!我相信这是我正在寻找的东西。当我创建宏并尝试保存文件(有或没有现有PDF)时,我收到错误代码438 ...
Holene

@Holene,是的,我做了一些阅读,看起来只有Word 2010及以上版本支持SaveAs2方法,所以我做了一个编辑,使用了SaveAs方法(几乎是同样的东西),试一试。请注意上面描述的Word 2007所需的版本。
Adam

我正在使用Word 2011 for Mac。它还应该是一个问题吗?
Holene

我对Word for Mac没有任何经验,但只是为了确保,你修复了这条线吗? ActiveDocument.SaveAs FileName:= strPath,FileFormat:= wdFormatPDF。你还得到同样的错误吗?
Adam

现在得到错误4198 ...现在我无法指定保存位置。
Holene
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.