IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Символ перевода на новую страницу при печати (http://www.imho.ws/showthread.php?t=129280)

SwiMMeR 08.02.2008 08:17

Символ перевода на новую страницу при печати
 
Суть проблемы: есть ПО (закрытое), которое считывает строки из базы данных оракл и отправляет на печать полученный текст.
Текст естественно не форматированный. Предобработки текста ПО не выполняет.
При печати возможно задать параметры шрифта.
задача: сделать текст таким, чтобы с определенного места текст выводился на новую страницу.

например,
имеем текст "Мама мыла раму. Алексей мыл машину." одна строка. 35 символов.
ну, + 2 в конце строки. итого 37 символов. Хочу вставить символ в строку так, чтобы часть строки печаталась на одном листе, а часть на другом. Принтер любой.

Borland 08.02.2008 11:37

Если печать идёт как в ДОСе (текст отсылается в устройство PRN), то перевод строки обеспечивается управляющим символом с ASCII-кодом 12 .
При печати через PCL/PS - напечатается изображение символа. Так что, всё зависит от того, как работает с текстом проприетарное ПО...
Если идёт печать через PCL/PS, то "спрятать" в тексте команду перевода страницы не получится, эту команду должно подавать само ПО.

bertran 08.02.2008 12:16

А печатать при помощи FinePrint не пробовали?
Или вам нужно, чтобы если встретится именно заранее определенная комбинация символов, происходила печать на новом листе?
На крайний случай, метод грубой силы - печать виртуальным принтером, потом распозновать и форматировать так как нужно...

Hubbitus 08.02.2008 12:34

Цитата:

Сообщение от SwiMMeR (Сообщение 1519727)
Суть проблемы: есть ПО (закрытое), которое считывает строки из базы данных оракл и отправляет на печать полученный текст.

Как отправляет-то? Через какую систему печати вообще? На какой системе все это работает, ОС?
Я думаю что если ПО ожидает в БД текст, а не какм-то образом форматированный текст - то вряд ли удастся сделать подобное. Потому как, если интерпретирование никаких специальнозначащих последовательностей не предполагается, их появление должно экранироваться (ну или каким-то образом специально обрабатываться, возможно игнорироваться просто).

Как вариант, можно настроить печатать такие документы в файл (PostScript например), а в нем уже, хоть скриптом, править вывод и отправлять дальше на реальный принтер.
В принципе можно настроить чтобы это было полностью автоматом.

SwiMMeR 08.02.2008 12:54

Цитата:

Сообщение от bertran (Сообщение 1519812)
А печатать при помощи FinePrint не пробовали?

Что такое FinePrint?

Цитата:

Сообщение от bertran (Сообщение 1519812)
Или вам нужно, чтобы если встретится именно заранее определенная комбинация символов, происходила печать на новом листе?

Типа того, как встречается в тексте символы 13+10, значит новая строка. А, например, символ 11+12 - новая страница. :)

Цитата:

Сообщение от Hubbitus (Сообщение 1519822)
Как отправляет-то? Через какую систему печати вообще? На какой системе все это работает, ОС?

1. как отправляет - неизвестно. ПО крупного российского разработчика, написано на Дельфи.
3. ОС - семейства Windows (в частности XP).

bertran 08.02.2008 14:30

Цитата:

Сообщение от SwiMMeR (Сообщение 1519834)
Что такое FinePrint?

Имелась в виду такая или такая программа
В данном случае, может подойти вторая.

crawler 08.02.2008 14:35

Цитата:

Сообщение от SwiMMeR (Сообщение 1519834)
Что такое FinePrint?

www.fineprint.com

Я попытаюсь переформулировать :
Имеется :
1) База данных с текстовыми строками
2) программа которая читает эти строки из БД и посылает все одной бесконечной страницей на принтер.

Ты хочешь: изменить текст в БД так, чтобы получить на принтере разбивку на страницы в произвольных местах.

Так ?

Merlin Cori 08.02.2008 14:49

bertran, не... это совсем не то... как ты в файнпринт в середину сформированной страницы будешь вставлять разрывы?
pdffactory... ну может быть, но это печатать в pdf, потом его или руками править или распознавать и .... то же править....


SwiMMeR, а с разработчиками никак сконтактироваться?

bertran 08.02.2008 15:29

Цитата:

Сообщение от Merlin Cori (Сообщение 1519891)
pdffactory... ну может быть, но это печатать в pdf, потом его или руками править или распознавать и .... то же править....

Да, именно о распозновании, речь выше и шла

Цитата:

Сообщение от bertran (Сообщение 1519812)
метод грубой силы - печать виртуальным принтером, потом распозновать и форматировать так как нужно...

Потому как альтернатива - копание SoftIce'ом или другим отладчиком, представляется мне слишком веселым занятием для данного случая, хотя, возможно, я и не прав...

SwiMMeR 08.02.2008 15:36

Цитата:

Сообщение от crawler (Сообщение 1519888)
www.fineprint.com

Я попытаюсь переформулировать :
Имеется :
1) База данных с текстовыми строками
2) программа которая читает эти строки из БД и посылает все одной бесконечной страницей на принтер.

Ты хочешь: изменить текст в БД так, чтобы получить на принтере разбивку на страницы в произвольных местах.

Так ?

Да, именно так.

добавлено через 3 минуты
Цитата:

Сообщение от Merlin Cori (Сообщение 1519891)
а с разработчиками никак сконтактироваться?

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

Hubbitus 08.02.2008 19:04

Да ну Господь с Вами, какой pdf! PostScript все решит - задокументированный стандарт, можно просто достаточно править... говорю, написать скриптулину, которая это все будет делать автоматом, и все.

crawler 09.02.2008 01:50

Hubbitus, ну в самом деле.... писать свой парсер PostScript .+ переформатирование готовых страниц :headshot: ... это конечно лучше чем ковырятся SoftIce'ом. но недели 2 работы минимум. И лучше найти готовый.

Как вариант можно попробовать посылать на виртуальный текстовой принтер, парсить текстовый файл и посылать его на печать. Должно быть попроще ИМХО.

http://www.miraplacid.com/mtd/

http://www.frogmorecs.com/arts/using...ic-driver.html

Hubbitus 09.02.2008 03:12

Цитата:

Сообщение от crawler (Сообщение 1520122)
Hubbitus, ну в самом деле.... писать свой парсер PostScript

Зачем?? Неужели ни один из открытых не устроит?? :confused::confused: На чем писать изволите-то?

Если требуется только текст, и никакого другого контента типа графики и форматирования - то конечно, можно воспользоваться и "текстовым принтером" (если честно, о таком слышу впервые) - парсить проще, кто бы спорил.

crawler 09.02.2008 12:22

А есть готовые? я быстро поискал - и не нашел.

Цитата:

На чем писать изволите-то?
муа ??? я не собираюсь ничего писать, я только даю умные советы :biggrin:

Цитата:

"текстовым принтером" (если честно, о таком слышу впервые)
дык, как часто в Виндах печатают голый текст? Я и сам не знал, что есть такое.


Часовой пояс GMT +4, время: 11:42.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.