Автор | Сообщение |
|
| |
Пост N: 522
Зарегистрирован: 08.07.06
|
|
Отправлено: 16.04.17 12:26. Заголовок: Печать доверенностей, типовая форма M2
Появилась очередная задачка - упорядочить чехарду с доверенностями, которые каждый отдел печатает в стороннем приложении (Бизнес-Пак), соотв. единой нумерации по организациям нет как таковой. Корявость в том, что мало того, что это документ в половину листа А4, напечатан с двух сторон, так там есть корешок, на котором мелкая табличка с полями повернута на 90°. Посмотрел 1с - там себе голову ничем не забивают, доверенность печатается целиком с одной стороны на листе формата А4. Корешок никуда не повернут, идет в верхней части листа. Скомбинировали вроде норм. Хочется "все по настоящему", "в гамаке и стоя". Ну и бумагу сэкономить, куда-же без этого - в конторе принтеры двухсторонние в основном. На текущий момент нет у меня готового инструмента для этой задачи. что вижу в качестве решения: 1) формировать PDF файл, там с поворотами и прочим нет проблем. Нужно будет проверить, чтобы на каждом компе вызывался какой-нить PDF viewer. Что смущает - вызов сторонней утилиты, которая ранее не использовалась в связке с моей программой. 2) вызывать Excel через OLE, рисовать рамки, нумеровать, вписывать ФИО, даты и тп. Разумеется, офис есть на каждой машине и точно работает, тк много чего через него делается. Что смущает - формирование 20-50-100 доверенностей через OLE, со вставкой "ручных" разделителей страниц тормозит процесс подготовки документа. Не хотелось-бы сначала провозиться с поворотом текста, рамочками, шрифтами и прочим, а потом понять, что все равно народ будет печатать через Бизнес-Пак... 3) Win_Prn - "родное" решение, но нет предпросмотра документа и что-то не вижу функции печати текста под углом. Может плохо искал? 4) формировать HTML, скармливать его "программе по умолчанию" - пусть печатает. Решение типа PDF, только никакой библиотеки не нужно. Что предпочесть? Может есть еще варианты? Спасибо.
|
|
|
Ответов - 29
, стр:
1
2
All
[только новые]
|
|
|
| |
Пост N: 6362
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.04.17 12:55. Заголовок: Sergy пишет: Может ..
Sergy пишет: PAGESCRIPT 32 Нарисовать можно что хош + есть предпросмотр ЗЫ Либа + дока у меня есть , если что. + можно устроить вывод прямо в PDF , но желательно без картинок , так как глючит PS32 в режиме PDF с картинами Дока еще жива http://clipper.borda.ru/?1-3-0-00000308-000-0-0-1458307361
|
|
|
|
| |
Пост N: 524
Зарегистрирован: 08.07.06
|
|
Отправлено: 16.04.17 14:08. Заголовок: Спасибо канеш, но на..
Спасибо канеш, но начинать что-то новое в программе на уже заброшенном разработчиком продукте, какой-бы он замечательный он не был... Понимаю, если бы пользовался им несколько лет, а тут...
|
|
|
|
| |
Пост N: 6363
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.04.17 14:31. Заголовок: Sergy пишет: Понима..
Sergy пишет: цитата: | Понимаю, если бы пользовался им несколько лет, а тут... |
| Можно пойти другим путем , коли так... Сам бланк сканим и превращаем в JPG , апосля уже из проги (правда я это делал опять таки через PS32 ), выводим картину через PSBITMAP (PSBitmap(x1,y1,x2,y2, Srv+"bmp\277x47.jpg")) и после попадаем в нужные места с помощью PSTextOut например. Я у себя таким макаром делаю цветные ценник на товар , от типографских не отличить
|
|
|
|
| постоянный участник
|
Пост N: 1442
Зарегистрирован: 09.10.06
|
|
Отправлено: 16.04.17 14:53. Заголовок: Dima пишет: Сам бла..
Dima пишет: 5) купить готовые бланки - пусть вручную заполняют По пункту 2) можно использовать libxl или xlsxwriter, для просмотра и печати ExcelViewer; По пункту 4) все можно дописать. Значит выбираем п. 1
|
|
|
|
| |
Пост N: 525
Зарегистрирован: 08.07.06
|
|
Отправлено: 16.04.17 22:15. Заголовок: Dima пишет: Можно ..
Dima пишет: цитата: | Можно пойти другим путем , коли так... Сам бланк сканим и превращаем в JPG , апосля уже из проги (правда я это делал опять таки через PS32 ), выводим картину через PSBITMAP (PSBitmap(x1,y1,x2,y2, Srv+"bmp\277x47.jpg")) и после попадаем в нужные места с помощью PSTextOut например. Я у себя таким макаром делаю цветные ценник на товар , от типографских не отличить |
| C печатью картинок нет проблем - сертификаты на товар давно храним только в электронном виде, иначе утонем в макулатуре. Как метод - супер, буду пробовать, технология отработана в т.ч. при печати красивых ценников. Трудозатраты программиста - минимальные из всех. Что смущает - чего-то тормозят принтеры, когда на них вместо PostScript команд заливают мегабайты изображений...
|
|
|
|
| |
Пост N: 526
Зарегистрирован: 08.07.06
|
|
Отправлено: 16.04.17 22:18. Заголовок: Петр пишет: По пунк..
Петр пишет: цитата: | По пункту 2) можно использовать libxl или xlsxwriter, для просмотра и печати ExcelViewer; |
| Читал про них. Думаю, что оправдано только в том случае, если офис на компе не установлен. Иначе - какая разница, с чем ковыряться - с OLE свойствами метода oExcel или вызовами чужих функций...
|
|
|
|
| |
Пост N: 6365
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.04.17 22:27. Заголовок: Sergy пишет: Что ..
Sergy пишет: цитата: | Что смущает - чего-то тормозят принтеры, когда на них вместо PostScript команд заливают мегабайты изображений... |
| Вот жеж изверги ))
|
|
|
|
| |
Пост N: 527
Зарегистрирован: 08.07.06
|
|
Отправлено: 18.04.17 15:36. Заголовок: Поковырялся с довере..
Поковырялся с доверенностями - даже если сделать подложку из JPG/BMP - все равно нужно заполнять поля сбоку писаниной под 90 градусов: кому выдано, дата1, дата2... Каким методом из Win_Prn можно повернуть текст при печати ?
|
|
|
|
| Администратор
|
Пост N: 3551
Зарегистрирован: 23.05.05
|
|
Отправлено: 18.04.17 15:51. Заголовок: У шрифта при его соз..
У шрифта при его создании есть свойство lfEscapement - это как раз угол поворота всей строки в десятых градуса против часовой стрелки. К сожалению, функция win_CreateFont его не поддерживает - lfEscapement всегда задается как 0. Так что сейчас никак. Только попросить девелоперов добавить соответствующий параметр для этой функции.
|
|
|
|
| |
Пост N: 6371
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.04.17 16:13. Заголовок: Sergy пишет: можно ..
Sergy пишет: цитата: | можно повернуть текст при печати ? |
| В PS32 можно
|
|
|
|
| постоянный участник
|
Пост N: 1303
Зарегистрирован: 27.01.07
|
|
Отправлено: 18.04.17 16:17. Заголовок: оффтоп: а чем не нра..
оффтоп: а чем не нравится вариант а-ля 1С? ))
|
|
|
|
|
| постоянный участник
|
Пост N: 1446
Зарегистрирован: 09.10.06
|
|
Отправлено: 18.04.17 16:27. Заголовок: PSP пишет: оффтоп: ..
PSP пишет: цитата: | оффтоп: а чем не нравится вариант а-ля 1С? )) |
|
Sergy пишет: Так обьяснял же человек цитата: | Хочется "все по настоящему", "в гамаке и стоя". |
|
|
|
|
|
| постоянный участник
|
Пост N: 1304
Зарегистрирован: 27.01.07
|
|
Отправлено: 18.04.17 16:52. Заголовок: Петр пишет: Так об..
Петр пишет: цитата: | Так обьяснял же человек цитата: Хочется "все по настоящему", "в гамаке и стоя". |
| Да, точно, объяснял...)))
|
|
|
|
| постоянный участник
|
Пост N: 688
Зарегистрирован: 13.10.05
|
|
Отправлено: 18.04.17 18:51. Заголовок: Печать доверенносте..
цитата: | Печать доверенностей, типовая форма M2 |
| Насколько помню,была бумага как-то, что многие формы стали необязательными, а только рекомендуемыми. Подозреваю, что это относится и к доверенности.
|
|
|
|
| |
Пост N: 535
Зарегистрирован: 08.07.06
|
|
Отправлено: 14.05.17 13:15. Заголовок: В результате изыскан..
В результате изысканий, наиболее перспективными с точки зрения создания будущего фундамента для подготовки "настоящих" документов, использующих пропорциональные шрифты, с возможностями поворота, добавления штрихкодов и прочих возможностей, выбор сужается до двух направлений: 1) HaruPDF + hbZebra (или инсталляция штрихкодовых шрифтов на каждую машину) + SumatraPDF 2) HTML5 + CSS + любой современный браузер Вариант 1 - не могу победить, чтобы в PDF был русский текст. Возможно проблема связана с тем, что использую Viktor's fork 3.4 - там немного иные вызовы для подключения кодовых страниц: REQUEST HB_LANG_RU // раньше было: HB_LANG_RU866 REQUEST HB_CODEPAGE_RU866 hb_CDPSelect("RU866") // обязательно! перед! hb_LangSelect() hb_LangSelect("RU") // раньше было: "RU866" Возможно это каким-то образом влияет на формирование PDF документа, но любая попытка в harupdf.prg вывести кириллицу приводит либо вот к такой красоте: цитата: | Courier abc ABC —ŸÑ?—‚—†—µÑ‚ PDF ! |
|
вместо цитата: | Courier abc ABC АБВ, абв, Привет PDF ! |
|
либо к ошибке цитата: | 0x1025 HPDF_INVALID_DOCUMENT 0 |
| К тому-же читал, что HaruPDF уже несколько лет не развивается толком и имеет проблемы в том числе со штрих-кодовыми шрифтами. Но она решается при помощи hbZebra - вместо громоздких шрифтов эта библиотека шустро рисует прямоугольники прямо внутри PDF документа. Идея, в общем, интересная, но не очень перспективная, как понимаю - последний commit HaruPDF на GitHub датирован 2013 годом... С другой стороны - формат HTML5+CSS активно развивается, поддерживается всеми возможными ОС и браузерами. Нарисовать таблицу при помощи <table> и повернуть текст в ней при помощи transform несложно. Единственная загвоздка - эта система не предназначена для печати как таковой. При этом, некоторые документы нужно печатать в "альбомной" ориентации листа А4, а некоторые - в "портретной". Юзеру придется все время "думать" о том, какие св-ва принтера нужно настроить при печати того или иного документа. Получается тоже "не айс". Стою на распутье: нужно в программе сгородить еще одну "систему печати". Есть уже две: RawPrint для принтеров, поддерживающих прямую печать с помощь управляющих Esc-команд и GUI-версию, которая "оборачивает" каждую текстовую страницу в оболочку из спец. команд, формирует canvas, заливает на него строка за строкой подготовленный текст нужного размера и отправляет на GUI принтер. В идеале эта система должна полностью заменить две имеющиеся (для единообразия). Помогите определиться плиз в нужном направлении. Спасибо.
|
|
|
|
| постоянный участник
|
Пост N: 5386
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.05.17 17:14. Заголовок: Sergy пишет: Может ..
Sergy пишет: А почему не использовать обычный MSWord ? Поворот текста в нем тоже есть. Можно сделать шаблон и печатать через него, подставляя нужные данные. "hbZebra или инсталляция штрихкодовых шрифтов на каждую машину" - тоже можно использовать с Word У меня уже лет 15 работает муниципалка, всякие договора, доверенности, списки и т.д. Как это работает, можешь посмотреть у Григория на сайте. http://www.hmgextended.com/applications.html
|
|
|
|
| |
Пост N: 199
Зарегистрирован: 19.05.05
|
|
Отправлено: 14.05.17 18:46. Заголовок: В PDF есть возможнос..
В PDF есть возможность загрузить свой фонт и тогда крякозябров не будет, а будет нормальная печать Пример пока выложить не могу, проба лежит на работе. Из приведенных стандартных какой-то один, по-моему, печатал нормально. Какой, сейчас уже не вспомню, и какие-то еще там были проблемы.
|
|
|
|
| |
Пост N: 538
Зарегистрирован: 08.07.06
|
|
Отправлено: 15.05.17 13:12. Заголовок: Andrey пишет: А поч..
Andrey пишет: цитата: | А почему не использовать обычный MSWord ? |
| Х его знает, как с этим будет в ближайшие годы - начальство гайки закрутит, скажет, что больше не будем никакие лицензии на офис покупать, переходим на OpenOffice или еще что нить в этом роде. Xls файлы можно формировать через libxlswriter. А вот подсаживаться на OLE MS Word не хотелось-бы. Тем более, когда не стоит вопрос собственно редактирования документа - нужно только вывести сложную структуру на печать и всё.
|
|
|
|
| |
Пост N: 539
Зарегистрирован: 08.07.06
|
|
Отправлено: 15.05.17 13:17. Заголовок: nick_mi пишет: В P..
nick_mi пишет: цитата: | В PDF есть возможность загрузить свой фонт и тогда крякозябров не будет, а будет нормальная печать Пример пока выложить не могу, проба лежит на работе. Из приведенных стандартных какой-то один, по-моему, печатал нормально. Какой, сейчас уже не вспомню, и какие-то еще там были проблемы. |
| Не получается со встроенными в PDF шрифтами пока ничего - UTF-8 вообще никак, CP1251 дает странные результаты - буквы наезжают друг на друга. Загрузил внешний шрифт - в 1251 получилось, но все равно UTF-8 не работает, даже при использовании явно юникодного шрифта... Подробности тут: http://clipper.borda.ru/?1-4-0-00001186-000-0-0-1494799635
|
|
|
|
| |
Пост N: 6428
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.05.17 13:39. Заголовок: Sergy Ты бы уже 100..
Sergy Ты бы уже 100 раз успел все сделать на PS32
|
|
|
|
| постоянный участник
|
Пост N: 1310
Зарегистрирован: 27.01.07
|
|
Отправлено: 15.05.17 14:53. Заголовок: Dima пишет: Sergy ..
Dima пишет: цитата: | Sergy Ты бы уже 100 раз успел все сделать на PS32 |
| Не забывай! Петр пишет: цитата: | Так обьяснял же человек цитата: Хочется "все по настоящему", "в гамаке и стоя". |
|
|
|
|
|
|
| |
Пост N: 6429
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.05.17 15:39. Заголовок: PSP :sm54: ..
PSP
|
|
|
|
| |
Пост N: 200
Зарегистрирован: 19.05.05
|
|
Отправлено: 15.05.17 19:27. Заголовок: Sergy Если в вызове ..
Sergy Если в вызове функции " cFont := HPDF_LoadTTFontFromFile(pdf, getenv("SystemRoot")+"\fonts\arial.ttf",.f.) // простой текст " поставить последний параметр поставить .t. , шрифт будет встроен в PDF, на любой другой машине будет просматриваться корректно. Встроенные шрифты (все, или может быть какой-то один или несколько) вероятно глючат при работе с UTF-8. Закоментируйте ваш цикл по фонтам ("FOR EACH cFont IN font_list "), и PDF с кодировкой UTF-8 нормально построится по крайней мере у меня по вашему примеру PDF сформировался
|
|
|
|
| |
Пост N: 540
Зарегистрирован: 08.07.06
|
|
Отправлено: 15.05.17 22:05. Заголовок: Dima пишет: Sergy ..
Dima пишет: цитата: | Sergy Ты бы уже 100 раз успел все сделать на PS32 |
| Ага. http://www.abeelabs.com/index.php http://clipper.borda.ru/?1-3-0-00000308-000-0-0-1458307361 Dima пишет: цитата: | Есть одна пичалька. Что первый что последний Pagescript32 виснет на PSINIT под Windows 8. Винда правда 64 бита. Совместимость копали и до лампочки. Скрытый текст
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 |
|
PS Под XP и 7 работает нормально
| Хочу заложить нормальный фундамент в систему печати - надоели временные решения: сначала было просто "COPY outfile.txt TO PRN", потом появилось решение для печати красивых, полностью Win-GUI ценников, на его основе - печать целиком одного листа в нужном размере. По сути - аналог COPY ... TO PRN. Потом Win_PrintFileRaw с возможностью выбора принтера... На скорую руку - пока есть Excel и Word под рукой, можно помуздыкаться с миллиметрами и шрифтами, но рано или поздно - тоже пойдет коту под хвост... Нужно сделать красиво и надолго.
|
|
|
|
| |
Пост N: 6430
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.05.17 22:37. Заголовок: Sergy Да проблема б..
Sergy Да проблема была , чел потом снес свою ось и поставил что то другое и не жаловался более. А так под XP , 7 и 10 работает норм.
|
|
|
|
| |
Пост N: 355
Зарегистрирован: 03.12.08
|
|
Отправлено: 15.05.17 22:55. Заголовок: PageScript и всё раб..
PageScript и всё работает замечательно
|
|
|
|
| постоянный участник
|
Пост N: 1443
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.05.17 23:03. Заголовок: Softlog86 пишет Page..
Softlog86 пишет цитата: | PageScript и всё работает замечательно |
| Dima пишет цитата: | А так под XP , 7 и 10 работает норм. |
| Переслать клиенту можно файл, для печати автономно, на разных осях ? Как pdf.
|
|
|
|
| |
Пост N: 541
Зарегистрирован: 08.07.06
|
|
Отправлено: 16.05.17 00:40. Заголовок: SergKis пишет: Пере..
SergKis пишет: цитата: | Переслать клиенту можно файл, для печати автономно, на разных осях ? Как pdf. |
| PS32 был действительно хорош, и может сам формировать PDF файлы. Вот тут: https://web.archive.org/web/20150201213531/http://abeelabs.com/downloads/PS32.zip можно взять последний вариант этой библиотеки, там есть готовый EXE - демка и ее сырцы, в т.ч. под [x]Harbour. Но... был. И возможно, еще некоторое время будет... PS: цитата: | Есть одна пичалька. Что первый что последний Pagescript32 виснет на PSINIT под Windows 8. Винда правда 64 бита. Совместимость копали и до лампочки |
| Пока изучаю вопрос, наткнулся на похожую проблему - она возникала у кого-то на гугл-сообществе xHarbour. Вопрос был в том, что среди нескольких установленных принтеров в системе не было дефолтного. Выбрали один из них по умолчанию - все сразу стало ок. Имейте в виду.
|
|
|
|
| |
Пост N: 542
Зарегистрирован: 08.07.06
|
|
Отправлено: 16.05.17 01:06. Заголовок: nick_mi пишет: Если..
nick_mi пишет: цитата: | Если в вызове функции " cFont := HPDF_LoadTTFontFromFile(pdf, getenv("SystemRoot")+"\fonts\arial.ttf",.f.) // простой текст " поставить последний параметр поставить .t. , шрифт будет встроен в PDF, на любой другой машине будет просматриваться корректно. Встроенные шрифты (все, или может быть какой-то один или несколько) вероятно глючат при работе с UTF-8. Закоментируйте ваш цикл по фонтам ("FOR EACH cFont IN font_list "), и PDF с кодировкой UTF-8 нормально построится по крайней мере у меня по вашему примеру PDF сформировался |
| Да, попробовал. 1) Закомментировал кусок для проверки встроенных шрифтов 2) поставил cEncoder := "UTF-8" 3) поставил TRUE для загрузки шрифта в HPDF_LoadTTFontFromFile() русские буквы видны. Спасибо за наводку.
|
|
|
Ответов - 29
, стр:
1
2
All
[только новые]
|
|