On-line: PSP, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
администратор




Пост N: 2758
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.03.13 18:00. Заголовок: PAGESCRIPT 32 FOR (X)HARBOUR


Пытаюсь прикрутить PageScript 32 к проге на Harbour и облом.
К проге на Xharbour прикрутил нормально (работает)
Есть в TPSCRIPT.PRG (поставляется вместе с библой)

 
#include "PScript.ch"
#include "FileIO.ch"

#ifdef __XHARBOUR__
// 02.06.2005 - IBTC - changed for xHarbour Builder:
#xtranslate Method <Classname>:<x> => Method <x>
#define DLL_STDCALL NIL

#include "hbclass.ch"
#else
#include "Xbp.ch"
#include "Dll.ch"
#endif



Harbour естественно не находит Xbp.ch , Dll.ch , не пойму что делать.

 
===============================================
PAGESCRIPT 32 FOR (X)HARBOUR
===============================================

This file contains important supplementary and
late-breaking information that may not appear
in the main product documentation. We recommend
that you read this file in its entirety.

In order to use PageScript 32 with (x)Harbour,
you'll need to distribute PSCRIPT.DLL with your
programs. We recommand that PSCRIPT.DLL be copied
in the application's folder in order to avoid
DLL versions conflicts.

Three files needs to be included in your (x)Harbour
projects :

1 - DLLCALL.C
2 - TPSCRIPT.PRG
3 - PSCRIPT.CH

DLLCALL.C gives PageScript a way to call DLL functions
in the same way as Xbase++ does. This interface is
contributed by Paul Tucker, Ontario, Canada. Many
thanks to him for this great contribution.

TPSCRIPT.PRG contains all the PageScript 32 functions
and one class, named TPageScript. You may either choose
to call PS functions or instantiate TPageScript and use
its methods. When you use functions, calling PSInit()
automaticaly instanciates a Static TPageScript object.

PSCRIPT.CH contains constants used by PageScript 32.



Что то не пойму она будет вообще с Hаrbour работать http://www.abeelabs.com/pagescript32/index.php
у меня версия 1.3.4.0

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 82 , стр: 1 2 3 4 5 All [только новые]







Пост N: 645
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 24.09.18 15:57. Заголовок: Да, работаю на верси..


Да, работаю на версии 4.119
Работает стабильно, но по необъяснимым причинам иногда на одном-двух рабочих местах возникает GPF с кодом ошибки 6005 - DLL модуль вываливается при вызове BeginDoc().
Как понимаю, какая-то беда с драйвером принтера на конкретной машине. Была, к примеру, такая фигня на вроде-бы "спокойной" машине после замены на ней принтера (вместе с драйверами, разумеется).

Переписывался с автором - он не может ничем помочь, тк хочет самодостаточный пример...

Пока заставил админа пройти по всем проблемным машинам и обновить драйвера. С прежних 1-2 ошибок в неделю число GPF уменьшилось до 1-2 в месяц. Не по фэн-шую, конечно, но пока других вариантов нет.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6930
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.09.18 17:05. Заголовок: Sergy пишет: Работа..


Sergy пишет:

 цитата:
Работает стабильно, но по необъяснимым причинам иногда на одном-двух рабочих местах возникает GPF


У меня тоже бывает , одна из причин не хватка свободного места на системном диске + принтер HP , после чистки ошибка сразу
уходит.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 646
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 24.09.18 19:52. Заголовок: Dima пишет: У меня ..


Dima пишет:

 цитата:
У меня тоже бывает , одна из причин не хватка свободного места на системном диске + принтер HP , после чистки ошибка сразу
уходит.


Нужно будет у меня посмотреть, что с этим параметром...

Еще заметил, что фигня происходит на RDP, когда юзеры подключаются со "своими" принтерами. Сказал админу, чтобы всем RDP-юзерам настроил по умолчанию MS XPS Writer. Кол-во GPF значительно уменьшилось.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6931
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.09.18 15:04. Заголовок: Sergy А как ты регу..


Sergy
А как ты регулируешь поля при печати ?
В основном у меня печать на всех принтерах идет нормально а вот на Hp1020 , съедает
то левую сторону документа то правую

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 647
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 25.09.18 16:27. Заголовок: Dima пишет: А как т..


Dima пишет:

 цитата:
А как ты регулируешь поля при печати ?


Пока работал с HPDF - проблем не было вообще: задал размер документа 297*210 и не паришься ни о чем. 95% PDF-viewer'ов по умолчанию масштабируют итоговое изображение на конкретный принтер.

А вот вместе с PageScript32 я "пооооонял", что физический размер бумаги и область печати - это вообще совершенно разные значения. Сначала, как вариант, думал прочитать размер области печати из свойств принтера и внутри "своего" класса включить автомасштаб... Потом решил, что проще сразу ограничить ширину документа по узкой стороне на 199мм. Этого хватило на весь наш зоопарк. Заодно вопрос с оставшимися 5% PDF-viewer'ов закрылся сам собой.

Спасибо: 1 
ПрофильЦитата Ответить
администратор




Пост N: 6938
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 04.10.18 17:11. Заголовок: Sergy Вопрос такой ..


Sergy
Вопрос такой по PS32...
Номер принтера я сразу указываю в PSBeginDoc()
У себя проверял дома (все принтера локальные) , при смене принтера в программе
печать идет именно на него.
А вот на оффисе не понятки , там есть сетевые принтера и после выбора
одного из них , печать почему то уходит на Microsoft XPS Document Writer (как правило) .
В новом PS32 есть такая проблема ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6939
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.10.18 11:00. Заголовок: PS Тесты показали чт..


PS
Тесты показали что глючит исключительно на Windows XP

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 650
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 06.10.18 16:00. Заголовок: Dima, с того момента..


Dima, с того момента, как я узнал про win_PrinterList() - я перестал обращаться к принтерам по номерам. Совсем. Ибо давным-давно наступил на те самые грабли, о которых ты пишешь. Про PageScript я тогда даже и не слышал.
Задаю принтер только по его имени. В одном из офисов, например, их целый зоопарк: один настольный (расшаренный), два сетевых. 5 компов. Проблем с переключением вообще никаких. Все печатают откуда угодно на какой угодно принтер.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6940
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.10.18 16:52. Заголовок: Sergy Интересно а к..


Sergy
Интересно а как ты задаешь его по имени в PS32 , если везде где он задается
используется именно номер принтера.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 651
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 06.10.18 19:41. Заголовок: В настройках каждой ..


В настройках каждой рабочей копии программы сохраняю именно имя принтера, а не цифру.

1) При запуске печати по заданному имени проверяю - присутствует ли он в win_PrinterList() и является ли принтером по умолчанию - win_PrinterGetDefault().
2) Если нет - переставляю перед началом печати документа через win_PrinterSetDefault().
3) В PSBeginDoc() первым параметром всегда передаю NIL (печатать на дефолтный).
4) После печати - возвращаю дефолтный принтер "назад" (если было его изменение).

bullet-proof

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6941
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.10.18 21:12. Заголовок: Sergy Хитро ты выкр..


Sergy
Хитро ты выкрутился

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6945
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.10.18 21:22. Заголовок: Sergy А в проге у т..


Sergy
А в проге у тебя какая кодировка , 866 ?
Ведь все эти функции WIN_Printer* результат возвращают в кодировке 1251 ,
и если не сделать перекодировку то принтера имеющие в названиях кирилицу ,
вместо кирилицы покажут вопросики.
С win_PrinterList() и win_PrinterGetDefault() я так и поступил.
Примерно так
 
Func My_WIN_PRINTERLIST()
local alist:={}
local i
hb_cdpSelect( "RU1251" )
alist:=WIN_PRINTERLIST()
if len(alist)#0
for i=1 to len(alist)
alist[ i ]:=hb_ansitooem(alist[ i ])
next
endif
hb_cdpSelect( "RU866" )
return alist

Вопрос такой , в win_PrinterSetDefault() тоже имя передавать в RU1251 c временной сменой кодировки ?
Я конечно поиграюсь и выясню , просто если готовый ответ я сэкономлю некоторое время а его не так
много при средней продолжительности жизни


Проехали по вопросу , поиграл , выяснил.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6946
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.10.18 21:17. Заголовок: Sergy Кстати твой ф..


Sergy
Кстати твой фокус не сработал под Win7 + PS32 от AbbeLabs , упорно печатает
на принтер по умолчанию который был при запуске программы , под XP возможно
и сработает , проверить не где.
Sergy пишет:

 цитата:
3) В PSBeginDoc() первым параметром всегда передаю NIL (печатать на дефолтный).


Так и делал в тестах. Еще и проверил меняется ли принтер по умолчанию
(если его менять с win_PrinterSetDefault) - да меняется , но печатает на тот что я описал выше.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 652
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 15.10.18 20:45. Заголовок: Dima Кодировка прог..


Dima

Кодировка программы 866, во всех вызовах к API винды/офиса/принтеров использую hb_Translate(cString,"RU866","RU1251").

Получается, что "старый" PageScript32 где-то у себя "запоминает" при инициализации дефолтный принтер и печатает на него.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7187
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.05.20 09:53. Заголовок: Что то глючит PSINIT..


Что то глючит PSINIT на Вин10
 
Called from DLLCALL(0)
Called from TPAGESCRIPT:INIT(266) in TPSCRIPT.PRG

При чем первый раз может упасть а потом все работает ровно.
Куда копать ?
PS
На винде ниже 10 все работает ровно

 
METHOD TPageScript:Init()

::bWaterMark := NIL // Codeblock for Watermark function
::nWaterMark := AWM_NONE // Indicates if the WaterMark is to be printed foreground or background
::lFromDialog := .f. // Indicates if printer selected from printer dialog
::lClipper := .f. // Indicates if calls to TextOut and TextBox should be compatible with PageScript for Clipper
::nUnit := APS_MILL // Default unit is MILLIMETERS
::aPrinters := {} // List of available printers
::nError := PSE_NOERROR // Indicates an error condition, such as no printer available
::aDocInfo := {0, "", "", APS_PORTRAIT, 1, APS_COURIER} // Print job info array

::hDll := DllLoad("PScript.dll") // Handle of the .DLL

if ::hDll == nil//0

::nError := PSE_DLLNOTLOADED // DLL not loaded error
else
::nError := DllCall(::hDll, DLL_STDCALL, "PSInit") вот тут падает

// No error, set the coordinate system to TOP/LEFT (Default)
if ::nError == PSE_NOERROR
DllCall(::hDll, DLL_STDCALL, "PSSetCoorSystem", APS_TOPLEFT)
endif
endif

Return Self



В логах ошибок вот такая срань
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 264
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 01.05.20 16:22. Заголовок: Dima пишет: ::nErro..


Dima пишет:

 цитата:
::nError := DllCall(::hDll, DLL_STDCALL, "PSInit") вот тут падает



Я с PS не работал, но имел похожую ошибку при работе с DllCall, когда в функцию передаются еще какие либо параметры и их размер менее требуемого в вызываемой функции. Глянь доку, может функция принимает какие либо параметры... передай пустые значения для строковых space(50) например

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 663
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 02.05.20 00:09. Заголовок: PageScript32 падает ..


PageScript32 падает у меня с вероятностью 1:100 - под Win7 и Win10. Причем не RTE, а качественный крэш с hb_out.log.
Либо в PSIniit, либо рядом - PSSetOrientation.

Если на одной машине два раза за одну неделю такая петрушка - прошу админа переустановить дрова принтера. Помогает.
Писал разработчику - он говорит, что такого ни у кого не бывает. А если и будет, по дампу памяти и hb_out.log он помочь не в состоянии - нужна воспроизводимость ошибки. :(

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7188
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 02.05.20 10:42. Заголовок: Sergy пишет: Причем..


Sergy пишет:

 цитата:
Причем не RTE, а качественный крэш с hb_out.log.


Аналогично а само окно программы просто тихо схлопывается

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7528
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 04.01.22 20:27. Заголовок: 31-12-2021 - Next u..


 
31-12-2021 - Next update will get the following new functions:

- PDF signing for new and existing PDF files
- PDF printing from code and new preview window
- New preview window which can be used seperate or used non-modal from PS

Check this page next month for the beta version, happy new year !


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 632
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 04.01.22 22:43. Заголовок: Не понял, а почему э..


Не понял, а почему этот xbp.ch не скачать
https://searchcode.com/codesearch/view/4517222/

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 82 , стр: 1 2 3 4 5 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 605
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет