PDF de salvamento automático no MS Word

3

Essa pergunta é inspirada pelo uso do LaTeX, em que você geralmente compartilha o PDF gerado, não o arquivo de origem. Eu quero que meus .docx documentos sejam arquivos de origem, com PDFs sendo os arquivos para compartilhar. Portanto, gostaria que o MS Word criasse um PDF com o mesmo nome de documento toda vez que eu salvasse o arquivo .docx . Existe uma maneira de obter tal comportamento? Eu estou em um mac, mas seria bom poder fazer isso em um computador baseado em Windows também.

Exemplo: Se eu fizer um novo documento que nomeia mydocument.docx , o MS Word fará uma cópia no mesmo local chamado mydocument.pdf . O PDF será salvo e sobrescrito para cada vez que eu mudar e salvar mydocument.docx . Uma ação parecida com make ?

    
por Holene 24.11.2014 / 12:19

1 resposta

3

Você pode conseguir isso substituindo as macros Save e SaveAs que são chamadas quando o usuário ativa essas duas funções no editor. Isso deve funcionar em todas as versões do Word que suportam salvar diretamente como PDF, que é o Microsoft Word 2007 SP2 e superior (incluindo o Word para Mac 2008 e superior).

A macro completa para obter isso está abaixo, insira-a no modelo ativo para que ela funcione com todos os documentos que você criar.

Existe um manipulador de erro que informa se a operação falhou (provavelmente porque você tem o PDF aberto, que fica bloqueado para visualização). Se houver algum problema na captura dos eventos, você também poderá tentar os eventos do aplicativo no lugar das substituições.

' 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
    
por 26.11.2014 / 00:12