Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 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  

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 01.03.06 17:40
PrintPage вызывается для каждой страницы в отдельности. Если у вас
многостраничный документ, то при обработке всех страниц кроме
последней задавайте в обработчике PrintPage

e.HasMorePages = True

На последней странице соответственно укажите

e.HasMorePages = False

Ответить

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



ICQ: 219571279 

Вопросов: 34
Ответов: 486
 Профиль | | #2 Добавлено: 01.03.06 18:39
Я так пробовал, но все равно печатается последняя страница. я ставил HasMorePeges в PrintPage где только можно придумать... Но...
Завтра, если не против, выложу сдесь код обработки в PrintPage, может че подскажите...

Ответить

Номер ответа: 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(a), 1) = "П" Then
                    PageSet.PageSettings.Landscape = False
                    .Items(a) = VB.Left(.Items(a), Len(.Items(a)) - 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 |

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



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