Захватите вывод из командной строки «Печать в PDF» и сохраните - PullRequest
0 голосов
/ 09 декабря 2018

У меня возникли проблемы с печатью защищенного PDF-файла в другого PDF-файла непосредственно из командной строки (вызывается из vba через Adobe "Печать в PDF-файл) и сохранением его:

Excel VBA, «Печать» защищенного PDF в другой файл PDF с помощью Shell

Мне нужно сделать это, чтобы обойти защищенный PDF, чтобы иметь возможность преобразовать его в текст. Как и ПК компанииУ меня есть доступ только к Adobe и Nitro. Я пытался использовать команду Shell и пришел к следующему:

"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe"  /t C:\Users\1402\Desktop\test2\20171207fmbnit.pdf "Microsoft Print to Pdf" >> "C:\Users\1402\Desktop\Testing\testq24.pdf" /s

, который периодически создает или сохраняет файл PDF размером 0 КБ впапка, указанная в команде, с ошибкой, указывающей, что файл поврежден, или делает это, а затем запрашивает окно сохранения как, которое создает правильный файл. Чтобы обойти это, есть способ перехватить вывод из этой строки через shell() в VBA и завершите «Сохранить как» оттуда? Что-то вроде:

Dim oExec As Object
    Dim oOutput As Object
    Set oExec = oShell.Exec(sCmd)
    Set oOutput = oExec.StdOut

, где oOutput - это файл PDF, и команда такая же, как указано выше.

...