Click here to Skip to main content
15,896,606 members
Articles / Web Development / HTML

EMF Printer Spool File Viewer

Rate me:
Please Sign up or sign in to vote.
4.72/5 (32 votes)
23 Apr 2014CPOL3 min read 817.4K   25.3K   92  
A viewer application for EMF format spool files
'\\ --[DevMode]------------------------------------------------------------
'\\ Represnts a DEVMODE structure stored in a file (shadow or spool...)
'\\ -----------------------------------------------------------------------
Public Class DevMode

#Region "Private properties"
    Private dmDeviceName(64) As Char
    Private dmSpecVersion As Short
    Private dmDriverVersion As Short
    Private dmSize As Short
    Private dmDriverExtra As Short
    Private dmFields As Integer
    Private dmOrientation As Short
    Private dmPaperSize As Short
    Private dmPaperLength As Short
    Private dmPaperWidth As Short
    Private dmScale As Short
    Private dmCopies As Short
    Private dmDefaultSource As Short
    Private dmPrintQuality As Short
    Private dmColor As Short
    Private dmDuplex As Short
    Private dmYResolution As Short
    Private dmTTOption As Short
    Private dmCollate As Short
    Private dmFormName(32) As Char
    Private dmUnusedPadding As Short
    Private dmBitsPerPel As Integer
    Private dmPelsWidth As Integer
    Private dmPelsHeight As Integer
    Private dmDisplayFlags As Integer
    Private dmDisplayFrequency As Integer
    Private dmICMMethod As Integer
    Private dmICMIntent As Integer
    Private dmMediaType As Integer
    Private dmDitherType As Integer
    Private dmReserved1 As Integer
    Private dmReserved2 As Integer
    Private dmPanningWidth As Integer
    Private dmPanningHeight As Integer
#End Region

#Region "Public properties"

#Region "Copies"
    Public ReadOnly Property Copies() As Short
        Get
            If dmCopies < 1 Then
                dmCopies = 1
            End If
            Return dmCopies
        End Get
    End Property
#End Region
#Region "Collate"
    Public ReadOnly Property Collate() As Boolean
        Get
            Return (dmCollate > 0)
        End Get
    End Property
#End Region
#End Region

#Region "Public constructors"
    Public Sub New(ByVal FileReader As System.IO.BinaryReader)
        dmDeviceName = FileReader.ReadChars(64)
        'FileReader.BaseStream.Seek(64, IO.SeekOrigin.Current)
        dmSpecVersion = FileReader.ReadInt16
        dmDriverVersion = FileReader.ReadInt16
        dmSize = FileReader.ReadInt16
        dmDriverExtra = FileReader.ReadInt16
        dmFields = FileReader.ReadInt32
        dmOrientation = FileReader.ReadInt16
        dmPaperSize = FileReader.ReadInt16
        dmPaperLength = FileReader.ReadInt16
        dmPaperWidth = FileReader.ReadInt16
        dmScale = FileReader.ReadInt16
        dmCopies = FileReader.ReadInt16
        dmDefaultSource = FileReader.ReadInt16
        dmPrintQuality = FileReader.ReadInt16
        dmColor = FileReader.ReadInt16
        dmDuplex = FileReader.ReadInt16
        dmYResolution = FileReader.ReadInt16
        dmTTOption = FileReader.ReadInt16
        dmCollate = FileReader.ReadInt16
        dmFormName = FileReader.ReadChars(32) '32 chars
        dmUnusedPadding = FileReader.ReadInt16
        dmBitsPerPel = FileReader.ReadInt32
        dmPelsWidth = FileReader.ReadInt32
        dmPelsHeight = FileReader.ReadInt32
        dmDisplayFlags = FileReader.ReadInt32
        dmDisplayFrequency = FileReader.ReadInt32
        dmICMMethod = FileReader.ReadInt32
        dmICMIntent = FileReader.ReadInt32
        dmMediaType = FileReader.ReadInt32
        dmDitherType = FileReader.ReadInt32
        dmReserved1 = FileReader.ReadInt32
        dmReserved2 = FileReader.ReadInt32
        dmPanningWidth = FileReader.ReadInt32
        dmPanningHeight = FileReader.ReadInt32
    End Sub
#End Region

End Class

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

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


Written By
Software Developer
Ireland Ireland
C# / SQL Server developer
Microsoft MVP (Azure) 2017
Microsoft MVP (Visual Basic) 2006, 2007

Comments and Discussions