Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
End Sub. В кнопках Command1 и Command2 мы пишем код для смены имени загружаемого файла
В кнопках Command1 и Command2 мы пишем код для смены имени загружаемого файла. Все это опять-таки похоже на программку Tester из Главы 8, и на этом я подробно останавливаться не буду. Private Sub Command1_Click() Private Sub Command2_Click() А вот сейчас мы переходм к тому, ради чего мы все это затеяли. Попробуем подготовить для печать документ. В процедуре кнопки Command3 мы начнем формировать страницу для печати. Сперва объявим кое-какие переменные Private Sub Command3_Click() обнуляем переменную, содержащую количество шрифтов на всякий случай QuantityFonts = 0 В смысле определения шрифтов на текущем принтере я пошел по пути наименьшего сопротивления. Исходя из того, что на любом компьютере установлен хотя бы один из четырех общеупотребимых шрифтов, я проверяю их наличие и имена найденых шрифтов загружаю в динамический массив Fonts(). Для этого мы организуем цикл, где перебираем все существующие на текущем компьютере шрифты (их количество нам возвращает свойство .FontCount), и грузим их имена в массив Fonts(). При этом счетчик QuantityFonts отражает, сколько из четырех шрифтов найдено. For NumberFont = 0 To Printer.FontCount - 1 Затем, если хоть один шрифт найден, мы устанавливаем его из первого элемента массива If QuantityFonts > 0 Then Printer.FontName = Fonts(1) Ну уж если не найдено ни одного шрифта, то в надежде, что какой-то там шрифт в принтере по умолчанию все же есть, продолжаем формировать документ. Printer.ScaleMode = vbCentimeters Хочу сказать, что начинать формирование страницы методом Printer.NewPage (создание новой страницы) не надо, иначе первой вылезет пустая страница. У тебя нет еще ни одной страницы, и нет необходимости переходить на новую. Вот для второй, третьей и т.д. страницы - пожалуйста. Printer.FontSize = 12 'устанавливаем подчеркивание Прижимаем вправо первую строчку с названием фирмы. Для установки положения начала вывода по-горизонтали используется свойство .CurrentX. Чтобы строчка прижалась вправо мы из общей ширины нашего документа Printer.ScaleWidth вычтем длину нашей строчки Printer.TextWidth(Label1.Caption), которую она займет при печати объявленным нами шрифтом: Printer.CurrentX = Printer.ScaleWidth - Printer.TextWidth(Label1.Caption) В переменной VertCoord мы будем накапливать сдвиг по вертикали. Сначала запишем в нее, сколько высоты заняла первая строка (вместе с отступами). VertCoord = Printer.TextHeight(Label1.Caption) Теперь встраиваем в страницу первую строчку. Никакой печати при этом не происходит. Собственно принтер начинает работать только тогда, когда VB посчитает, что формирование документа полностью закончено. Это произойдет, если будет написан оператор Printer.EndDoc, либо если ты выйдешь из программы совсем.
|