Форум » Для флейма » Печать доверенностей, типовая форма M2 » Ответить

Печать доверенностей, типовая форма M2

Sergy: Появилась очередная задачка - упорядочить чехарду с доверенностями, которые каждый отдел печатает в стороннем приложении (Бизнес-Пак), соотв. единой нумерации по организациям нет как таковой. Корявость в том, что мало того, что это документ в половину листа А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

Dima: Sergy пишет: Может есть еще варианты? PAGESCRIPT 32 Нарисовать можно что хош + есть предпросмотр ЗЫ Либа + дока у меня есть , если что. + можно устроить вывод прямо в PDF , но желательно без картинок , так как глючит PS32 в режиме PDF с картинами Дока еще жива http://clipper.borda.ru/?1-3-0-00000308-000-0-0-1458307361

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

Dima: Sergy пишет: Понимаю, если бы пользовался им несколько лет, а тут... Можно пойти другим путем , коли так... Сам бланк сканим и превращаем в JPG , апосля уже из проги (правда я это делал опять таки через PS32 ), выводим картину через PSBITMAP (PSBitmap(x1,y1,x2,y2, Srv+"bmp\277x47.jpg")) и после попадаем в нужные места с помощью PSTextOut например. Я у себя таким макаром делаю цветные ценник на товар , от типографских не отличить

Петр: Dima пишет: Сам бланк 5) купить готовые бланки - пусть вручную заполняют По пункту 2) можно использовать libxl или xlsxwriter, для просмотра и печати ExcelViewer; По пункту 4) все можно дописать. Значит выбираем п. 1

Sergy: Dima пишет: Можно пойти другим путем , коли так... Сам бланк сканим и превращаем в JPG , апосля уже из проги (правда я это делал опять таки через PS32 ), выводим картину через PSBITMAP (PSBitmap(x1,y1,x2,y2, Srv+"bmp\277x47.jpg")) и после попадаем в нужные места с помощью PSTextOut например. Я у себя таким макаром делаю цветные ценник на товар , от типографских не отличить C печатью картинок нет проблем - сертификаты на товар давно храним только в электронном виде, иначе утонем в макулатуре. Как метод - супер, буду пробовать, технология отработана в т.ч. при печати красивых ценников. Трудозатраты программиста - минимальные из всех. Что смущает - чего-то тормозят принтеры, когда на них вместо PostScript команд заливают мегабайты изображений...

Sergy: Петр пишет: По пункту 2) можно использовать libxl или xlsxwriter, для просмотра и печати ExcelViewer; Читал про них. Думаю, что оправдано только в том случае, если офис на компе не установлен. Иначе - какая разница, с чем ковыряться - с OLE свойствами метода oExcel или вызовами чужих функций...

Dima: Sergy пишет: Что смущает - чего-то тормозят принтеры, когда на них вместо PostScript команд заливают мегабайты изображений... Вот жеж изверги ))

Sergy: Поковырялся с доверенностями - даже если сделать подложку из JPG/BMP - все равно нужно заполнять поля сбоку писаниной под 90 градусов: кому выдано, дата1, дата2... Каким методом из Win_Prn можно повернуть текст при печати ?

Pasha: У шрифта при его создании есть свойство lfEscapement - это как раз угол поворота всей строки в десятых градуса против часовой стрелки. К сожалению, функция win_CreateFont его не поддерживает - lfEscapement всегда задается как 0. Так что сейчас никак. Только попросить девелоперов добавить соответствующий параметр для этой функции.

Dima: Sergy пишет: можно повернуть текст при печати ? В PS32 можно

PSP: оффтоп: а чем не нравится вариант а-ля 1С? ))

Петр: PSP пишет: оффтоп: а чем не нравится вариант а-ля 1С? )) Sergy пишет: Так обьяснял же человек Хочется "все по настоящему", "в гамаке и стоя".

PSP: Петр пишет: Так обьяснял же человек  цитата: Хочется "все по настоящему", "в гамаке и стоя". Да, точно, объяснял...)))

Vlad04: Печать доверенностей, типовая форма M2 Насколько помню,была бумага как-то, что многие формы стали необязательными, а только рекомендуемыми. Подозреваю, что это относится и к доверенности.

Sergy: В результате изысканий, наиболее перспективными с точки зрения создания будущего фундамента для подготовки "настоящих" документов, использующих пропорциональные шрифты, с возможностями поворота, добавления штрихкодов и прочих возможностей, выбор сужается до двух направлений: 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 принтер. В идеале эта система должна полностью заменить две имеющиеся (для единообразия). Помогите определиться плиз в нужном направлении. Спасибо.

Andrey: Sergy пишет: Может есть еще варианты? А почему не использовать обычный MSWord ? Поворот текста в нем тоже есть. Можно сделать шаблон и печатать через него, подставляя нужные данные. "hbZebra или инсталляция штрихкодовых шрифтов на каждую машину" - тоже можно использовать с Word У меня уже лет 15 работает муниципалка, всякие договора, доверенности, списки и т.д. Как это работает, можешь посмотреть у Григория на сайте. http://www.hmgextended.com/applications.html

nick_mi: В PDF есть возможность загрузить свой фонт и тогда крякозябров не будет, а будет нормальная печать Пример пока выложить не могу, проба лежит на работе. Из приведенных стандартных какой-то один, по-моему, печатал нормально. Какой, сейчас уже не вспомню, и какие-то еще там были проблемы.

Sergy: Andrey пишет: А почему не использовать обычный MSWord ? Х его знает, как с этим будет в ближайшие годы - начальство гайки закрутит, скажет, что больше не будем никакие лицензии на офис покупать, переходим на OpenOffice или еще что нить в этом роде. Xls файлы можно формировать через libxlswriter. А вот подсаживаться на OLE MS Word не хотелось-бы. Тем более, когда не стоит вопрос собственно редактирования документа - нужно только вывести сложную структуру на печать и всё.

Sergy: nick_mi пишет: В PDF есть возможность загрузить свой фонт и тогда крякозябров не будет, а будет нормальная печать Пример пока выложить не могу, проба лежит на работе. Из приведенных стандартных какой-то один, по-моему, печатал нормально. Какой, сейчас уже не вспомню, и какие-то еще там были проблемы. Не получается со встроенными в PDF шрифтами пока ничего - UTF-8 вообще никак, CP1251 дает странные результаты - буквы наезжают друг на друга. Загрузил внешний шрифт - в 1251 получилось, но все равно UTF-8 не работает, даже при использовании явно юникодного шрифта... Подробности тут: http://clipper.borda.ru/?1-4-0-00001186-000-0-0-1494799635

Dima: Sergy Ты бы уже 100 раз успел все сделать на PS32



полная версия страницы