Microsoft Word - Невозможно экспортировать файл PDF с использованием appleScript. - PullRequest
0 голосов
/ 21 апреля 2020

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

В Automator я использовал «Получить указанные элементы Finder» и «Запустить AppleScript».

Я выполнил и получил всплывающее сообщение в Microsoft Word

"Не удается экспортировать файл. Произошла ошибка, и ваш файл не может быть экспортирован сейчас. Повторите попытку позже . "

У кого-нибудь есть идеи, что случилось? Пожалуйста, помогите мне. Спасибо.

  • Microsoft Word: 16.35 (20030802)
  • Автоматизатор: 2.10 (492)
  • macOS: 10.15.4
on run {input, parameters}
    repeat with aFile in input
        tell application "Microsoft Word"
            launch
            try
                open aFile
                tell document 1

                    set fileName to aFile as text
                    set newName to "p" & (text 14 thru 15 of fileName) & "-" & (text 11 thru 12 of fileName) & "-" & (text 8 thru 9 of fileName)

                    set pdfOutput to (newName & ".pdf")
                    save as file name pdfOutput file format format PDF


                end tell
                close document 1 saving yes
            on error
                try
                    close document 1 saving no
                end try
            end try
        end tell
    end repeat
    return input
end run

Ответы [ 3 ]

1 голос
/ 22 апреля 2020

Если вы запустите свой скрипт как есть, PDF-файл окажется в папке, подобной /Users/<your_name>/Library/Containers/com.microsoft.Word/Data/Documents/ (как @ слегка заразительный комментарий).

Попробуйте это так:

on run {input, parameters}
    repeat with aFile in input
        tell application "Finder" to set theFolder to (folder of aFile) as text -- !!!
        tell application "Microsoft Word"
            launch
            try
                open aFile
                tell document 1

                    set fileName to aFile as text
                    set loc to location of aFile
                    set newName to "p" & (text 14 thru 15 of fileName) & "-" & (text 11 thru 12 of fileName) & "-" & (text 8 thru 9 of fileName)

                    set pdfOutput to (theFolder & newName & ".pdf") -- !!!
                    save as file name pdfOutput file format format PDF


                end tell
                close document 1 saving yes
            on error
                try
                    close document 1 saving no
                end try
            end try
        end tell
    end repeat
    return input
end run

Изменения в строках с -- !!! в качестве комментариев

0 голосов
/ 23 апреля 2020

Я застрял на этом коде в течение длительного времени. Наконец, это работает!

Большое вам спасибо, @ слегка заразительный и @ Дирк.

У меня есть сотни файлов для преобразования и переименования. Этот код сэкономит мне много времени.

on run {input, parameters}
   repeat with aFile in input

       tell application "Finder" to set theFolder to (folder of aFile) as text

       tell application "Microsoft Word"
           launch
           try
               open aFile
               tell document 1

                   set fileName to the name as text
                   set newName to "p" & (text 14 thru 15 of fileName) & "-" & (text 11 thru 12 of fileName) & "-" & (text 8 thru 9 of fileName)

                   set pdfOutput to (theFolder & newName & ".pdf")
                   save as file name pdfOutput file format format PDF


               end tell
               close document 1 saving yes
           on error
               try
                   close document 1 saving no
               end try
           end try
       end tell
   end repeat
   return input
end run
0 голосов
/ 22 апреля 2020

Если я понял ваше намерение, проблема заключается в следующей строке:

set fileName to aFile as text

, которую вы должны изменить на

set fileName to the name as text

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

set fileName to aFile as text

, что означает, что fileName содержит полный путь AFS пути к файлу документа + с разделителями ":" и выражениями например,

text 14 thru 15 of fileName

- это выбор символов из пути , возможно, включая символы ":", что может вызывать возникшую проблему, в то время как я думаю, что ваша цель - выбрать символы из имя файла .

(Кроме того, я не рассматривал сценарий, в котором имя файла не содержит 8 или более символов, на которые в данный момент ссылается ваш код.)

...