Страница: 1 |
|
Вопрос: Печать в VB 2005
|
Добавлено: 01.03.06 17:21
|
|
Автор вопроса: avdey | ICQ: 219571279
|
Есть такой код. По нажатию cmdPrint перебираются имена файлов из листбокса и вызывается PrintPage для каждого файла...
Private Sub cmdPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPrint.Click
With lstPrint
Ind = 0
For a = 0 To .Items.Count - 1
If VB.Right(.Items(a), 1) = "П" Then
PageSet.PageSettings.Landscape = False
.Items(a) = VB.Left(.Items(a), Len(.Items(a)) - 5)
Else
PageSet.PageSettings.Landscape = True
End If
PrintDoc.Print()
Ind = Ind + 1
Next
.Items.Clear()
End With
End Sub
Private Sub PrintDoc_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDoc.PrintPage
If PageSet.PageSettings.Landscape Then
e.Graphics.DrawImage(System.Drawing.Image.FromFile(Path.curPath & lstPrint.Items(Ind)), 1, 1, 580, 825)
e.Graphics.DrawImage(System.Drawing.Image.FromFile(Path.curPath & "п;" & lstPrint.Items(Ind)), 589, 1, 580, 825)
Else
e.Graphics.DrawImage(System.Drawing.Image.FromFile(Path.curPath & lstPrint.Items(Ind)), 1, 1, 820, 1160)
End If
End Sub
Можно ли в PrintPage перебирать эти файлы? Я так делал но печатается не несколько страниц, а одна с последним файлом. Есть какой-то параметр HasMorePages который Boolen но я не пойму как его использовать. HELP!!!
Ответить
|
Номер ответа: 3 Автор ответа: avdey
ICQ: 219571279
Вопросов: 34 Ответов: 486
|
Профиль | | #3
|
Добавлено: 02.03.06 12:54
|
Тут цикл в PrintPage, но, блин, печатается первая страница и все.. И PageSet.PageSettings.Landscape = True не устанавливается перед e.Graphics.DrawImage...
Private Sub cmdPrint_Click( ByVal sender As System. Object, ByVal e As System.EventArgs) Handles cmdPrint.Click
PrintDoc.Print()
lstPrint.Items.Clear()
End Sub
Private Sub PrintDoc_PrintPage( ByVal sender As System. Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDoc.PrintPage
With lstPrint
For a = 0 To .Items.Count - 1
If a = .Items.Count - 1 Then
e.HasMorePages = False
Else
e.HasMorePages = True
End If
If VB.Right(.Items , 1) = "П" Then
PageSet.PageSettings.Landscape = False
.Items = VB.Left(.Items , Len(.Items ) - 5)
e.Graphics.DrawImage(System.Drawing.Image.FromFile(Path.curPath & lstPrint.Items(Ind)), 1, 1, 820, 1160)
Else
PageSet.PageSettings.Landscape = True
e.Graphics.DrawImage(System.Drawing.Image.FromFile(Path.curPath & lstPrint.Items(Ind)), 1, 1, 580, 825)
e.Graphics.DrawImage(System.Drawing.Image.FromFile(Path.curPath & "п;" & lstPrint.Items(Ind)), 589, 1, 580, 825)
End If
Next
End With
End Sub
Ответить
|
Страница: 1 |
Поиск по форуму