Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,319

Открыть PDF файл

27.02.2024, 21:44. Показов 2023. Ответов 45
Метки pdf (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте
при открытии файла из Ворда вручную появляется окно "Преобразование файла" - я все опции не опробовал, но то, что пробовал - не взлетело
вопрос такой: как в макросом открыть пдф файл по нужному пути? спасибо
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.02.2024, 21:44
Ответы с готовыми решениями:

Открыть pdf файл
Как открыть pdf файл? Желательно без установки читалок.

Как открыть .pdf файл из VB программы?
Как открыть .pdf файл из VB программы?

Как запустить (открыть) pdf фаил по пути хронящейся в переменной?
Как запустить (открыть) pdf фаил по пути хронящейся в переменной?

45
1385 / 840 / 91
Регистрация: 08.02.2017
Сообщений: 3,573
Записей в блоге: 1
28.02.2024, 07:23
Допустим так
Visual Basic
1
CreateObject("Shell.Application").Namespace("Путь файла").Self.InvokeVerb
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,319
28.02.2024, 07:28  [ТС]
testuser2,
увы ошибка:
Ошибка времени выполнения Basic.
Вызвано исключение
Type: com.sun.star.lang.WrappedTargetRuntimeEx ception
Message: [automation bridge] unexpected exception in IUnknownWrapper::invoke ! Message :
[automation bridge]: .
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub OpenMyPDF1()
 
    Dim file As String: file = "I:\Эндрю Питоньяк1.pdf"
    Dim Doc As Object
    Dim param(1) As Long
    
    ' Инициализируем массив
    param(0) = 0 ' Draw_pdf_Import
    
    ' Загружаем PDF-файл
    Set oDoc = StarDesktop.loadComponentFromUrl(ConverttoURL(file), "_blank", 0, param())
    
End Sub
ошибка
Ошибка времени выполнения Basic.
Объектная переменная не установлена
на строке
Code
1
Set oDoc = StarDesktop.loadComponentFromUrl(ConverttoURL(file), "_blank", 0, param())
как исправить?
0
1385 / 840 / 91
Регистрация: 08.02.2017
Сообщений: 3,573
Записей в блоге: 1
28.02.2024, 09:27
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
увы ошибка:
Ошибка времени выполнения Basic.
Вызвано исключение
Type: com.sun.star.lang.WrappedTargetRuntimeEx ception
Message: [automation bridge] unexpected exception in IUnknownWrapper::invoke ! Message :
Потому что это дибильная модель com.sun.star.lang. Сom, ладно, потом солнце (ярило - свет батюшка) тоже ладно, пусть будет первый в иерархии. Дальше star - какого х..ра? Солнце это объект класса "звезда", "star" это название этого класса, где логическая связь? Дальше "lang".. Ну и конечно же потому-что это не VB. И зедсь не хотелось бы как-то особо выгораживть VB, в котором если капнуть найдется уйма минусов, но когда в базовых вещах видишь такую хрень, трудно смотреть на это спокойно.. эмм да..
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,319
28.02.2024, 09:49  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
не хотелось бы как-то особо выгораживть VB
а если открывать питоном либры
Code
1
2
3
4
5
6
7
8
9
10
11
12
import uno
 
 
def open_pdf():
    FullPath = "I:\Эндрю Питоньяк1.pdf"
 
# Кодируйте URL-адрес
    encoded_url = uno.util.URLTransformer.encodeURIComponent(FullPath)
 
# Загрузите документ
    desktop = uno.getComponentContext().getService("com.sun.star.frame.Desktop")
    doc = desktop.loadComponentFromURL(encoded_url, "_blank", 0)
код верный?
давно не юзал питон либры пока не запускается))

Добавлено через 10 минут
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
пока не запускается))
Error during invoking function open_pdf in module file:///C:/Program%20Files/LibreOffice/share/Scripts/python/111111.py (<class 'AttributeError'>: module 'uno' has no attribute 'util'
File "C:\Program Files\LibreOffice\program\pythonscript.p y", line 916, in invoke
ret = self.func( *args )
File "C:\Program Files\LibreOffice\share\Scripts\python\1 11111.py", line 9, in open_pdf
encoded_url = uno.util.URLTransformer.encodeURICompone nt(FullPath)
)
0
1385 / 840 / 91
Регистрация: 08.02.2017
Сообщений: 3,573
Записей в блоге: 1
28.02.2024, 10:16
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
а если открывать питоном либры
питон это же недояз без статической типизации..
0
932 / 365 / 43
Регистрация: 10.05.2021
Сообщений: 1,564
Записей в блоге: 10
28.02.2024, 10:26
Ципихович Эндрю, здравствуйте
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
вопрос такой: как в макросом открыть пдф файл по нужному пути? спасибо
ответ
0
1385 / 840 / 91
Регистрация: 08.02.2017
Сообщений: 3,573
Записей в блоге: 1
28.02.2024, 11:28
Насчет старбасика спросил у пи..балабольной говорилки яндексовской, вот чо наотвечало
Кликните здесь для просмотра всего текста
В StarBasic нет встроенного функционала для работы с PDF-файлами. Однако, вы можете использовать сторонние библиотеки или модули для работы с PDF, такие как PDFlib или GhostScript. Вам нужно будет установить эти библиотеки на вашей системе и добавить соответствующий код для открытия и чтения PDF-файлов.
Пример использования PDFlib в StarBasic:
Установите PDFlib на вашу систему.
Импортируйте библиотеку PDFlib:
Import PDFlib.DLL
Создайте экземпляр PDF-файла:
Dim p As PDF
Set p = CreateObject("PDFlib.PDF")
Откройте PDF-файл:
p.Open "path_to_your_pdf_file"
Прокрутите страницы PDF-файла (если их несколько):
Do While p.PageCount > 0
p.NextPage
Loop
Просмотрите содержимое текущей страницы:
Debug.Print p.GetText(0, 0, p.Width, p.Height)
Закройте PDF-файл:
p.Close
Set p = Nothing


Добавлено через 40 минут
Цитата Сообщение от Jack Famous Посмотреть сообщение
ответ
API-шный вариант рабочий для старбейсика
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,319
28.02.2024, 11:35  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
старбейсика
что вы называете старбейсиком?
Цитата Сообщение от testuser2 Посмотреть сообщение
API-шный вариант рабочий для старбейсика
можете выложить код? спасибо
0
1385 / 840 / 91
Регистрация: 08.02.2017
Сообщений: 3,573
Записей в блоге: 1
28.02.2024, 11:40
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
можете выложить код?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecute" (ByVal hwnd As Long, _
                ByVal lpOperation As String, lpFile As String, ByVal lpParameters As String, _
                ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
 
Public Const SW_SHOWMAXIMIZED = 3
 
Sub Main
    dim path$
    
    path = "C:\Папка\Файл.pdf"
    Call ShellExecute(0, "open", path,"", "", SW_SHOWMAXIMIZED) 
End Sub
Добавлено через 2 минуты
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
что вы называете старбейсиком?
Вот эту лабуду
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
com.sun.star.lang.WrappedTargetRuntimeEx ception
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,319
28.02.2024, 12:05  [ТС]
testuser2,
Цитата Сообщение от testuser2 Посмотреть сообщение
что вы называете старбейсиком?
Вот эту лабуду
Сообщение от Ципихович Эндрю
com.sun.star.lang.WrappedTargetRuntimeEx ception
это я извиняюсь я создал два топика в вба ворд и в либре офис
и тот ответ был предназначен для другого топика
код из поста 10 опробовал, получил ошибку - вот чем либра хороша с месседжа легко ошибка копируется, а тут........
cant find DLL entry point ShellExcute in shell32.dll
=============
не могу найти точку входа DLL ShellExecute в shell32.dll
это как улаживается, если что у меня вин10х64
0
1385 / 840 / 91
Регистрация: 08.02.2017
Сообщений: 3,573
Записей в блоге: 1
28.02.2024, 12:18
[VB]
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
cant find DLL entry point ShellExcute in shell32.dll
Visual Basic
1
2
3
Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As LongPtr, _
 ByVal lpOperation As String, lpFile As String, ByVal lpParameters As String, _
 ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,319
28.02.2024, 12:39  [ТС]
testuser2, теперь всё декларирование красного цвета:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As LongPtr, _
 ByVal lpOperation As String, lpFile As String, ByVal lpParameters As String, _
 ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
 
Public Const SW_SHOWMAXIMIZED = 3
 
Sub Main()
    Dim path$
    path = "I:\ЭндрюПитоньяк1.pdf"
    Call ShellExecute(0, "open", path, "", "", SW_SHOWMAXIMIZED)
End Sub
как подправить? спасибо
0
1385 / 840 / 91
Регистрация: 08.02.2017
Сообщений: 3,573
Записей в блоге: 1
28.02.2024, 12:43
Ципихович Эндрю, тогда используйте вариант по ссылке Jack Famous
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,319
28.02.2024, 12:53  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
тогда используйте вариант по ссылке Jack Famous-а
ок, код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
'Декларация функции для запуска файла
Public Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
 
Public Const SW_SHOWMAXIMIZED = 3
 
Sub Main()
    Dim path$
    path = "I:\ЭндрюПитоньяк1.pdf"
    Call ShellExecute(0, "open", path, "", "", SW_SHOWMAXIMIZED)
End Sub
открыло в лисе, неожиданно, но на всякий случай спрошу в другом браузере можно открыть? как?
0
1385 / 840 / 91
Регистрация: 08.02.2017
Сообщений: 3,573
Записей в блоге: 1
28.02.2024, 13:25
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
в другом браузере можно открыть? как?
Visual Basic
1
Call ShellExecute(0, "open", "chrome.exe", path, "", SW_SHOWMAXIMIZED)
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,319
28.02.2024, 13:37  [ТС]
testuser2, а что у них по разному путь надо прописывать?
в Лисе нормально открывает, а в Хроме получаю ошибку Не удалось получить доступ к файлу
и в адресной строке было указано: I:\Эндрю - откуда его надуло ХЗ)), код?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
'Декларация функции для запуска файла
Public Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
 
Public Const SW_SHOWMAXIMIZED = 3
 
Sub Main()
    Dim path$
    path = "I:\"
    Dim fullpath$
    fullpath = path & "Эндрю Питоньяк1.pdf"
    If Len(Dir(fullpath)) = 0 Then
        MsgBox "Отсутствует требуемый файл", 48, "Ошибка"
    Else
       'Call ShellExecute(0, "open", fullpath, "", "", SW_SHOWMAXIMIZED) 'Лиса
       Call ShellExecute(0, "open", "chrome.exe", fullpath, "", SW_SHOWMAXIMIZED) 'Хром
   End If
   
End Sub
0
1385 / 840 / 91
Регистрация: 08.02.2017
Сообщений: 3,573
Записей в блоге: 1
28.02.2024, 14:04
Нужны доп. ковычки, поскольку в названии есть пробел
Visual Basic
1
fullpath = """ & path & "Эндрю Питоньяк1.pdf" & """
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,319
28.02.2024, 14:12  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
fullpath = """ & path & "Эндрю Питоньяк1.pdf" & """
тогда в вба эта строка вставится и будет красного цвета, как подправить?
0
1385 / 840 / 91
Регистрация: 08.02.2017
Сообщений: 3,573
Записей в блоге: 1
28.02.2024, 14:41
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
тогда в вба эта строка вставится
Цитата Сообщение от AlexOld Посмотреть сообщение
А теперь более серьезно.
У вас 3703 сообщения и 536 тем в разделе VBA и вы не знаете как экранировать ковычки? Не верю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.02.2024, 14:41
Помогаю со студенческими работами здесь

Как открыть pdf-файл
Как из вба, нажатием на кнопку, открыть документ в формате пдф

Можно ли: открыть файл PDF внешним приложением Inkscape и скопировать из него содержимое?
возможно ли открыть файл в PDF внешним приложением (Inkscape) и скопировать в буфер содержимое ? 1. хотел подключить библиотеку InkScape...

Как создать PDF файл с именем ZAKAZ_(дата сегодня).pdf
Как создать из &quot;Excel таблицы&quot; - PDF файл с именем ZAKAZ_(дата сегодня).pdf при помощи макроса? Есть такой макрос: Sub...

Открыть файл, разделить ячейку на 1000, сохранить файл, закрыть файл
Макрос должен запускаться, спрашивать - какой файл ему взять. Открыть его, разделить определенную ячейку на 1000, сохранить файл. ...

Не могу открыть в PDF читалке в форме PDF файл имя которого хранится в БД Access
в приложении есть поиск он ищет в БД(1 таблица, 2 поля) и если в поисковую строку вводится название проблемы схожее с имеющейся в БД(1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru