Форум » Для флейма » Печать доверенностей, типовая форма 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

PSP: Dima пишет: Sergy Ты бы уже 100 раз успел все сделать на PS32 Не забывай! Петр пишет: Так обьяснял же человек  цитата: Хочется "все по настоящему", "в гамаке и стоя".

Dima: PSP

nick_mi: 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 сформировался


Sergy: Dima пишет: Sergy Ты бы уже 100 раз успел все сделать на PS32 Ага. http://www.abeelabs.com/index.php Web site closed. 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 под рукой, можно помуздыкаться с миллиметрами и шрифтами, но рано или поздно - тоже пойдет коту под хвост... Нужно сделать красиво и надолго.

Dima: Sergy Да проблема была , чел потом снес свою ось и поставил что то другое и не жаловался более. А так под XP , 7 и 10 работает норм.

Softlog86: PageScript и всё работает замечательно

SergKis: Softlog86 пишет PageScript и всё работает замечательно Dima пишет А так под XP , 7 и 10 работает норм. Переслать клиенту можно файл, для печати автономно, на разных осях ? Как pdf.

Sergy: 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. Вопрос был в том, что среди нескольких установленных принтеров в системе не было дефолтного. Выбрали один из них по умолчанию - все сразу стало ок. Имейте в виду.

Sergy: 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() русские буквы видны. Спасибо за наводку.



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