Vba acrobat acropddoc класс не зарегистрирован
Обновлено: 08.07.2024
Я пытаюсь объединить PDF в один PDF файл с помощью vba. Я бы не хотел использовать инструмент plug-in и попытался использовать acrobat api ниже.
Любая помощь будет оценена по достоинству.
ОТВЕТЫ
Ответ 1
Вам необходимо установить/использовать Adobe Acrobat.
Я использовал ссылки этого ресурса re
EDIT: замена массива для автоматически генерируемого (в основном, основного PDF файла, заданного пользователем) списком путей к pdf файлам, которые вы хотите вставить в первичный pdf файл)
Вы можете использовать что-то вроде ниже, чтобы создать сборник документов, который будет вставлен в ваш основной документ. Первым файлом в collection будет file который вы вставляете, как и в первом примере. Затем назначьте путь папки к папке с files PDF, которые вы хотели бы видеть вставленными в ваш основной документ, в inputDirectoryToScanForFile . loop в этом коде добавит путь к каждому файлу PDF в этой папке в вашу collection . Это пути, которые позже используются в вызовах API adobe для вставки pdf в ваш основной.
Код, который берет первичный файл и вставляет другие файлы PDF в этот файл:
Ответ 2
Это мое понимание вашего вопроса:
Требования:
• Объединенная серия PDF файлов, расположенных в одной и той же папке книги, содержащей процедуру
• Имена файлов Pdf переходят от firstpdf1.pdf к firstpdfn.pdf где n - общее количество файлов, которые должны быть объединены
Давайте рассмотрим ваш исходный код:
• Все переменные должны быть объявлены:
• В этой строке отсутствует разделитель путей "\" :
Он должен быть PDFfileName = Dir(ThisWorkbook.Path & "\" & "firstpdf" & n & ".pdf")
• Поэтому эта строка всегда возвращает "" (в файле ThisWorkbook.Path файл pdf не найден):
If PDFfileName <> "" Then
Дополнительно:
• Эти строки вернутся: Error - 424 Object required для объектов objCAcroPDDocSource и objCAcroPDDocDestination не был инициализирован:
objCAcroPDDocSource.Open ThisWorkbook.Path & "pathwithpdfs" & PDFfileName
If objCAcroPDDocDestination.InsertPages(objCAcroPDDocDestination.GetNumPages - 1, objCAcroPDDocSource, 0, objCAcroPDDocSource.GetNumPages, 0) Then
• objCAcroPDDocDestination никогда не открывался.
Решения: эти процедуры используют библиотеку Adobe Acrobat
Библиотека Adobe Acrobat - ранняя граница
Для того, чтобы создать Reference Vb в Adobe библиотеку в редакторе VBA меню нажмите Tools "Ссылки then select the Adobe Acrobat Library in the dialog window then press the , in the dialog window then press the OK" кнопку.
Библиотека Adobe Acrobat - Поздняя ссылка
Нет необходимости создавать ссылку Vb для библиотеки Adobe
Ответ 3
Приведенный ниже код, полученный при переполнении стека, перечислит все подпапки в папке.
Этот код объединит все файлы PDF в подпапке и сохранит выходные данные в выбранной папке назначения.
Ответ 4
У меня нет точной оценки для вашей проблемы, однако у меня был подобный, а именно, что я хотел добавить поля в pdf от VBA.
Я могу сказать вам, что Adobe имеет JavaScript API, который вы можете контролировать через vba.
И это часть кода, который я использовал в VBA для управления полями в PDF файлах.
Вероятно, вам стоит посмотреть на метод insertPages в API.
Все, что возможно, это использование сборки в ссылке с VBA на Acrobat. Тем не менее, я нашел его очень ограниченным, и я не работал с ним. Есть только несколько доступных объектов, вот несколько примеров:
Репутация: нет
Всего: нет
Всем доброго времение суток.
Суть проблемы: Есть программа, которая будет открывать pdf-файлы (соответственно используя acrobat reader). Т.е. аналогично работы с Word и Excel.
В References нашел "Adobe Reader 8.0 Type Library", в нем нашел такие вещи как AcroApp и AcroPDDoc
Пишу аналогично как с Word:
Код |
Dim AcrobatApp As Acrobat.AcroApp Dim AcrobatPDF As Acrobat.AcroPDDoc |
Помогите пожалуйста, не понимаю почему так.
Репутация: нет
Всего: нет
Есть хоть кто-нибудь, работавший с Acrobat через VB ?
Как открыть pdf через VB ?
Репутация: 34
Всего: 453
Файл будет открыт в приложении по умолчанию (у меня это, например, foxit reader). Если нужен непременно акробат - замените start на acroread.exe (или как он там. ) или добавьте его после start
О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.
Репутация: нет
Всего: нет
Я правильно понимаю, что в таком формате воздействовать на приложение через VB будет нельзя ?
Возмежен ли вариант, при котором я pdf открываю как txt , а искомое слово ищу в нём как набор ASCII символов ? (или через другой алгоритм).
Я конечно понимаю, что точность такого поиска не 100%, но при малом количестве символов довольно высока.
Репутация: 34
Всего: 453
да, если в системе имеется СОМ-сервер, поддерживающий такие возможности при работе с PDF
А для чего это вообще нужно?
О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.
Репутация: нет
Всего: нет
Я тут тему создавал про поиск в doc-файле , тут аналогичная проблема, необходимо осуществить поиск слова в pdf-файле.
Репутация: 34
Всего: 453
О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.
Репутация: нет
Всего: нет
Спасибо, но я вот одно не могу понять: все в VB есть и объекты, и методы, так почему же не работает?
Блин всё перепробовал, никак 429-ю не убрать. На форуме облазил все темы по 429-ой ошибке, все не то.
Подскажите кто-нибудь почему же всё-таки она вылезает ?
Репутация: нет
Всего: нет
Скачал SDK. Нашел в документации пример
Код |
Dim app As Object, avdoc As Object, pageview As Object |
Все равно выдает ошибку №429 .
Не понимаю.
Репутация: 34
Всего: 453
О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.
Репутация: нет
Всего: нет
В 3-й строке выдает ошибку:
Репутация: 34
Всего: 453
Попробуйте задать определение для app не Object вообще, а конкретный тип.
О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.
Репутация: нет
Всего: нет
Цитата |
Проверьте через Object Browser правильность имени объекта. |
Вижу через него всё: и обьекты, и все связанное с ним (все методы, команды и константы)
Цитата |
Попробуйте задать определение для app не Object вообще, а конкретный тип. |
Я код в первом ссобщении привел. Я там четко задал, при этом, при компиляции VB6 не дал ошибку, что "обджэкт класс" не задан.
Репутация: 34
Всего: 453
Вообще ошибка 429 свидетельствует о том, что ID библиотеки, интерфейса или класса не найдены, либо интерфейс изменился. Попробуй те заново выполнить регистрацию Adobe Reader 8.0 Type Library, проверьте, что ActiveX Compatibility в настройках компиляции установлена в Binary. в крайнем случае проверьте регистрацию компонента вручную.
Кстати, а вы часом проект не переименовывали? в другой каталог не переносили?
О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.
Репутация: нет
Всего: нет
Цитата |
Попробуй те заново выполнить регистрацию Adobe Reader 8.0 Type Library |
Я полностью переустанавливал Acrobat Reader 8.0, или это не то?
Цитата |
проверьте, что ActiveX Compatibility в настройках компиляции установлена в Binary. |
Цитата |
Кстати, а вы часом проект не переименовывали? в другой каталог не переносили? |
Нет. Более того создавал новый проект, вписывал тотже код - все равно не работает.
Запрещается!
1. Публиковать ссылки на вскрытые компоненты
2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
- Литературу по VB обсуждаем здесь
- Действия модераторов можно обсудить здесь
- С просьбами о написании курсовой, реферата и т.п. обращаться сюда
- Вопросы по реализации алгоритмов рассматриваются здесь
- Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
- FAQ раздела лежит здесь!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.
[ Время генерации скрипта: 0.1505 ] [ Использовано запросов: 21 ] [ GZIP включён ]
Я использую VBA в качестве платформы для некоторых манипуляций PDF. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу получить объект PDF для сохранения, если объект PDF не был открыт. Ниже приведен фрагмент кода, который вставляет страницы в объект PDF, а затем сохраняет объект.
У меня есть Microsoft Access Runtime не полная версия Microsoft Access, когда я создаю объект в Excel VBA Set objAccess = CreateObject(Access.Application) Это время я получаю Ошибка 429 ActiveX component can't create object. Подскажите, как создать объект?
Чтобы создать Acro-объект, вы должны использовать AcroExch. Так что используйте: Установите AC_PD = CreateObject("AcroExch.PDDoc"). Вы найдете еще много-много примеров на этом сайте. Все будет работать, если у вас есть полная версия Adobe Acrobat (не только для чтения)
Похожие вопросы:
В одном из проектов моего приложения есть файл .Cs, и я хочу создать объект класса(в каком-то другом проекте внутри приложения), который находится внутри файла .cs, я попытался добавить ссылку на.
Я пытаюсь создать макрос, который копирует диапазон ячеек с настроенным шаблоном с текстом и вставляет этот шаблон в другой диапазон ячеек на другом листе одной книги. Вот что у меня есть: Option.
Я использую VBA в качестве платформы для некоторых манипуляций PDF. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу получить объект PDF для сохранения, если объект PDF не был.
У меня есть Microsoft Access Runtime не полная версия Microsoft Access, когда я создаю объект в Excel VBA Set objAccess = CreateObject(Access.Application) Это время я получаю Ошибка 429 ActiveX.
Я использую VBA для создания экземпляра word в настоящее время, добавляя ссылку на библиотеку, но это вызывает проблему, потому что существуют некоторые машины без word. Это мгновенно вызывает.
Можно ли создать объект в Twig? Я хочу добраться до объекта с расширением twig, например, следующим кодом: <
При создании нового листа можно задать имя с помощью .name = Name Here! , однако объект VBA по-прежнему будет иметь имя Sheet1. Как создать новый лист и задать имя объекта VBA? Обратите внимание.
Для взаимодействия VBA с IE в приватном режиме я использую этот код: Dim sh As Object, oWin As Object Dim wss As Object Dim IE as Object Set wss = CreateObject(WScript.Shell) Set sh =.
Я только что обновился с 1.1 до 2.1 , и когда я запускаю: dotnet ef migrations add spottedmahn , я получаю: Невозможно создать объект типа 'MyDbContext'. Добавьте реализацию.
Я пытаюсь объединить PDF-файлы в один pdf-файл с использованием vba. Я хотел бы не использовать инструмент plug in и попытался с Acrobat api ниже.
Я пробовал что-то вроде, но не могу заставить его работать. Я не получаю ошибки msg, но, возможно, мне не хватает деталей.
любая помощь будет оценили.
необходимо установить / запустить adobe acrobat.
я использовал этот ресурс re метод ссылки
EDIT: замена массива на автоматически сгенерированный (в основном, основной pdf-файл, все еще установленный пользователем) список путей к PDF-файлам, которые вы хотите вставить в основной pdf-файл)
вы можете используйте что-то вроде ниже, чтобы создать коллекцию документов для вставки в основной документ. Первый файл в collection будет file что вы вставляете в, то же, что и в первом примере. Затем назначьте путь к папке папки с pdf files что вы хотели бы видеть вставленным в ваш основной документ в inputDirectoryToScanForFile . The loop в этом коде будет добавлен путь каждого pdf-файла в этой папке к вашему collection . Эти пути позже используются в Adobe API вызовы для вставки pdf в основной.
код, который берет основной файл и вставляет другие PDF-файлы в этот файл:
это мое понимание вашего вопроса:
требования:
• комбинированный ряд pdf-файлов, расположенных в одной папке рабочей книги, содержащей процедуру
* имена Pdf-файлов идут от firstpdf1.pdf до firstpdfn.pdf здесь n - общее количество файлов, которые будут объединены
давайте рассмотрим ваш исходный код:
• все переменные должны быть заявил:
• в этой строке отсутствует разделитель пути "\" :
• поэтому эта строка всегда возвращает "" (файл pdf не найден в ThisWorkbook.Path ):
If PDFfileName <> "" Then
дополнительно:
• эти строки вернулись бы: Error - 424 Object required объекты objCAcroPDDocSource и objCAcroPDDocDestination не были инициализировано:
objCAcroPDDocSource.Open ThisWorkbook.Path & "pathwithpdfs" & PDFfileName
If objCAcroPDDocDestination.InsertPages(objCAcroPDDocDestination.GetNumPages - 1, objCAcroPDDocSource, 0, objCAcroPDDocSource.GetNumPages, 0) Then
• о objCAcroPDDocDestination никогда не был открыт.
решения: эти процедуры используют библиотеку Adobe Acrobat
библиотека Adobe Acrobat-ранняя привязка
чтобы создать ссылку Vb на библиотеку Adobe в меню редактора VBA, нажмите ` then select the Adobe Acrobat Библиотека in the dialog window then press the OK` кнопка.
библиотека Adobe Acrobat-поздняя привязка
нет необходимости создавать ссылку Vb на библиотеку Adobe
у меня нет точного решения вашей проблемы, однако у меня был аналогичный, а именно, что я хотел добавить поля в pdf из VBA.
Я могу сказать вам, что Adobe имеет JavaScript API, которым вы можете управлять через vba.
и это часть кода, который я использовал в VBA для управления полями в PDF-файлах.
вы, вероятно, следует посмотрите на метод insertPages в API.
что также возможно, это использование сборки в ссылке от VBA до Acrobat. Однако я нашел его очень ограниченным, и я не работал с ним. Есть только несколько доступных объектов, вот несколько примеров:
Я пытаюсь объединить PDF-файлы в один PDF-файл с использованием vba. Я бы не хотел использовать подключаемый инструмент и попробовал использовать acrobat api ниже.
Любая помощь будет оценена.
- В Excel VBA нет встроенного механизма для этого: наверняка вам понадобится сторонний инструмент / библиотека.
- @TimWilliams, это код для api acrobat, который выполняет все функции excel vba для объединения PDF-файлов.
- Но вы говорите, что не хотите использовать сторонний компонент.
- исправил вопрос, я открыт для acrobat api, если это единственный способ .. Однако не хочу использовать случайный плагин.
- похоже, что ваш второй код не указывает путь и полагается на то, что текущий каталог совпадает с тем, где находятся файлы, поэтому иногда он будет работать. Проблема в первом коде кажется отсутствующей \ в пути: ThisWorkbook.Path & '\filename.pdf'
У вас должен быть установлен / работоспособен Adobe Acrobat.
Я использовал ссылки на этот ресурс повторно
РЕДАКТИРОВАТЬ: замена массива на автоматически сгенерированный (в основном, основной PDF-файл, все еще установленный пользователем) список путей к PDF-файлам, которые вы хотите вставить в основной PDF-файл)
Вы можете использовать что-то вроде ниже, чтобы создать коллекцию документов, которые будут вставлены в ваш основной документ. Первый файл в collection будет file что вы вставляете, как в первом примере. Затем назначьте путь к папке с файлом pdf files который вы хотели бы вставить в основной документ, чтобы inputDirectoryToScanForFile . В loop в этом коде добавит путь к каждому PDF-файлу в этой папке в ваш collection . Это пути, которые позже будут использоваться в вызовах Adobe API для вставки pdf в ваш основной.
Код, который берет первичный файл и вставляет в него другие PDF-файлы:
- Я пробовал это, я получаю DONE , но куда же экспортировать финальный файл? как мне это установить?
- первичный документ - это первый путь к файлу / pdf, который вы помещаете в свой массив
- Я проверил свой путь в массиве, я не вижу, что мой второй PDF-файл добавлен к этому файлу. Я упускаю что-то еще, что мне нужно изменить?
- primary doc как первый в массиве, остальные в массиве должны быть путями, которые вы хотите вставить в первый массив. действительно должен работать tbh idk, почему бы и нет.
- 1 Эй, похоже, твой исходный код теперь работает . не уверен, что изменилось. лол, просто попробую еще немного.
Это мое понимание вашего вопроса:
Требования:
объединил серию файлов pdf, находящихся в одной папке рабочей книги, содержащей процедуру
имена файлов PDF идут от firstpdf1.pdf к firstpdfn.pdf где n общее количество файлов, которые нужно объединить
Давайте проверим ваш исходный код:
Все переменные должны быть объявлены:
В этой строке отсутствует разделитель пути '\' :
Должен быть PDFfileName = Dir(ThisWorkbook.Path & '\' & 'firstpdf' & n & '.pdf')
Поэтому эта строка всегда возвращает '' (PDF-файл не найден в ThisWorkbook.Path ):
If PDFfileName <> '' Then
Дополнительно:
Эти строки вернулись бы: Error - 424 Object required как объекты objCAcroPDDocSource и objCAcroPDDocDestination не были инициализированы:
objCAcroPDDocSource.Open ThisWorkbook.Path & 'pathwithpdfs' & PDFfileName
If objCAcroPDDocDestination.InsertPages(objCAcroPDDocDestination.GetNumPages - 1, objCAcroPDDocSource, 0, objCAcroPDDocSource.GetNumPages, 0) Then
objCAcroPDDocDestination никогда не открывался.
Решения: Эти процедуры используют библиотеку Adobe Acrobat.
Библиотека Adobe Acrobat - ранняя версия
Чтобы создать ссылку Vb на библиотеку Adobe в меню редактора VBA, щелкните Tools `Ссылки then select the Библиотека Adobe Acrobat in the dialog window then press the Кнопку ОК`.
Библиотека Adobe Acrobat - Поздняя печать
Нет необходимости создавать Vb-ссылку на библиотеку Adobe.
В приведенном ниже коде, который я получил от переполнения стека, будут перечислены все подпапки в папке.
Этот код объединит все файлы PDF в подпапке и сохранит результат в выбранной папке назначения.
У меня нет точного решения вашей проблемы, однако у меня было аналогичное, а именно то, что я хотел добавить поля в pdf из VBA.
Я могу вам сказать, что у Adobe есть JavaScript API, которым вы можете управлять через vba.
И это часть кода, который я использовал в VBA для управления полями в PDF-файлах.
Вероятно, вам стоит взглянуть на метод insertPages в API.
Также возможно использование ссылки на сборку из VBA в Acrobat. Однако я нашел его очень ограниченным и не работал с ним. Доступно всего несколько объектов, вот несколько примеров:
Читайте также: