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

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

27.02.2024, 21:44. Показов 1987. Ответов 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
1382 / 838 / 89
Регистрация: 08.02.2017
Сообщений: 3,510
Записей в блоге: 1
28.02.2024, 07:23
Допустим так
Visual Basic
1
CreateObject("Shell.Application").Namespace("Путь файла").Self.InvokeVerb
0
1709 / 578 / 74
Регистрация: 10.04.2009
Сообщений: 9,294
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
1382 / 838 / 89
Регистрация: 08.02.2017
Сообщений: 3,510
Записей в блоге: 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
1709 / 578 / 74
Регистрация: 10.04.2009
Сообщений: 9,294
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
1382 / 838 / 89
Регистрация: 08.02.2017
Сообщений: 3,510
Записей в блоге: 1
28.02.2024, 10:16
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
а если открывать питоном либры
питон это же недояз без статической типизации..
0
932 / 365 / 43
Регистрация: 10.05.2021
Сообщений: 1,564
Записей в блоге: 10
28.02.2024, 10:26
Ципихович Эндрю, здравствуйте
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
вопрос такой: как в макросом открыть пдф файл по нужному пути? спасибо
ответ
0
1382 / 838 / 89
Регистрация: 08.02.2017
Сообщений: 3,510
Записей в блоге: 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
1709 / 578 / 74
Регистрация: 10.04.2009
Сообщений: 9,294
28.02.2024, 11:35  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
старбейсика
что вы называете старбейсиком?
Цитата Сообщение от testuser2 Посмотреть сообщение
API-шный вариант рабочий для старбейсика
можете выложить код? спасибо
0
1382 / 838 / 89
Регистрация: 08.02.2017
Сообщений: 3,510
Записей в блоге: 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
1709 / 578 / 74
Регистрация: 10.04.2009
Сообщений: 9,294
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
1382 / 838 / 89
Регистрация: 08.02.2017
Сообщений: 3,510
Записей в блоге: 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
1709 / 578 / 74
Регистрация: 10.04.2009
Сообщений: 9,294
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
1382 / 838 / 89
Регистрация: 08.02.2017
Сообщений: 3,510
Записей в блоге: 1
28.02.2024, 12:43
Ципихович Эндрю, тогда используйте вариант по ссылке Jack Famous
0
1709 / 578 / 74
Регистрация: 10.04.2009
Сообщений: 9,294
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
1382 / 838 / 89
Регистрация: 08.02.2017
Сообщений: 3,510
Записей в блоге: 1
28.02.2024, 13:25
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
в другом браузере можно открыть? как?
Visual Basic
1
Call ShellExecute(0, "open", "chrome.exe", path, "", SW_SHOWMAXIMIZED)
0
1709 / 578 / 74
Регистрация: 10.04.2009
Сообщений: 9,294
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
1382 / 838 / 89
Регистрация: 08.02.2017
Сообщений: 3,510
Записей в блоге: 1
28.02.2024, 14:04
Нужны доп. ковычки, поскольку в названии есть пробел
Visual Basic
1
fullpath = """ & path & "Эндрю Питоньяк1.pdf" & """
1
1709 / 578 / 74
Регистрация: 10.04.2009
Сообщений: 9,294
28.02.2024, 14:12  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
fullpath = """ & path & "Эндрю Питоньяк1.pdf" & """
тогда в вба эта строка вставится и будет красного цвета, как подправить?
0
1382 / 838 / 89
Регистрация: 08.02.2017
Сообщений: 3,510
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru