Пакетная командная строка Windows 7 для сохранения файла .pdf для файла Word 2013 .docx

Пакетная командная строка Windows 7 для сохранения файла .pdf для файла Word 2013 .docx

Я хотел бы иметь самый быстрый способ экспортировать свой отчет.docxфайл в.pdfи распространять его среди других, как только у меня появится новая, обновленная версия.

Я ищу подход с использованием командной строки, который автоматизирует следующие шаги, которые мне до сих пор приходилось выполнять вручную с помощью мыши:

File -> Save as -> Browse for location

Каковы параметры команды для пакетного файла?

решение1

Создайте глобальный макрос в Word 2013:

' The Word macro for exporting to PDF (the Word window closes after finishing)
Sub ExportToPDFext()
    ChangeFileOpenDirectory ThisDocument.Path
    ActiveDocument.ExportAsFixedFormat _
        OutputFileName:=Left(ActiveDocument.FullName, InStrRev(ActiveDocument.FullName, ".")) + "pdf", _
        ExportFormat:=wdExportFormatPDF, _
        OpenAfterExport:=False, _
        OptimizeFor:=wdExportOptimizeForPrint, _
        Range:=wdExportAllDocument, _
        From:=1, _
        To:=1, _
        Item:=wdExportDocumentContent, _
        IncludeDocProps:=True, _
        KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, _
        DocStructureTags:=True, _
        BitmapMissingFonts:=True, _
        UseISO19005_1:=False
    Application.Quit SaveChanges:=wdDoNotSaveChanges
End Sub

После этого вы можете преобразовать документ Word в PDF в командной строке:

"C:\Program Files\Microsoft Office\Office15\WINWORD.EXE" /mExportToPDFext /q "your_document_path.docx"

Окно Word даже не отобразится, поскольку оно настроено на закрытие после завершения работы макроса, а параметр /q отключает всплывающее окно при загрузке Word.

Вот альтернативные подробные инструкциина GitHub. Также опция контекстного меню позволяет выполнять пакетное преобразование даже без командной строки. Ее можно добавить в реестр. Для DOC и DOCX:

[HKEY_CLASSES_ROOT\Word.Document.8\shell\SavePDFhere]
@="Save PDF here"

[HKEY_CLASSES_ROOT\Word.Document.8\shell\SavePDFhere\command]
@="\"C:\\Program Files\\Microsoft Office\\Office15\\WINWORD.EXE\" /mExportToPDFext /q \"%1\""

[HKEY_CLASSES_ROOT\Word.Document.12\shell\SavePDFhere]
@="Save PDF here"

[HKEY_CLASSES_ROOT\Word.Document.12\shell\SavePDFhere\command]
@="\"C:\\Program Files\\Microsoft Office\\Office15\\WINWORD.EXE\" /mExportToPDFext /q \"%1\"" 

решение2

Для простого инструмента командной строки для пакетного преобразования вы можете использовать docx2pdf:https://github.com/AlJohri/docx2pdf/

Установить:

pip install docx2pdf

Бегать:

docx2pdf myFolderOfWordDocs

Отказ от ответственности: Я являюсь автором этого инструмента.

решение3

Вот решение отАлексей Ковтунадаптировано для текущей версии Office 16 (Office 360).

В макросе Word мне пришлось изменить ThisDocument.Pathна ActiveDocument.Path.

' The Word macro for exporting to PDF (the Word window closes after finishing)
Sub ExportToPDFext()
    ChangeFileOpenDirectory ActiveDocument.Path
    ActiveDocument.ExportAsFixedFormat _
        OutputFileName:=Left(ActiveDocument.FullName, InStrRev(ActiveDocument.FullName, ".")) + "pdf", _
        ExportFormat:=wdExportFormatPDF, _
        OpenAfterExport:=False, _
        OptimizeFor:=wdExportOptimizeForPrint, _
        Range:=wdExportAllDocument, _
        From:=1, _
        To:=1, _
        Item:=wdExportDocumentContent, _
        IncludeDocProps:=True, _
        KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, _
        DocStructureTags:=True, _
        BitmapMissingFonts:=True, _
        UseISO19005_1:=False
    Application.Quit SaveChanges:=wdDoNotSaveChanges
End Sub

Для реестра Office 16 использует немного другие пути:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Word.Document.8\shell\SavePDFhere]
@="Save PDF here"

[HKEY_CLASSES_ROOT\Word.Document.8\shell\SavePDFhere\command]
@="\"C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE\" /mExportToPDFext /q \"%1\""

[HKEY_CLASSES_ROOT\Word.Document.12\shell\SavePDFhere]
@="Save PDF here"

[HKEY_CLASSES_ROOT\Word.Document.12\shell\SavePDFhere\command]
@="\"C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE\" /mExportToPDFext /q \"%1\""

Связанный контент