Click here to Skip to main content
15,895,871 members
Articles / Programming Languages / Visual Basic

Print Using the Windows Fax and Picture Preview

Rate me:
Please Sign up or sign in to vote.
1.40/5 (6 votes)
17 Jan 2007CPOL 35.6K   22   3
Calling the Windows Print and Fax Viewer from a shell command is an elegant way to solve most of your .NET image print issues.

Introduction

I often admired the Windows Print and Fax Viewer for printing images. I often would ignore the individual application's print facilities and go to the Windows Print and Fax Viewer for printing images. If you want to add an excellent print facility to your project, the following code will do that:

VB
'------------------------------------------------------------------------------
'PREVIEW AND PRINTING A BITMAP 
'______________________________________________________________________________

Private Sub PrintPreviewToolStripMenuItem_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles PrintPreviewToolStripMenuItem.Click

    ' create unique file in directory so load Print and Fax is minimized
    ' This project has a directory reserved for preview,
    ' this avoids loading multiple previews which causes delay

    ' a file is required so a preliminary save of bitmap
    ' is made which isnt a bad preprint philosophy
    bm.Save(D2007DirDefault & "\prj\PrintScratch\PrintPreview.bmp")

    Dim procid
    procid = Shell("rundll32.exe C:\WINDOWS\System32\shimgvw.dll," & _ 
                   "ImageView_Fullscreen " & _
                   D2007DirDefault & "\prj\PrintScratch\PrintPreview.bmp")

End Sub

'----------------------------------------------------------
'Previewing a predetermined directory
'____________________________________________________

Private Sub PreviewDesignsWindowsPictureAndFaxViewerToolStripMenuItem_Click(_
        ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles PreviewDesignsWindowsPictureAndFaxViewerToolStripMenuItem.Click
    Dim procid
    procid = Shell("rundll32.exe C:\WINDOWS\System32\shimgvw.dll," & _
                   "ImageView_Fullscreen " & _
                   SObj.DP.designs ' directory with images)
End Sub

'---------------------------------------------------------------------------------
'Previewing a user selected Directory
'---------------------------------------------------------------------------------

Private Sub SelectDirectoryToPreviewWindowPictureAndFaxViewerToolStripMenuItem_Click(ByVal _
        sender As System.Object, ByVal e As System.EventArgs) Handles _
        SelectDirectoryToPreviewWindowPictureAndFaxViewerToolStripMenuItem.Click
    Dim newfile As String
    Me.FolderBrowserDialog1.ShowNewFolderButton = False
    Me.FolderBrowserDialog1.SelectedPath = "C:\"
    If Me.FolderBrowserDialog1.ShowDialog() <> DialogResult.OK Then Exit Sub
    newfile = Me.FolderBrowserDialog1.SelectedPath
    Dim procid
    procid = Shell("rundll32.exe C:\WINDOWS\System32\shimgvw.dll," & _ 
                   "ImageView_Fullscreen " & newfile)
End Sub

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
United States United States
Started in IT in 1959 working on Electronic accounting machines.

Worked through wiring panels and card systems.

1963-1965 USArmy
1961-1975 Computer Supervisor Contental Can
1975-1998 Data Force Incorporated - President
1998-2006 IT Director Promotions Unlimited Corp
2007 retired, project DesignLab(C)2007

Design and concept rules, coding is a required evil


Comments and Discussions

 
GeneralDirectly printing to default printer Pin
trucido7924-Jun-08 2:41
trucido7924-Jun-08 2:41 
Questionbm ? Pin
dibblm-Ohio6-Feb-07 3:56
dibblm-Ohio6-Feb-07 3:56 
AnswerRe: bm ? Pin
dmm126-Feb-07 4:58
dmm126-Feb-07 4:58 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.