Toon posts:

[VB.NET] Tiff image printen op meerdere pagina's

Pagina: 1
Acties:
  • 102 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Op de harde schijf staat een afbeelding van het type tiff image.
Deze tiff afbeelding is een ingekomen fax. Als de fax uit meerdere pagina's
bestaat, dan bestaat deze tiff image ook uit meerdere "pagina's", als
ik de tiff afbeelding open met Microsoft Office Document Imaging.

Nu wil ik deze tiff image inlezen en uitprinten. Dit gaat goed, zolang de tiff
afbeelding uit 1 A4/pagina bestaat. De andere pagina's worden niet geprint.
Mijn vraag is natuurlijk hoe kan ik ervoor zorgen dat ook de andere pagina's
van de tiff afbeelding worden afgedrukt. Ik maak momenteel gebruik van
het .NET PrintDocument Object.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'*
'*      Met dit commando roep ik de printopdracht aan
'*
        PrintDocument1.Print()


'*
'*     Het printdocument object roept deze functie aan en dan roep ik
'*     de DrawImage routine aan op de graphics, alleen doet ie alleen de eerste
'*     pagina.....
'*
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        e.Graphics.DrawImage(Image.FromFile("c:\Cisco_fax.tif"), 0, 0)

    End Sub

Verwijderd

Je kan de pagina omvange opvragen + de marges. Dus kun je een gedeelte op page 1 tekeken en op page 2 bijvoorbeeld. Met de functie HasMorePages.

  • Remenic
  • Registratie: Juni 2001
  • Laatst online: 12-12-2025
Ik ben eigenlijk niet met vb.net bekend, maar moet je geen dubbele \ gebruiken in het pad? :>

Verwijderd

Remenic schreef op 04 maart 2004 @ 12:30:
Ik ben eigenlijk niet met vb.net bekend, maar moet je geen dubbele \ gebruiken in het pad? :>
Jawel, of een @ voor je string zetten... Remenic is oplettend! ;)

Verwijderd

Topicstarter
Bedankt Cristal,

zolang er pagina's zijn moet ik die hasmorepages op true zetten.
Vervolgens moet ik alleen nog de rectangle bijhouden die geprint moet worden
uit de afbeelding. Heb nu nl. 4 keer pagina 1 uit de printer rollen.

Verwijderd

Verwijderd schreef op 04 maart 2004 @ 12:44:
Bedankt Cristal,

zolang er pagina's zijn moet ik die hasmorepages op true zetten.
Vervolgens moet ik alleen nog de rectangle bijhouden die geprint moet worden
uit de afbeelding. Heb nu nl. 4 keer pagina 1 uit de printer rollen.
Is ook intressant.. :Y)
Maargoed, je moet inderdaad dan wel weer je rectangle bijhouden en elke keer dus een ander stukje tekenen.

Verwijderd

Topicstarter
Oké een volgend probleem doet zich voor.
De Image.FromFile haalt alleen maar de eerste pagina op van de tiff-image,
wat de standaard xp-preview en ms paint ook doen. Toevallig een idee
om de andere pagina's met een standaard .NET component uit te lezen
of meot ik met de binary data aan de slag

Verwijderd

Topicstarter
Heb t aan de gang dit is de uiteindelijke code

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        mImage = Image.FromFile("c:\\Cisco_fax.tif")
        CurrentFrame = 0
        ImageDimension = New System.Drawing.Imaging.FrameDimension(mImage.FrameDimensionsList(0))
        TotalFrames = mImage.GetFrameCount(ImageDimension)
        PrintDocument1.Print()
    End Sub

    Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        If CurrentFrame < TotalFrames - 1 Then
            e.HasMorePages = True
        Else
            e.HasMorePages = False
        End If
        mImage.SelectActiveFrame(ImageDimension, CurrentFrame)
        e.Graphics.DrawImage(mImage, 0, 0)
        CurrentFrame = CurrentFrame + 1
    End Sub

Verwijderd

Verwijderd schreef op 04 maart 2004 @ 13:14:
De Image.FromFile haalt alleen maar de eerste pagina op van de tiff-image,
wat de standaard xp-preview en ms paint ook doen.
Hmz, wat bedoel je precies? Kan je je vraag anders formuleren of moet Cristal nu gewoon een bakkie coffee pakken en nog is kijken. B)

Verwijderd

Topicstarter
ik had een probleem met het ophalen van de verschillende delen
van een tiff image, echter is dat opgelost en heb hierboven de code toegevoegd die mijn problemen die ik had oplosten
Pagina: 1