Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Печать табуляторов с помощью TextOut

Delphi , ОС и Железо , Принтеры и Печать

Печать табуляторов с помощью TextOut

Автор: Bob Fisher

Я пытаюсь напечатать некий текст с помощью Printer.Canvas.TextOut. Моя строка содержит табуляторы, но они почему-то печатаются на бумаге в виде черных прямоугольников. Как мне правильно напечатать строку, содержащую табуляторы?

Обратите внимание на функцию API "TabbedTextOut". Ваш холст (canvas) воспользоваться ей не сможет, но вы можете просто вызвать эту API функцию и передать ей дескриптор холста.

Бессконечная борьба с табуляцией в текстовом печати!

Чтобы правильно напечатать строку, содержащую табуляции, используя метод Printer.Canvas.TextOut, вам нужно указать расстояние между табуляциями при вызове этого метода.

По умолчанию метод TextOut будет отображать табуляции как литеральные символы на принтере, что почему вы видите черные прямоугольники вместо фактических табуляций. Для исправления этой проблемы можно использовать свойство TabStop объекта Printer.Canvas, чтобы задать расстояние между табуляциями.

Вот пример:

' Создайте новый объект принтера
Dim pc As New Printer.Canvas

' Установите шрифт и цвет текста
pc.Font = New Font("Arial", 12)
pc.TextColor = Color.Black

' Определите строку с табуляциями
Dim str As String = "This is a test string with tabs:     Hello, World!     Again!"

' Вызовите TextOut с TabStop, установленным в желаемое расстояние (например, 4 пробела на табуляцию)
pc.TextOut(0, 0, str, New Point(0, 0), New SizeF(100, 20), 4) ' Установите TabStop в 4

' Печатайте объект принтера
pc.Print()

В этом примере мы устанавливаем свойство TabStop в значение 4, что означает, что каждый символ табуляции будет заменен пробелом, эквивалентным 4 символам. Это должно правильно отображать вашу строку с табуляциями на принтере.

Альтернативно, можно использовать функцию API TabbedTextOut, как упоминается в статье. Однако, это метод требует отдельного вызова для каждой строки текста и менее эффективен, чем использование метода TextOut с установленным TabStop.

Автор статьи Bob Fisher находит способ печатать текст, содержащий табуляторы, с помощью функции TextOut в Printer.Canvas, используя функцию API "TabbedTextOut" для корректной отображения табуляторов.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Принтеры и Печать ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 19:48:50/0.0071799755096436/2