Задать вопрос
@zveb

Как обработать ошибку JSObject из vbs-скрипта?

У меня есть vbs-скрипт, который ставит ватермарки на pdf-файлах. Он работает, но когда попадается подписанный pdf я
получаю ошибку. VBS-овкая "On Error Resume Next" не ловит ошибку... Как обработать ситуацию?

Ниже кусок кода и ошибка
...
Set objPDDoc = CreateObject("AcroExch.PDDoc")
objPDDoc.Open(dpath & fileobj.Name)
Set jso = objPDDoc.GetJSObject
Call jso.addWatermarkFromText("text", jso.app.constants.align.left,  "Arial", 14, jso.Color.blue, 0, jso.numPages, True, True, True, jso.app.constants.align.left, jso.app.constants.align.bottom, 0.4, 35, False, 0.9, False, 0, 1)
...


Ломается на строчке с 'Call jso.addWatermarkFromText')
---------------------------
Windows Script Host
---------------------------
Script: C:\pdf_sign_frd\print_sign.vbs
Line:   463
Char:   4
Error:  NotAllowedError: Запрещен доступ к данному свойству или методу.
Code:   800A03E9
Source: Acrobat JavaScript
  • Вопрос задан
  • 250 просмотров
Подписаться 2 Сложный 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
honor8
@honor8
Принципы быстродействия VBA в описании
Похоже, для vbs вариант один (т.е. для регистрации всех ошибок нужно писать отдельную функцию).
Второй, - перенести код на время отладки в среду vba (позднее связывание прекрасно работает).
Sub catch_error()
  Dim curerr As Object

  On Error Resume Next
    Set curerr = Err
    ' Установить Adobe Acrobat, создать COM-объект
    ' Set objPDDoc = CreateObject("AcroExch.PDDoc")
    ' ...
End Sub
Отладка: View -> Locals Window

Вариант третий: после создания объекта jso использовать для отладки консоль
jso.console.Show
jso.console.Clear
jso.console.println ("err!")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы