On-line: гостей 1. Всего: 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 
ПрофильЦитата Ответить
Ответов - 74 , стр: 1 2 3 4 All [только новые]







Пост N: 564
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 05.01.18 21:50. Заголовок: Dima пишет: Ты в эт..


Dima пишет:

 цитата:
Ты в этом уверен ? Мне кажется что после RTE Harbour , сама прога нормально завершается (ну типа с закрытием баз и тд и тп) а далее
начинает завершаться сама DLL со своими ошибками , она ж вроде на делфи.


Могу быть уверен только в том коде, который сам написал. Или имеющий исходники. А когда есть "черный ящик" в виде DLL - можно предполагать всё, что угодно.

Сегодня вот вообще с вероятностью 1к5 стал ловить GPF на ровном месте:

Скрытый текст


Затем неожиданно перестали создаваться PDF файлы:

Скрытый текст

Хотя еще вчера все работало норм. PSGetPrinterCaps() заменил вот на такой огород:
 // было: aCaps := PSGetPrinterCaps()  // параметры принтера 
// стало:
aCaps := { PSGetPrinterCapsEx(110),;
PSGetPrinterCapsEx(111),;
PSGetPrinterCapsEx( 8),;
PSGetPrinterCapsEx( 10),;
PSGetPrinterCapsEx(113),;
PSGetPrinterCapsEx(112),;
PSGetPrinterCapsEx( 88),;
PSGetPrinterCapsEx( 90),;
PSGetPrinterCapsEx( 24) ;
}

А вот что случилось с PDF - вообще не могу понять... Единственное, что из серьезного изменилось - утром винда захотела обновиться и попросила установить 100500 мегабайт ежемесячных обновлений. Я не возражал - слышал, там закрывают какой-то серьезный косяк с защитой на уровне ядра процессоров Intel, выпущенных а последние 10 лет...

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




Пост N: 6691
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.01.18 22:43. Заголовок: Sergy пишет: Я не ..


Sergy пишет:

 цитата:
Я не возражал - слышал, там закрывают какой-то серьезный косяк с защитой на уровне ядра процессоров Intel, выпущенных а последние 10 лет...


я тоже читал на яплакал...

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




Пост N: 6692
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.01.18 17:10. Заголовок: Sergy А ты юзаешь ф..


Sergy
А ты юзаешь файл из поставки DLLCALL.C ? Я нет.

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





Пост N: 565
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 07.01.18 00:17. Заголовок: Честно говоря, даже ..


Честно говоря, даже не понял, как это "всё" заработало у меня. Скачал файл из pagescript32.com, потыкал по hbp, prg по очереди... что-то скомпилировалось как библиотека и "куда-то" упали *.a и *.о файлы...

Скомпилировался ли dllcall.c - я не в курсе. Нигде ж ничего про это не написано...

Пока адаптировал свою библиотеку печати под вызовы pscript.dll, на след неделе в боевом режиме с админом потестируем, что это за зверь... Если что - отключить его и вернуться на hpdf - дело трех секунд: если программа не "видит" dll - будет использовать harupdf.

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




Пост N: 6693
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.01.18 10:37. Заголовок: Sergy пишет: Нигде ..


Sergy пишет:

 цитата:
Нигде ж ничего про это не написано..


Скрытый текст



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





Пост N: 566
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 07.01.18 12:08. Заголовок: Это конечно хорошо, ..


Это конечно хорошо, но как его компилировать-то ?
Куда девать или где искать соотв. dllcall.а, dllcall.o ??? У себя я их не нашел... Ни в одном из *.hbp/hbc в текущей поставке о нем нет упоминаний... Ты уверен, что этот файл нужен для актуальной версии Harbour ?

Хочу избавиться от наличия ps32.hbc, содержащего такие строки:

description=PageScript32 wrapper
incpaths=.
libpaths=lib/${hb_plat}/${hb_comp}
libs=${hb_name}
libs=hbxpp.hbc

вытащил всё из .\lib\hbwin\.hbmk\win\mingw\*.* в .\lib\*.* , заменил его на такой:

libpaths=lib
libs=ps32

в myprog.hbp добавил hbxpp.hbc и ps32.hbc
Вроде работает, но держать отдельный файл ради двух строк, в нем содержащихся... напрягает...

в myprog.hbp добавил ещё пару строк:

-Llib // путь к библиотеке(ам)
-lps32 // определение библиотеки

вроде они делают всё тоже самое, что ps32.hbc, но hbmk2 "не может найти библиотеку ps32"...


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




Пост N: 6695
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.01.18 17:24. Заголовок: Sergy пишет: -lps32..


Sergy пишет:

 цитата:
-lps32 // определение библиотеки


Не знаю как в новой версии , но в старой достаточно было прилинковать TPSCRIPT.PRG , в
старой версии либа не создавалась.

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





Пост N: 567
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 09.01.18 02:05. Заголовок: Спасибо за наводку, ..


Спасибо за наводку, попробовал прямую линковку tpscript.prg - получилось.
Поковыряю ещё немного, добью, я думаю...
Хочу типа "addon" оформить, чтобы чужого кода у меня в папке с сырцами приложения вообще не было.
И чтобы в случае выхода новой версии pscript не вычищать из дебрей ничего, а просто накатить в hb\addon\ps32 свежие файлы и вуаля. Как, например, это сделано в LetoDB(f).

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




Пост N: 3659
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.01.18 09:40. Заголовок: Нескромный вопрос: а..


Нескромный вопрос: а зачем сейчас использовать PageScript ?
Я понимаю, лет 15 назад еще в клиппере это был способ windows печати.
А сейчас в hbwin есть соответствующие средства печати, да и любая gui-библиотека имеет такие возможности.
Зачем сейчас печатать через стороннее приложение ?

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




Пост N: 6696
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.01.18 13:53. Заголовок: Pasha пишет: Нескро..


Pasha пишет:

 цитата:
Нескромный вопрос: а зачем сейчас использовать PageScript ?


 
1. Привычка :)
2. Меньше кода
3. Вывод в PDF , EMF
4. Предпросмотр печати (под WVT самое то)
5. На вскидку есть ряд функций которых нет в Hbwin и нужно писать и тестить свое под Hbwin
6. Достаточно много форм и отчетов реализовано (у меня) под PS32 , переделывать под Hbwin не хочется
так как и так нормально работает.
7. Не плохо документировано.


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





Пост N: 568
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 09.01.18 16:41. Заголовок: Pasha пишет: Нескро..


Pasha пишет:

 цитата:
Нескромный вопрос: а зачем сейчас использовать PageScript ?


Практически до 2016 года для печати бухгалтерских документов хватало имеющихся внутренних средств печати наподобие txt2gdi, txt2win и им подобных, которые одним шрифтом/размером фигачат целиком документ, разворачивая по необходимости страницу из портрета в ландшафт. Для разнообразных отчетов - все красивости Excel. Для ценников (повторяющаяся информация по заранее заданным шаблонам) - давно написана безотказно работающая утилита.

Когда настал вопрос с печатью доверенностей (где половина текста идет под 90 градусов), стало понятно, что в этом разнообразии пора что-то менять.

Сделал свой класс с набором примитивов: начать документ, задать толщину, нарисовать прямоугольник, выбрать шрифт, размер вывести в такую-то координату xy, завершить документ и тп.

Из-за того, что PageScript был заброшен создателями, начал вывод через HPDF, всё заработало супер-гуд, кроме собственно печати документов. Sumatra-PDF прекрасно выводит его на экран, но печатает с дикими тормозами - пересылая на принтер как bitmap-картинку. Adobe Reader - имеет задокументированную опцию командной строки /t - распечатать и завершить работу. Печатает без проблем, но несколько лет назад разработчики решили, что этого мало и программа должна предложить юзеру что-нибудь ещё: аннотировать документ, послать его... в облако. Наваял процедуру, которая запускает процесс, ждет некоторое время, одновременно пытаясь удалить pdf файл - и... грохает порожденный процесс. Работает быстро, но... как-то коряво...

После того, как в декабре проект PageScript "ожил" - за пару дней подключил его к своему классу. С точки зрения программы - вообще ничего не поменялось. Те-же самые примитивы, те-же самые координаты, те-же самые документы выводятся, только теперь иным способом. Все работает быстро и удобно, только бесплатный "черный ящик" в виде dll напрягает. Если будет поддерживаться и не будет глючить - оставлю его.

Если нет - можно поковыряться и с печатью через wingdi, но там отдельно нужно будет думать, как делать preview на экране.

Было-бы идеальное решение - все-бы давно сидели на нем...

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




Пост N: 6697
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.01.18 16:54. Заголовок: Sergy пишет: Было-б..


Sergy пишет:

 цитата:
Было-бы идеальное решение - все-бы давно сидели на нем...


+1

Sergy пишет:

 цитата:
Sumatra-PDF


чем pdfFactory Pro не устраивает ?

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





Пост N: 569
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 09.01.18 17:29. Заголовок: Dima пишет: чем pdf..


Dima пишет:

 цитата:
чем pdfFactory Pro не устраивает ?


Пока искал варианты печати, много что перепробовал, все без особого успеха: STDU Viewer, 3nity PDF viewer, Nitro PDF, PDFLite, PDF X-change и много много других...

Возможно и PDFfactory был в том списке. Посмотрел на него только что - 100$ за рабочее место только чтобы печатать?

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




Пост N: 6698
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.01.18 17:59. Заголовок: Sergy пишет: Посмот..


Sergy пишет:

 цитата:
Посмотрел на него только что - 100$ за рабочее место только чтобы печатать?


Ты же про Excel выше упомянул , я было подумал что он пиратский , тогда почему не юзать
и эту прогу в "честном" пиратском варианте....

PS
_http://fineprint.com/compare-products/

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





Пост N: 570
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 10.01.18 23:34. Заголовок: Dima пишет: Ты же п..


Dima пишет:

 цитата:
Ты же про Excel выше упомянул , я было подумал что он пиратский , тогда почему не юзать
и эту прогу в "честном" пиратском варианте....



Экселю особо альтернатив нет. А тут - море разливенное.

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





Пост N: 572
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 21.01.18 17:39. Заголовок: Дабы не плодить кучу..


Дабы не плодить кучу тем, продолжу тут.

PageScript обязывает указать одно/или двустороннюю печать в самом начале документа: PSBeginDoc(nPrinter, cTitle, nOrientation, nCopies, nPageSize, nDuplex, nPaperBin) -> nError

Сначала никакой параметр туда не передавал, соотв. по умолчанию была односторонняя печать: DMDUP_SIMPLEX. При печати документа с более чем одной странице - из принтера с двусторонней печатью выходили несколько листов, распечатанных с одной стороны. При настройке SetDevice(DEV_PREVIEW) опция "выбрать двустороннюю печать" становилась серой, соотв. там включить ее вручную - тоже нельзя.

Думаю, делов-то - включил всем принудительно DMDUP_VERTICAL или DMDUP_HORIZONTAL (в зависимости от Portrait/Landscape документа) и думать забыл про это.

Через пару недель эксплуатации возникли вопросы иного рода:
1) каждая "односторонняя" бумажка сначала вылезает из принтера, потом снова в него засасывается и печатается с другой стороны. А это доооолго.
2) при печати мелких документов (например, складская накладная на выдачу 1-2 артикулов) обычно использовались "половинки" листов А4, скармливаемых через переднюю щель принтера. Теперь это нельзя делать, тк при двусторонней печати некоторые принтеры спотыкаются (из-за того, что лист короткий), а некоторые вообще отказываются брать любую бумагу через переднюю щель.

В PSSetDevice(DEV_PREVIEW) опция "двусторонняя или односторонняя печать" по-прежнему серая. PSSetDuplex() тоже не поможет: to set the desired Duplex mode for printers that support Duplex printing. Call this procedure before starting a new document.

Как-бы грамотно подступить к этому вопросу?
Ведь до создания документа еще не ясно, сколько страниц на нем будет.

"Заставить юзера при печати каждого документа указать, что ему нужно" - вариант какой-то... корявый...


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




Пост N: 6705
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.01.18 18:36. Заголовок: Sergy пишет: Ведь д..


Sergy пишет:

 цитата:
Ведь до создания документа еще не ясно, сколько страниц на нем будет.


При желании ты бы мог и просчитать сколько их будет .

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





Пост N: 573
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 22.01.18 17:31. Заголовок: Dima пишет: При жел..


Dima пишет:

 цитата:
При желании ты бы мог и просчитать сколько их будет .


Да. Но желания дважды выполнять одну и ту-же работу нет.

Думал, может есть вариант какой в PageScript использовать "настройки принтера", а не жестко задавать, причем заранее.


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





Пост N: 621
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 26.05.18 20:45. Заголовок: Может кому актуально..


Может кому актуально - на http://pagescript32.com/ обновилась версия - теперь это 3.0.4.119
Из добавленного официально:

New: PSSetPWTopMost
New: PSUnicodeChar - Prints a Unicode character at position X,Y using parameters
New: PDF/A output

Кроме того, обнаружил в pscript,ch новые константы:

#define DEV_RTFFILE 6 // Print to RTF file
#define DEV_JPGFILE 7 // Print to JPG file


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




Пост N: 6929
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.09.18 21:12. Заголовок: Sergy Я так понял т..


Sergy
Я так понял ты плотно подсел на новый Pagescript.
Пока сижу на старом от abbylabs. Скажи плиз , новый PS32 стабилен и работает без глюков ?
Я о версии 3.0.4.119

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

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