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

PDF - формат открытый, библиотеки для работы с ним есть, SDK - не знаю, но полагаю что тоже найдется. А использовать имеющиеся на текущем компе средства, когда нет гарантии, что они умеют выполнять поиск, тем более так, как тебе хочется (к слову, Adobe Reader позволяет искать, но не факт что он позволяет получать найденный фрагмент).

О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

Репутация: нет
Всего: нет

Спасибо, но я вот одно не могу понять: все в VB есть и объекты, и методы, так почему же не работает?

Блин всё перепробовал, никак 429-ю не убрать. На форуме облазил все темы по 429-ой ошибке, все не то.
Подскажите кто-нибудь почему же всё-таки она вылезает ?

Репутация: нет
Всего: нет

Скачал SDK. Нашел в документации пример

Код

Dim app As Object, avdoc As Object, pageview As Object

Все равно выдает ошибку №429 .
Не понимаю.

Репутация: 34
Всего: 453

О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

Репутация: нет
Всего: нет

В 3-й строке выдает ошибку:

Репутация: 34
Всего: 453

Проверьте через Object Browser правильность имени объекта.
Попробуйте задать определение для 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 включён ]

imported reference the below mentioned lib

Я использую 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. Однако я нашел его очень ограниченным, и я не работал с ним. Есть только несколько доступных объектов, вот несколько примеров:

Anonim

Я пытаюсь объединить 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. Однако я нашел его очень ограниченным и не работал с ним. Доступно всего несколько объектов, вот несколько примеров:

Читайте также: