这个问题的灵感来自于我对 LaTeX 的使用,在 LaTeX 中,你通常会共享生成的 PDF,而不是源文件。我希望我的.docx
文档是源文件,而 PDF 是要共享的文件。因此,我希望每次保存文件时,MS Word 都会制作一个具有相同文档名称的 PDF .docx
。有没有办法实现这种行为?我用的是 Mac,但如果能在 Windows 电脑上也能做到这一点就好了。
示例:如果我创建了一个名为 的新文档mydocument.docx
,则 MS Word 会在同一位置创建一个名为 的副本mydocument.pdf
。每次我更改并保存 时,都会保存并覆盖 PDF mydocument.docx
。有点make
类似的操作?
答案1
Save
您可以通过覆盖用户从编辑器激活这两个函数时调用的和宏来实现这一点SaveAs
。这应该适用于支持直接保存为 PDF 的所有 Word 版本,即 Microsoft Word 2007 SP2 及更高版本(包括 Word for Mac 2008 及更高版本)。
实现此目的的完整宏如下,将其插入到您的活动模板中,以便它可以与您创建的所有文档一起使用。
有一个错误处理程序可以让您知道操作是否失败(很可能是因为您打开了 PDF,但 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