powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Установка размеров листа для печати
14 сообщений из 14, страница 1 из 1
Установка размеров листа для печати
    #34934488
Фотография Amberit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, уважаемые форумчане!

Версия PB: 6.5 Build 444. Операционная система: Windows2000 SP4.

Прошу у Вас помощи в решении следующей задачи. Необходимо печатать информацию из DW на нестандартных листах (конверты размера 11,3 см * 22,8 см). Предустановленного размера страницы печати для подобных DW нет (DataWindow.Print.Paper.Size). Требуется из скрипта PB установить размер страницы для печати (DW предполагается печатать у многих пользователей, и желательно избавиться от специфической настройки каждого принтера самими пользователями и печати DW с его установками по умолчанию. Не разрешено использовать сторонние библиотеки, кроме WinAPI).

Для реализации такой возможности я вижу следующие пути:

1. Установить в скрипте PB нужный размер DataWindow.Print.Paper.Size. В PB9 это можно реализовать с помощью CustomPage.Length и CustomPage.Width. Как это сделать в PB6? Есть ли аналоги такой возможности и можно ли сделать это вообще?

2. С помощью WinAPI установить нужный размер страницы для печати принтера. Как это сделать и можно ли сделать вообще? Какие функции для этого использовать?

3. Попытаться "развернуть" DW на ориентацию 22,8 см * 11, 3 см и печатать на стандартном листе A4. Но возникают проблемы с переносом и центровкой полей, направлением текста в них (как расположить текст в колонках вертикально?)

4. Печатать на стандартном листе A4 (21,0 см * 29,7 см), не располагая текст за пределами 21 см (теряется информация на 1,8 см). Данное решение можно использовать в последнюю очередь, если исчерпаны все другие возможности и задачу невозможно выполнить другими способами.

Уважаемые коллеги! Хочу узнать от вас советы и примеры решения подобного задания. Буду благодарен за любую информацию, которая может помочь в данном случае.
...
Рейтинг: 0 / 0
Установка размеров листа для печати
    #34934568
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amberitкак расположить текст в колонках вертикально?
Это про Font.Escapement что-ли?
...
Рейтинг: 0 / 0
Установка размеров листа для печати
    #34934902
Фотография Amberit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за подсказку по поводу Font.Escapement. Еще мнения?
...
Рейтинг: 0 / 0
Установка размеров листа для печати
    #34936200
+/-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
+/-
Гость
использовать Print Functions
...
Рейтинг: 0 / 0
Установка размеров листа для печати
    #34936260
Фотография Amberit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
использовать Print Functions

Какие из Print Fuctions нужно использовать для решения данного задания и каким образом?
...
Рейтинг: 0 / 0
Установка размеров листа для печати
    #34936364
+/-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
+/-
Гость
Print Print a string in the current font. In all but one form of this function, you can control the spacing in the print area
PrintBitmap Print a specified bitmap image at a specified location in the print area.
PrintCancel Cancel printing.
PrintClose Close the print job and sends the page to the printer.
PrintDataWindow Print a DataWindow with other DataWindows in a print job.
PrintDefineFont Define a font for the print job. PowerBuilder supports eight fonts for each print job.
PrintLine Print a line of a specified thickness at a specified location.
PrintOpen Start the print job and assigns it a print job number.
PrintOval Print an oval (or circle) with a specified line thickness at a specified location.
PrintPage Send the current page to the printer and sets up a new blank page.
PrintRect Print a rectangle with a specified line thickness at a specified location.
PrintRoundRect Print a round rectangle with a specified line thickness at a specified location.
PrintScreen Print the screen image as part of a print job.
PrintSend Send a specified string directly to the printer.
PrintSetFont Set the current print job font to one of the defined fonts.
PrintSetSpacing Sets the spacing factor that will be used to determine the space between lines.
PrintSetup Call the Printer Setup dialog box for the printer driver.
PrintText Print specified text at a specified location.
PrintWidth Return the width (in 1/1000s of an inch) of the specified string in the current font.
PrintX Return the X coordinate of the cursor.
PrintY

а если серьезно, то я тоже недавно из банка :). вы тама наверное поздравление печатать тоже собрались :). у нас решили проще добавили еще один размер бумаги и все. хотя была идея использовать вот ети функции.
...
Рейтинг: 0 / 0
Установка размеров листа для печати
    #34936533
Фотография Amberit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное, я не до конца понимаю, как использовать в моем случае Print Functions. Например, как с их помощью установить размеры листа для печати?
...
Рейтинг: 0 / 0
Установка размеров листа для печати
    #34936540
+/-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
+/-
Гость
а устанавливать не надо. использую функции печатаешь где надо (указывая положение на листе) и что надо. после печати одного конверта просто переходишь на другую страницу.
...
Рейтинг: 0 / 0
Установка размеров листа для печати
    #34937401
Фотография Amberit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кхм, но как я думаю, чтобы печатать где надо и что надо, нужно каким-то образом указать, где МОЖНО печатать. Если не устанавливать Paper.Size в DW, то по умолчанию возьмутся установки принтера. Предустановленных параметров такого размера ни в свойствах принтера, ни в Paper.Size DW нет. Создавать нужные размеры листа в принтере невыгодно по вышеописанным причинам (много рабочих мест, везде нужно настроить). При неверных настройках размера области печати печать будет производиться некорректно (например, будут появляться пустые листы, или часть информации распечатается на одном листе, часть на другом). Если возможно, приведите пример использования Print Functions в моем случае, я не вижу способа, как их корректно можно применить без установки размера Paper.Size.
...
Рейтинг: 0 / 0
Установка размеров листа для печати
    #34937478
+/-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
+/-
Гость
признаюсь честно на нестандартных листах не проверял. можешь проверить сам положи несколько нестандартных листов и зделай переход на новую страницу. должен, по идее, выйти один лист и затянутся другой. если протянет несколько листов значит моя идея не прокатит.
p.s. Вадим а ты в почту смотриш(та которая в твоем профиле. привет из ГМУСа ;) )
...
Рейтинг: 0 / 0
Установка размеров листа для печати
    #34937844
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
принтер это девайс у которого можно взять настройки.
The DeviceCapabilities function retrieves the capabilities of a printer device driver.
т.е. печать, разбиение на страницы, это проблемы программы а не принтера.

на сколько я понял задачу:
надо печатать отчет размером 11,3 см * 22,8 см на принтер у которого размер страницы по умолчанию А4.

рисуешь ДВ у которого header+detail+footer удовлетворяет размеру 11,3 см * 22,8 см.
делаешь группу на каждую строку для группы ставишь св-во "new page on group break"

т.о. после каждой строки ДВ у тебя на принтер посылается комманда "новая страница".

далее, если надо, поиграться с ориентацией бумаги и все.
...
Рейтинг: 0 / 0
Установка размеров листа для печати
    #34938129
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажется забыли про zoom
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Установка размеров листа для печати
    #34938394
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С функциями Print можно печатать все, что захочешь и как захочешь. Хоть футболку засунь в принтер. Но редактировать, конечно, удобней с DW.
...
Рейтинг: 0 / 0
Установка размеров листа для печати
    #34939108
Фотография Amberit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за обсуждение вопроса и советы!

Решение нашел достаточно простое - развернул лист на альбомную ориентацию формата A4 и подкорректировал координаты объектов. Все работает и без лишних телодвижений.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Установка размеров листа для печати
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]