powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / ref-переменные в oleobject
12 сообщений из 12, страница 1 из 1
ref-переменные в oleobject
    #39311521
PB_guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь настроить печать в PDF-принтер под названием NovaPDF
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
long li_ret, li_PROFILE_IS_PUBLIC
String ls_strOldActiveProfileID
OleObject o
o = create OleObject

li_ret = o.ConnectToNewObject("novapi80.NovaPdfOptions80") 
ls_PRINTER_NAME = "novaPDF SDK 8"
ls_PROFILE_NAME = 'TestProfile'
li_PROFILE_IS_PUBLIC = 0

o.Initialize2( ls_PRINTER_NAME, '' );

//ls_strOldActiveProfileID = Space(250)

o.GetActiveProfile2(ls_strOldActiveProfileID);

//
o.SetDefaultPrinter();
o.RestoreDefaultPrinter();




из данного кусочка работает все, кроме строки o.GetActiveProfile2(ls_strOldActiveProfileID);
после выполнгения данной строки, в переменную ls_strOldActiveProfileID должны прийти данные, но приложение падает с ошибкой
Application terminated.
Error: Error calling external object function getactiveprofile2 at line 30 in clicked event of object cb_1 of w.


Также падает и на вызове любой другой функции, в параметрах которых должна быть указана переменная, в которую должны прийти данные

Вот описание данной функции:
Код: sql
1.
2.
3.
4.
5.
6.
7.
The GetActiveProfile2 retrieves the id of the active profile (i.e. the profile that is used for printing).

HRESULT GetActiveProfile2(

[out] BSTR* p_wsProfileId

);




Подскажите, может у кого есть опыт в данном вопросе.
...
Рейтинг: 0 / 0
ref-переменные в oleobject
    #39311553
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PB_guest
Подскажите, может у кого есть опыт в данном вопросе.

BSTR это не null-terminated string тынц .
...
Рейтинг: 0 / 0
ref-переменные в oleobject
    #39311659
PB_guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Локшин МаркPB_guestПодскажите, может у кого есть опыт в данном вопросе.

BSTR это не null-terminated string тынц .

Так пробовал инициализировать перед функцией переменную: ls_strOldActiveProfileID = Space(250)
Результат тот же.
...
Рейтинг: 0 / 0
ref-переменные в oleobject
    #39312231
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PB_guest,

Попробуйте вызывать так (в добавок к space()):
Код: sql
1.
o.GetActiveProfile2(ref ls_strOldActiveProfileID)
...
Рейтинг: 0 / 0
ref-переменные в oleobject
    #39312312
PB_guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly Moskovsky,

И это пробовал. Ошибка та же самая выскакивает.
Не пойму вообще чего ему не хватает.
...
Рейтинг: 0 / 0
ref-переменные в oleobject
    #39312313
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PB_guestПытаюсь настроить печать в PDF-принтер под названием NovaPDF...
А собственно печать чего? Может в РВ это уже решено? Или почему именно NovaPDF, есть ведь другое?
...
Рейтинг: 0 / 0
ref-переменные в oleobject
    #39312318
PB_guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AIS,

Печать DW в PDF.

Есть уже реализованная печать DW в PDF на "Bullzip PDF Printer", но данный метод не устраивает и скоростью и периодическими падениями, когда необходимо сохранить огромное количество данных, когда размер файла PDF получается больше 2Гб.

Сохранение с использованием novaPDF работает и быстрее, и стабильней. Но при простой печати выскакивает окно, в котором необходимо ввести имя файла, куда сохранять. Чтобы программным способом подставить имя файла и необходимы все эти манипуляции.
...
Рейтинг: 0 / 0
ref-переменные в oleobject
    #39312824
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант - задать постоянное имя файла и место, а потом переименовывать и перемещать
...
Рейтинг: 0 / 0
ref-переменные в oleobject
    #39313764
PB_guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
spas2001,

Проблема в том, что при сохранении(печати) в PDF выскакивает окно самой программы novaPDF, в котором необходимо ввести имя файла, в которое "напечатается" DW.
Смысл проблемы в том, чтобы не дать этому окну выскочить.

o.GetActiveProfile2(ls_strOldActiveProfileID); это не единственная функция, на которой происходит падение программы. Вызов любой другой функции, в которой данные должны прийти из ref-переменной, также "падают".
...
Рейтинг: 0 / 0
ref-переменные в oleobject
    #39313884
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может падение РВ связана с путем к файлу - в пути есть пробелы и/или кириллица? Или в ls_PROFILE_NAME надо указывать полный путь + имя файла?
И ещё. Может программу надо вызывать с какими-то параметрами, например, где задается файл по умолчанию и не выводится окно для выбора такого файла?
...
Рейтинг: 0 / 0
ref-переменные в oleobject
    #39314093
PB_guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AIS,

При вызове функции o.GetActiveProfile2(ls_strOldActiveProfileID) переменная ls_strOldActiveProfileID вообще пустая. Именно в эту переменную должны прийти данные из функции.

Программа для запуска никак не вызывается. Это просто настроенный виртуальный принтер PDF? в который происходит печать dw - dw.print(false, false).

Вот мой пост - http://www.sql.ru/forum/941829/printer-adobe-distiller-na-x64?mid=12580129&hl=bullzip#12580129
который у меня работает... и нужно то же самое сделать, но на novaPDF.
Думаю, придется на C обертку написать.
...
Рейтинг: 0 / 0
ref-переменные в oleobject
    #39315240
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вань, попробуй строку в блоб сконвертить и уже на нее ссылку передать. что-то знакомое...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / ref-переменные в oleobject
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]