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

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

27.02.2024, 21:44. Показов 2084. Ответов 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
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
28.02.2024, 07:23
Допустим так
Visual Basic
1
CreateObject("Shell.Application").Namespace("Путь файла").Self.InvokeVerb
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,324
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
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 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,324
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
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
28.02.2024, 10:16
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
а если открывать питоном либры
питон это же недояз без статической типизации..
0
932 / 365 / 43
Регистрация: 10.05.2021
Сообщений: 1,564
Записей в блоге: 10
28.02.2024, 10:26
Ципихович Эндрю, здравствуйте
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
вопрос такой: как в макросом открыть пдф файл по нужному пути? спасибо
ответ
0
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 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,324
28.02.2024, 11:35  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
старбейсика
что вы называете старбейсиком?
Цитата Сообщение от testuser2 Посмотреть сообщение
API-шный вариант рабочий для старбейсика
можете выложить код? спасибо
0
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 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,324
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
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 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,324
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
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
28.02.2024, 12:43
Ципихович Эндрю, тогда используйте вариант по ссылке Jack Famous
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,324
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
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 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,324
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
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
28.02.2024, 14:04
Нужны доп. ковычки, поскольку в названии есть пробел
Visual Basic
1
fullpath = """ & path & "Эндрю Питоньяк1.pdf" & """
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,324
28.02.2024, 14:12  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
fullpath = """ & path & "Эндрю Питоньяк1.pdf" & """
тогда в вба эта строка вставится и будет красного цвета, как подправить?
0
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 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): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru