Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Печать выходит за рамки!!! Добавлено: 04.11.08 17:39  

Автор вопроса:  werber | Web-сайт: www.werbersoft.ru
Хочу напечатаь текст. Пишу следующий код:

Printer.CurrentX = 100
Printer.Print "Заголовок листа"
Printer.Print ""
Printer.Print ""
Printer.Print "Текст1:"
Printer.Print Text1.Text
Printer.Print ""
Printer.Print "Текст2:"
Printer.Print Text2.Text
Printer.Print ""
Printer.Print "Текст3:"
Printer.Print Text6.Text
Printer.Print ""
Printer.Print "-------------------------"
Printer.Print "Copyright (C) 2007-2008 Werber Soft"
Printer.EndDoc

Казалось бы всё замечательно! НО: если будет слишком длинная строка, она "элегантно" быдет уходить за лист. Чё с этим делать? Думал, Printer.Zoom решит проблему - да не вышло. У меня на счёт этого две идеи:
1. Как то резать сам текст на строки длины, меньшей чем длина листа бумаги, а затем печатать их.
2. Возможно есть какое то свойство у Printer-а, определяюшее правую границу листа, чтобы доходя до него, слова переносились автоматически.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 Father



Вопросов: 0
Ответов: 159
 Профиль | | #1 Добавлено: 04.11.08 23:29
Такого свойства у принтера походу нет, так что резать!
Я бы наверно гнал по контексту принтера тестовую строку через GetTextExtentExPoint.
шестой параметр этой ф-ции (LPINT alpDx) - массив int-значений правых границ каждого символа в строке в логических координатах. По ним бы и определять - резать или нет.

Ответить

Номер ответа: 2
Автор ответа:
 werber



Вопросов: 71
Ответов: 112
 Web-сайт: www.werbersoft.ru
 Профиль | | #2
Добавлено: 05.11.08 08:27
Но позвольте, ведь есть такие свойства, как Printer.CurrentX и Printer.CurrentY, которые задают верхний левый угол. Наверняка можно сделать что то и с правой частью листа.

А что скажут другие?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам