Search Results for

    Show / Hide Table of Contents

    Exporting Excel files to PDF (VB.Net / netframework)

    Note

    This demo is available in your FlexCel installation at <FlexCel Install Folder>\samples\vb\VS2022\netframework\25.Printing and Exporting\30.ExportPdf and also at https:​//​github.​com/​tmssoftware/​TMS-​FlexCel.​NET-​demos/​tree/​master/​vb/​VS2022/​netframework/​Modules/​25.​Printing and Exporting/​30.​ExportPdf

    Overview

    FlexCel can natively export an Excel file to PDF, without needing to have Excel or Adobe Pdf installed.

    Concepts

    • FlexCel PDF output is not 100% identical to Excel output, and it can't be that way. But it is very similar, and this includes fonts, colors, margins, headers/footers/images, etc. It can print cells with multiple fonts, it can replace the macros on headers and footers (like "&CPage &P of &N"), export headers and hyperlinks, correctly export conditional formats and the list goes on.

    • Among the things that are not exported you can find:

      • ActiveX objects

      • 3D Charts (They will be rendered as 2d)

      • Not common AutoShapes (most used Autoshapes, as rectangles, rounded rectangles, ellipses, etc are exported)

    Files

    AssemblyInfo.vb

    Imports System.Reflection
    Imports System.Runtime.CompilerServices
    
    '
    ' General Information about an assembly is controlled through the following 
    ' set of attributes. Change these attribute values to modify the information
    ' associated with an assembly.
    '
    <Assembly: AssemblyTitle("")>
    <Assembly: AssemblyDescription("")>
    <Assembly: AssemblyConfiguration("")>
    <Assembly: AssemblyCompany("")>
    <Assembly: AssemblyProduct("")>
    <Assembly: AssemblyCopyright("(c) 2002 - 2014 TMS Software")>
    <Assembly: AssemblyTrademark("")>
    <Assembly: AssemblyCulture("")>
    
    '
    ' Version information for an assembly consists of the following four values:
    '
    '      Major Version
    '      Minor Version 
    '      Build Number
    '      Revision
    '
    ' You can specify all the values or you can default the Revision and Build Numbers 
    ' by using the '*' as shown below:
    
    <Assembly: AssemblyVersion("6.2.1.0")>
    
    '
    ' In order to sign your assembly you must specify a key to use. Refer to the 
    ' Microsoft .NET Framework documentation for more information on assembly signing.
    '
    ' Use the attributes below to control which key is used for signing. 
    '
    ' Notes: 
    '   (*) If no key is specified, the assembly is not signed.
    '   (*) KeyName refers to a key that has been installed in the Crypto Service
    '       Provider (CSP) on your machine. KeyFile refers to a file which contains
    '       a key.
    '   (*) If the KeyFile and the KeyName values are both specified, the 
    '       following processing occurs:
    '       (1) If the KeyName can be found in the CSP, that key is used.
    '       (2) If the KeyName does not exist and the KeyFile does exist, the key 
    '           in the KeyFile is installed into the CSP and used.
    '   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
    '       When specifying the KeyFile, the location of the KeyFile should be
    '       relative to the project output directory which is
    '       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
    '       located in the project directory, you would specify the AssemblyKeyFile 
    '       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
    '   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
    '       documentation for more information on this.
    '
    <Assembly: AssemblyDelaySign(False)>
    <Assembly: AssemblyKeyFile("")>
    <Assembly: AssemblyKeyName("")>
    

    Form1.Designer.vb

    Imports System.Collections
    Imports System.ComponentModel
    Imports FlexCel.Core
    Imports FlexCel.XlsAdapter
    Imports System.IO
    Imports System.Reflection
    Imports System.Drawing.Drawing2D
    Imports FlexCel.Pdf
    Imports System.Runtime.InteropServices
    Namespace ExportPdf
        Partial Public Class mainForm
            Inherits System.Windows.Forms.Form
    
            Private openFileDialog1 As System.Windows.Forms.OpenFileDialog
            Private panel1 As System.Windows.Forms.Panel
            Private label1 As System.Windows.Forms.Label
            Private edFileName As System.Windows.Forms.TextBox
            Private panel3 As System.Windows.Forms.Panel
            Private label12 As System.Windows.Forms.Label
            Private label13 As System.Windows.Forms.Label
            Private label14 As System.Windows.Forms.Label
            Private edTop As System.Windows.Forms.TextBox
            Private edLeft As System.Windows.Forms.TextBox
            Private label15 As System.Windows.Forms.Label
            Private edRight As System.Windows.Forms.TextBox
            Private label16 As System.Windows.Forms.Label
            Private edBottom As System.Windows.Forms.TextBox
            Private label17 As System.Windows.Forms.Label
            Private WithEvents cbSheet As System.Windows.Forms.ComboBox
            Private label18 As System.Windows.Forms.Label
            Private WithEvents chExportAll As System.Windows.Forms.CheckBox
            Private exportDialog As System.Windows.Forms.SaveFileDialog
            Private panel4 As System.Windows.Forms.Panel
            Private label19 As System.Windows.Forms.Label
            Private chEmbed As System.Windows.Forms.CheckBox
            Private label20 As System.Windows.Forms.Label
            Private cbFontMapping As System.Windows.Forms.ComboBox
            Private panel5 As System.Windows.Forms.Panel
            Private label4 As System.Windows.Forms.Label
            Private edZoom As System.Windows.Forms.TextBox
            Private WithEvents chFitIn As System.Windows.Forms.CheckBox
            Private label6 As System.Windows.Forms.Label
            Private label5 As System.Windows.Forms.Label
            Private edVPages As System.Windows.Forms.TextBox
            Private edHPages As System.Windows.Forms.TextBox
            Private label21 As System.Windows.Forms.Label
            Private panel6 As System.Windows.Forms.Panel
            Private label11 As System.Windows.Forms.Label
            Private edf As System.Windows.Forms.TextBox
            Private labelb As System.Windows.Forms.Label
            Private edb As System.Windows.Forms.TextBox
            Private label9 As System.Windows.Forms.Label
            Private edr As System.Windows.Forms.TextBox
            Private label8 As System.Windows.Forms.Label
            Private edt As System.Windows.Forms.TextBox
            Private label7 As System.Windows.Forms.Label
            Private edl As System.Windows.Forms.TextBox
            Private label10 As System.Windows.Forms.Label
            Private edh As System.Windows.Forms.TextBox
            Private label22 As System.Windows.Forms.Label
            Private panel7 As System.Windows.Forms.Panel
            Private label23 As System.Windows.Forms.Label
            Private edFooter As System.Windows.Forms.TextBox
            Private label3 As System.Windows.Forms.Label
            Private edHeader As System.Windows.Forms.TextBox
            Private label2 As System.Windows.Forms.Label
            Private panel8 As System.Windows.Forms.Panel
            Private chPrintLeft As System.Windows.Forms.CheckBox
            Private chFormulaText As System.Windows.Forms.CheckBox
            Private chGridLines As System.Windows.Forms.CheckBox
            Private label24 As System.Windows.Forms.Label
            Private panel9 As System.Windows.Forms.Panel
            Private label25 As System.Windows.Forms.Label
            Private label26 As System.Windows.Forms.Label
            Private edAuthor As System.Windows.Forms.TextBox
            Private label27 As System.Windows.Forms.Label
            Private label28 As System.Windows.Forms.Label
            Private edTitle As System.Windows.Forms.TextBox
            Private edSubject As System.Windows.Forms.TextBox
            Private cbKerning As System.Windows.Forms.CheckBox
            Private chLandscape As System.Windows.Forms.CheckBox
            Private cbResetPageNumber As System.Windows.Forms.CheckBox
            Private cbUseGetFontData As System.Windows.Forms.CheckBox
            Private cbConfidential As System.Windows.Forms.CheckBox
            Private chSubset As System.Windows.Forms.CheckBox
            Private components As System.ComponentModel.IContainer = Nothing
    
            ''' <summary>
            ''' Clean up any resources being used.
            ''' </summary>
            Protected Overrides Sub Dispose(ByVal disposing As Boolean)
                If disposing Then
                    If components IsNot Nothing Then
                        components.Dispose()
                    End If
                End If
                MyBase.Dispose(disposing)
            End Sub
    
            #Region "Windows Form Designer generated code"
            ''' <summary>
            ''' Required method for Designer support - do not modify
            ''' the contents of this method with the code editor.
            ''' </summary>
            Private Sub InitializeComponent()
                Dim resources As New System.ComponentModel.ComponentResourceManager(GetType(mainForm))
                Dim tPdfProperties1 As New FlexCel.Pdf.TPdfProperties()
                Me.openFileDialog1 = New System.Windows.Forms.OpenFileDialog()
                Me.panel1 = New System.Windows.Forms.Panel()
                Me.panel2 = New System.Windows.Forms.Panel()
                Me.label32 = New System.Windows.Forms.Label()
                Me.label31 = New System.Windows.Forms.Label()
                Me.label30 = New System.Windows.Forms.Label()
                Me.cbTagged = New System.Windows.Forms.ComboBox()
                Me.cbVersion = New System.Windows.Forms.ComboBox()
                Me.cbPdfType = New System.Windows.Forms.ComboBox()
                Me.label34 = New System.Windows.Forms.Label()
                Me.cbConfidential = New System.Windows.Forms.CheckBox()
                Me.cbUseGetFontData = New System.Windows.Forms.CheckBox()
                Me.cbResetPageNumber = New System.Windows.Forms.CheckBox()
                Me.panel9 = New System.Windows.Forms.Panel()
                Me.label29 = New System.Windows.Forms.Label()
                Me.edLang = New System.Windows.Forms.TextBox()
                Me.edSubject = New System.Windows.Forms.TextBox()
                Me.label28 = New System.Windows.Forms.Label()
                Me.edTitle = New System.Windows.Forms.TextBox()
                Me.label27 = New System.Windows.Forms.Label()
                Me.label26 = New System.Windows.Forms.Label()
                Me.edAuthor = New System.Windows.Forms.TextBox()
                Me.label25 = New System.Windows.Forms.Label()
                Me.edFileName = New System.Windows.Forms.TextBox()
                Me.panel8 = New System.Windows.Forms.Panel()
                Me.chLandscape = New System.Windows.Forms.CheckBox()
                Me.label24 = New System.Windows.Forms.Label()
                Me.chPrintLeft = New System.Windows.Forms.CheckBox()
                Me.chFormulaText = New System.Windows.Forms.CheckBox()
                Me.chGridLines = New System.Windows.Forms.CheckBox()
                Me.panel7 = New System.Windows.Forms.Panel()
                Me.edFooter = New System.Windows.Forms.TextBox()
                Me.label3 = New System.Windows.Forms.Label()
                Me.edHeader = New System.Windows.Forms.TextBox()
                Me.label2 = New System.Windows.Forms.Label()
                Me.label23 = New System.Windows.Forms.Label()
                Me.panel6 = New System.Windows.Forms.Panel()
                Me.label22 = New System.Windows.Forms.Label()
                Me.edf = New System.Windows.Forms.TextBox()
                Me.edb = New System.Windows.Forms.TextBox()
                Me.edr = New System.Windows.Forms.TextBox()
                Me.edt = New System.Windows.Forms.TextBox()
                Me.label7 = New System.Windows.Forms.Label()
                Me.edl = New System.Windows.Forms.TextBox()
                Me.edh = New System.Windows.Forms.TextBox()
                Me.label9 = New System.Windows.Forms.Label()
                Me.label10 = New System.Windows.Forms.Label()
                Me.label8 = New System.Windows.Forms.Label()
                Me.labelb = New System.Windows.Forms.Label()
                Me.label11 = New System.Windows.Forms.Label()
                Me.panel5 = New System.Windows.Forms.Panel()
                Me.label21 = New System.Windows.Forms.Label()
                Me.label4 = New System.Windows.Forms.Label()
                Me.edZoom = New System.Windows.Forms.TextBox()
                Me.chFitIn = New System.Windows.Forms.CheckBox()
                Me.label6 = New System.Windows.Forms.Label()
                Me.label5 = New System.Windows.Forms.Label()
                Me.edVPages = New System.Windows.Forms.TextBox()
                Me.edHPages = New System.Windows.Forms.TextBox()
                Me.panel4 = New System.Windows.Forms.Panel()
                Me.chSubset = New System.Windows.Forms.CheckBox()
                Me.cbKerning = New System.Windows.Forms.CheckBox()
                Me.label20 = New System.Windows.Forms.Label()
                Me.cbFontMapping = New System.Windows.Forms.ComboBox()
                Me.chEmbed = New System.Windows.Forms.CheckBox()
                Me.label19 = New System.Windows.Forms.Label()
                Me.label18 = New System.Windows.Forms.Label()
                Me.cbSheet = New System.Windows.Forms.ComboBox()
                Me.panel3 = New System.Windows.Forms.Panel()
                Me.edBottom = New System.Windows.Forms.TextBox()
                Me.label17 = New System.Windows.Forms.Label()
                Me.edRight = New System.Windows.Forms.TextBox()
                Me.label16 = New System.Windows.Forms.Label()
                Me.edLeft = New System.Windows.Forms.TextBox()
                Me.label15 = New System.Windows.Forms.Label()
                Me.edTop = New System.Windows.Forms.TextBox()
                Me.label14 = New System.Windows.Forms.Label()
                Me.label13 = New System.Windows.Forms.Label()
                Me.label12 = New System.Windows.Forms.Label()
                Me.chExportAll = New System.Windows.Forms.CheckBox()
                Me.label1 = New System.Windows.Forms.Label()
                Me.exportDialog = New System.Windows.Forms.SaveFileDialog()
                Me.mainToolbar = New System.Windows.Forms.ToolStrip()
                Me.openFile = New System.Windows.Forms.ToolStripButton()
                Me.export = New System.Windows.Forms.ToolStripButton()
                Me.btnClose = New System.Windows.Forms.ToolStripButton()
                Me.flexCelPdfExport1 = New FlexCel.Render.FlexCelPdfExport()
                Me.panel1.SuspendLayout()
                Me.panel2.SuspendLayout()
                Me.panel9.SuspendLayout()
                Me.panel8.SuspendLayout()
                Me.panel7.SuspendLayout()
                Me.panel6.SuspendLayout()
                Me.panel5.SuspendLayout()
                Me.panel4.SuspendLayout()
                Me.panel3.SuspendLayout()
                Me.mainToolbar.SuspendLayout()
                Me.SuspendLayout()
                ' 
                ' openFileDialog1
                ' 
                Me.openFileDialog1.DefaultExt = "xls"
                Me.openFileDialog1.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm|Excel 97/2003|*.xls|Excel 2007|*.xlsx;*.xlsm|All " & "files|*.*"
                Me.openFileDialog1.Title = "Open an Excel File"
                ' 
                ' panel1
                ' 
                Me.panel1.BackColor = System.Drawing.Color.White
                Me.panel1.Controls.Add(Me.panel2)
                Me.panel1.Controls.Add(Me.cbConfidential)
                Me.panel1.Controls.Add(Me.cbUseGetFontData)
                Me.panel1.Controls.Add(Me.cbResetPageNumber)
                Me.panel1.Controls.Add(Me.panel9)
                Me.panel1.Controls.Add(Me.edFileName)
                Me.panel1.Controls.Add(Me.panel8)
                Me.panel1.Controls.Add(Me.panel7)
                Me.panel1.Controls.Add(Me.panel6)
                Me.panel1.Controls.Add(Me.panel5)
                Me.panel1.Controls.Add(Me.panel4)
                Me.panel1.Controls.Add(Me.label18)
                Me.panel1.Controls.Add(Me.cbSheet)
                Me.panel1.Controls.Add(Me.panel3)
                Me.panel1.Controls.Add(Me.chExportAll)
                Me.panel1.Controls.Add(Me.label1)
                Me.panel1.Dock = System.Windows.Forms.DockStyle.Fill
                Me.panel1.Location = New System.Drawing.Point(0, 38)
                Me.panel1.Name = "panel1"
                Me.panel1.Size = New System.Drawing.Size(768, 593)
                Me.panel1.TabIndex = 3
                ' 
                ' panel2
                ' 
                Me.panel2.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.panel2.BackColor = System.Drawing.Color.FromArgb((CInt((CByte(192)))), (CInt((CByte(192)))), (CInt((CByte(255)))))
                Me.panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.panel2.Controls.Add(Me.label32)
                Me.panel2.Controls.Add(Me.label31)
                Me.panel2.Controls.Add(Me.label30)
                Me.panel2.Controls.Add(Me.cbTagged)
                Me.panel2.Controls.Add(Me.cbVersion)
                Me.panel2.Controls.Add(Me.cbPdfType)
                Me.panel2.Controls.Add(Me.label34)
                Me.panel2.Location = New System.Drawing.Point(32, 146)
                Me.panel2.Name = "panel2"
                Me.panel2.Size = New System.Drawing.Size(688, 53)
                Me.panel2.TabIndex = 42
                ' 
                ' label32
                ' 
                Me.label32.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label32.Location = New System.Drawing.Point(8, 22)
                Me.label32.Name = "label32"
                Me.label32.Size = New System.Drawing.Size(41, 16)
                Me.label32.TabIndex = 41
                Me.label32.Text = "Type:"
                ' 
                ' label31
                ' 
                Me.label31.AutoSize = True
                Me.label31.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label31.Location = New System.Drawing.Point(219, 22)
                Me.label31.Name = "label31"
                Me.label31.Size = New System.Drawing.Size(53, 14)
                Me.label31.TabIndex = 40
                Me.label31.Text = "Version:"
                ' 
                ' label30
                ' 
                Me.label30.AutoSize = True
                Me.label30.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label30.Location = New System.Drawing.Point(467, 22)
                Me.label30.Name = "label30"
                Me.label30.Size = New System.Drawing.Size(50, 14)
                Me.label30.TabIndex = 39
                Me.label30.Text = "Tagged:"
                ' 
                ' cbTagged
                ' 
                Me.cbTagged.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
                Me.cbTagged.Items.AddRange(New Object() { "Full", "None"})
                Me.cbTagged.Location = New System.Drawing.Point(523, 19)
                Me.cbTagged.Name = "cbTagged"
                Me.cbTagged.Size = New System.Drawing.Size(149, 21)
                Me.cbTagged.TabIndex = 36
                ' 
                ' cbVersion
                ' 
                Me.cbVersion.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
                Me.cbVersion.Items.AddRange(New Object() { "1.4 (Acrobat 5)", "1.6 (Acrobat 7)"})
                Me.cbVersion.Location = New System.Drawing.Point(278, 19)
                Me.cbVersion.Name = "cbVersion"
                Me.cbVersion.Size = New System.Drawing.Size(168, 21)
                Me.cbVersion.TabIndex = 35
                ' 
                ' cbPdfType
                ' 
                Me.cbPdfType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
                Me.cbPdfType.Items.AddRange(New Object() { "Standard", "PDF/A1", "PDF/A2", "PDF/A3"})
                Me.cbPdfType.Location = New System.Drawing.Point(56, 19)
                Me.cbPdfType.Name = "cbPdfType"
                Me.cbPdfType.Size = New System.Drawing.Size(144, 21)
                Me.cbPdfType.TabIndex = 34
                ' 
                ' label34
                ' 
                Me.label34.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label34.Location = New System.Drawing.Point(8, 0)
                Me.label34.Name = "label34"
                Me.label34.Size = New System.Drawing.Size(192, 16)
                Me.label34.TabIndex = 20
                Me.label34.Text = "Pdf options:"
                ' 
                ' cbConfidential
                ' 
                Me.cbConfidential.Anchor = (CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.cbConfidential.Location = New System.Drawing.Point(488, 557)
                Me.cbConfidential.Name = "cbConfidential"
                Me.cbConfidential.Size = New System.Drawing.Size(232, 16)
                Me.cbConfidential.TabIndex = 41
                Me.cbConfidential.Text = "Print ""Confidential"" on each page"
                ' 
                ' cbUseGetFontData
                ' 
                Me.cbUseGetFontData.Location = New System.Drawing.Point(32, 557)
                Me.cbUseGetFontData.Name = "cbUseGetFontData"
                Me.cbUseGetFontData.Size = New System.Drawing.Size(312, 16)
                Me.cbUseGetFontData.TabIndex = 40
                Me.cbUseGetFontData.Text = "Use UNMANAGED calls to Win32 API to find the fonts."
                ' 
                ' cbResetPageNumber
                ' 
                Me.cbResetPageNumber.Anchor = (CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.cbResetPageNumber.Location = New System.Drawing.Point(528, 40)
                Me.cbResetPageNumber.Name = "cbResetPageNumber"
                Me.cbResetPageNumber.Size = New System.Drawing.Size(200, 16)
                Me.cbResetPageNumber.TabIndex = 39
                Me.cbResetPageNumber.Text = "Reset Page number on each sheet"
                ' 
                ' panel9
                ' 
                Me.panel9.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.panel9.BackColor = System.Drawing.Color.FromArgb((CInt((CByte(255)))), (CInt((CByte(192)))), (CInt((CByte(255)))))
                Me.panel9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.panel9.Controls.Add(Me.label29)
                Me.panel9.Controls.Add(Me.edLang)
                Me.panel9.Controls.Add(Me.edSubject)
                Me.panel9.Controls.Add(Me.label28)
                Me.panel9.Controls.Add(Me.edTitle)
                Me.panel9.Controls.Add(Me.label27)
                Me.panel9.Controls.Add(Me.label26)
                Me.panel9.Controls.Add(Me.edAuthor)
                Me.panel9.Controls.Add(Me.label25)
                Me.panel9.Location = New System.Drawing.Point(32, 64)
                Me.panel9.Name = "panel9"
                Me.panel9.Size = New System.Drawing.Size(688, 76)
                Me.panel9.TabIndex = 38
                ' 
                ' label29
                ' 
                Me.label29.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label29.Location = New System.Drawing.Point(8, 49)
                Me.label29.Name = "label29"
                Me.label29.Size = New System.Drawing.Size(48, 16)
                Me.label29.TabIndex = 38
                Me.label29.Text = "Lang:"
                ' 
                ' edLang
                ' 
                Me.edLang.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edLang.Location = New System.Drawing.Point(56, 46)
                Me.edLang.Name = "edLang"
                Me.edLang.Size = New System.Drawing.Size(144, 20)
                Me.edLang.TabIndex = 37
                Me.edLang.Text = "en-US"
                ' 
                ' edSubject
                ' 
                Me.edSubject.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.edSubject.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edSubject.Location = New System.Drawing.Point(278, 45)
                Me.edSubject.Name = "edSubject"
                Me.edSubject.Size = New System.Drawing.Size(394, 20)
                Me.edSubject.TabIndex = 35
                ' 
                ' label28
                ' 
                Me.label28.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label28.Location = New System.Drawing.Point(216, 50)
                Me.label28.Name = "label28"
                Me.label28.Size = New System.Drawing.Size(56, 16)
                Me.label28.TabIndex = 36
                Me.label28.Text = "Subject:"
                ' 
                ' edTitle
                ' 
                Me.edTitle.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.edTitle.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edTitle.Location = New System.Drawing.Point(278, 19)
                Me.edTitle.Name = "edTitle"
                Me.edTitle.Size = New System.Drawing.Size(394, 20)
                Me.edTitle.TabIndex = 33
                ' 
                ' label27
                ' 
                Me.label27.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label27.Location = New System.Drawing.Point(232, 22)
                Me.label27.Name = "label27"
                Me.label27.Size = New System.Drawing.Size(48, 16)
                Me.label27.TabIndex = 34
                Me.label27.Text = "Title:"
                ' 
                ' label26
                ' 
                Me.label26.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label26.Location = New System.Drawing.Point(8, 23)
                Me.label26.Name = "label26"
                Me.label26.Size = New System.Drawing.Size(48, 16)
                Me.label26.TabIndex = 32
                Me.label26.Text = "Author:"
                ' 
                ' edAuthor
                ' 
                Me.edAuthor.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edAuthor.Location = New System.Drawing.Point(56, 20)
                Me.edAuthor.Name = "edAuthor"
                Me.edAuthor.Size = New System.Drawing.Size(144, 20)
                Me.edAuthor.TabIndex = 31
                ' 
                ' label25
                ' 
                Me.label25.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label25.Location = New System.Drawing.Point(8, 0)
                Me.label25.Name = "label25"
                Me.label25.Size = New System.Drawing.Size(192, 16)
                Me.label25.TabIndex = 20
                Me.label25.Text = "Pdf Properties:"
                ' 
                ' edFileName
                ' 
                Me.edFileName.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.edFileName.BackColor = System.Drawing.Color.White
                Me.edFileName.BorderStyle = System.Windows.Forms.BorderStyle.None
                Me.edFileName.Location = New System.Drawing.Point(136, 16)
                Me.edFileName.Name = "edFileName"
                Me.edFileName.ReadOnly = True
                Me.edFileName.Size = New System.Drawing.Size(584, 13)
                Me.edFileName.TabIndex = 4
                Me.edFileName.Text = "No file selected"
                ' 
                ' panel8
                ' 
                Me.panel8.BackColor = System.Drawing.Color.FromArgb((CInt((CByte(224)))), (CInt((CByte(224)))), (CInt((CByte(224)))))
                Me.panel8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.panel8.Controls.Add(Me.chLandscape)
                Me.panel8.Controls.Add(Me.label24)
                Me.panel8.Controls.Add(Me.chPrintLeft)
                Me.panel8.Controls.Add(Me.chFormulaText)
                Me.panel8.Controls.Add(Me.chGridLines)
                Me.panel8.Location = New System.Drawing.Point(32, 205)
                Me.panel8.Name = "panel8"
                Me.panel8.Size = New System.Drawing.Size(176, 120)
                Me.panel8.TabIndex = 37
                ' 
                ' chLandscape
                ' 
                Me.chLandscape.Location = New System.Drawing.Point(24, 88)
                Me.chLandscape.Name = "chLandscape"
                Me.chLandscape.Size = New System.Drawing.Size(136, 24)
                Me.chLandscape.TabIndex = 20
                Me.chLandscape.Text = "Landscape"
                ' 
                ' label24
                ' 
                Me.label24.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label24.Location = New System.Drawing.Point(8, 8)
                Me.label24.Name = "label24"
                Me.label24.Size = New System.Drawing.Size(192, 16)
                Me.label24.TabIndex = 19
                Me.label24.Text = "Export Options:"
                ' 
                ' chPrintLeft
                ' 
                Me.chPrintLeft.Location = New System.Drawing.Point(24, 47)
                Me.chPrintLeft.Name = "chPrintLeft"
                Me.chPrintLeft.Size = New System.Drawing.Size(152, 16)
                Me.chPrintLeft.TabIndex = 18
                Me.chPrintLeft.Text = "Print Left, then down."
                ' 
                ' chFormulaText
                ' 
                Me.chFormulaText.Location = New System.Drawing.Point(24, 71)
                Me.chFormulaText.Name = "chFormulaText"
                Me.chFormulaText.Size = New System.Drawing.Size(136, 16)
                Me.chFormulaText.TabIndex = 17
                Me.chFormulaText.Text = "Print Formula Text"
                ' 
                ' chGridLines
                ' 
                Me.chGridLines.Location = New System.Drawing.Point(24, 24)
                Me.chGridLines.Name = "chGridLines"
                Me.chGridLines.Size = New System.Drawing.Size(128, 16)
                Me.chGridLines.TabIndex = 16
                Me.chGridLines.Text = "Print Grid Lines"
                ' 
                ' panel7
                ' 
                Me.panel7.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.panel7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.panel7.Controls.Add(Me.edFooter)
                Me.panel7.Controls.Add(Me.label3)
                Me.panel7.Controls.Add(Me.edHeader)
                Me.panel7.Controls.Add(Me.label2)
                Me.panel7.Controls.Add(Me.label23)
                Me.panel7.Location = New System.Drawing.Point(224, 333)
                Me.panel7.Name = "panel7"
                Me.panel7.Size = New System.Drawing.Size(296, 112)
                Me.panel7.TabIndex = 36
                ' 
                ' edFooter
                ' 
                Me.edFooter.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.edFooter.BackColor = System.Drawing.Color.White
                Me.edFooter.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edFooter.Location = New System.Drawing.Point(8, 88)
                Me.edFooter.Name = "edFooter"
                Me.edFooter.Size = New System.Drawing.Size(278, 20)
                Me.edFooter.TabIndex = 46
                ' 
                ' label3
                ' 
                Me.label3.BackColor = System.Drawing.Color.White
                Me.label3.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label3.Location = New System.Drawing.Point(8, 72)
                Me.label3.Name = "label3"
                Me.label3.Size = New System.Drawing.Size(56, 16)
                Me.label3.TabIndex = 45
                Me.label3.Text = "Footer:"
                ' 
                ' edHeader
                ' 
                Me.edHeader.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.edHeader.BackColor = System.Drawing.Color.White
                Me.edHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edHeader.Location = New System.Drawing.Point(8, 48)
                Me.edHeader.Name = "edHeader"
                Me.edHeader.Size = New System.Drawing.Size(278, 20)
                Me.edHeader.TabIndex = 44
                ' 
                ' label2
                ' 
                Me.label2.BackColor = System.Drawing.Color.White
                Me.label2.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label2.Location = New System.Drawing.Point(8, 32)
                Me.label2.Name = "label2"
                Me.label2.Size = New System.Drawing.Size(56, 16)
                Me.label2.TabIndex = 43
                Me.label2.Text = "Header:"
                ' 
                ' label23
                ' 
                Me.label23.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label23.Location = New System.Drawing.Point(8, 8)
                Me.label23.Name = "label23"
                Me.label23.Size = New System.Drawing.Size(187, 16)
                Me.label23.TabIndex = 42
                Me.label23.Text = "Headers and footers:"
                ' 
                ' panel6
                ' 
                Me.panel6.BackColor = System.Drawing.Color.FromArgb((CInt((CByte(255)))), (CInt((CByte(224)))), (CInt((CByte(192)))))
                Me.panel6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.panel6.Controls.Add(Me.label22)
                Me.panel6.Controls.Add(Me.edf)
                Me.panel6.Controls.Add(Me.edb)
                Me.panel6.Controls.Add(Me.edr)
                Me.panel6.Controls.Add(Me.edt)
                Me.panel6.Controls.Add(Me.label7)
                Me.panel6.Controls.Add(Me.edl)
                Me.panel6.Controls.Add(Me.edh)
                Me.panel6.Controls.Add(Me.label9)
                Me.panel6.Controls.Add(Me.label10)
                Me.panel6.Controls.Add(Me.label8)
                Me.panel6.Controls.Add(Me.labelb)
                Me.panel6.Controls.Add(Me.label11)
                Me.panel6.Location = New System.Drawing.Point(32, 333)
                Me.panel6.Name = "panel6"
                Me.panel6.Size = New System.Drawing.Size(176, 208)
                Me.panel6.TabIndex = 35
                ' 
                ' label22
                ' 
                Me.label22.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label22.Location = New System.Drawing.Point(8, 8)
                Me.label22.Name = "label22"
                Me.label22.Size = New System.Drawing.Size(120, 16)
                Me.label22.TabIndex = 41
                Me.label22.Text = "Margins:"
                ' 
                ' edf
                ' 
                Me.edf.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edf.Location = New System.Drawing.Point(56, 152)
                Me.edf.Name = "edf"
                Me.edf.Size = New System.Drawing.Size(112, 20)
                Me.edf.TabIndex = 39
                ' 
                ' edb
                ' 
                Me.edb.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edb.Location = New System.Drawing.Point(56, 128)
                Me.edb.Name = "edb"
                Me.edb.Size = New System.Drawing.Size(112, 20)
                Me.edb.TabIndex = 37
                ' 
                ' edr
                ' 
                Me.edr.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edr.Location = New System.Drawing.Point(56, 56)
                Me.edr.Name = "edr"
                Me.edr.Size = New System.Drawing.Size(112, 20)
                Me.edr.TabIndex = 35
                ' 
                ' edt
                ' 
                Me.edt.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edt.Location = New System.Drawing.Point(56, 104)
                Me.edt.Name = "edt"
                Me.edt.Size = New System.Drawing.Size(112, 20)
                Me.edt.TabIndex = 31
                ' 
                ' label7
                ' 
                Me.label7.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label7.Location = New System.Drawing.Point(8, 32)
                Me.label7.Name = "label7"
                Me.label7.Size = New System.Drawing.Size(36, 16)
                Me.label7.TabIndex = 30
                Me.label7.Text = "Left:"
                ' 
                ' edl
                ' 
                Me.edl.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edl.Location = New System.Drawing.Point(56, 32)
                Me.edl.Name = "edl"
                Me.edl.Size = New System.Drawing.Size(112, 20)
                Me.edl.TabIndex = 29
                ' 
                ' edh
                ' 
                Me.edh.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edh.Location = New System.Drawing.Point(56, 80)
                Me.edh.Name = "edh"
                Me.edh.Size = New System.Drawing.Size(112, 20)
                Me.edh.TabIndex = 32
                ' 
                ' label9
                ' 
                Me.label9.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label9.Location = New System.Drawing.Point(8, 56)
                Me.label9.Name = "label9"
                Me.label9.Size = New System.Drawing.Size(80, 16)
                Me.label9.TabIndex = 36
                Me.label9.Text = "Right:"
                ' 
                ' label10
                ' 
                Me.label10.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label10.Location = New System.Drawing.Point(7, 80)
                Me.label10.Name = "label10"
                Me.label10.Size = New System.Drawing.Size(88, 16)
                Me.label10.TabIndex = 34
                Me.label10.Text = "Header:"
                ' 
                ' label8
                ' 
                Me.label8.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label8.Location = New System.Drawing.Point(8, 104)
                Me.label8.Name = "label8"
                Me.label8.Size = New System.Drawing.Size(80, 16)
                Me.label8.TabIndex = 33
                Me.label8.Text = "Top:"
                ' 
                ' labelb
                ' 
                Me.labelb.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.labelb.Location = New System.Drawing.Point(8, 130)
                Me.labelb.Name = "labelb"
                Me.labelb.Size = New System.Drawing.Size(88, 16)
                Me.labelb.TabIndex = 38
                Me.labelb.Text = "Bottom:"
                ' 
                ' label11
                ' 
                Me.label11.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label11.Location = New System.Drawing.Point(8, 160)
                Me.label11.Name = "label11"
                Me.label11.Size = New System.Drawing.Size(80, 16)
                Me.label11.TabIndex = 40
                Me.label11.Text = "Footer:"
                ' 
                ' panel5
                ' 
                Me.panel5.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.panel5.BackColor = System.Drawing.Color.FromArgb((CInt((CByte(192)))), (CInt((CByte(255)))), (CInt((CByte(192)))))
                Me.panel5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.panel5.Controls.Add(Me.label21)
                Me.panel5.Controls.Add(Me.label4)
                Me.panel5.Controls.Add(Me.edZoom)
                Me.panel5.Controls.Add(Me.chFitIn)
                Me.panel5.Controls.Add(Me.label6)
                Me.panel5.Controls.Add(Me.label5)
                Me.panel5.Controls.Add(Me.edVPages)
                Me.panel5.Controls.Add(Me.edHPages)
                Me.panel5.Location = New System.Drawing.Point(224, 453)
                Me.panel5.Name = "panel5"
                Me.panel5.Size = New System.Drawing.Size(296, 88)
                Me.panel5.TabIndex = 34
                ' 
                ' label21
                ' 
                Me.label21.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label21.Location = New System.Drawing.Point(9, 5)
                Me.label21.Name = "label21"
                Me.label21.Size = New System.Drawing.Size(192, 16)
                Me.label21.TabIndex = 26
                Me.label21.Text = "Zoom:"
                ' 
                ' label4
                ' 
                Me.label4.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label4.Location = New System.Drawing.Point(72, 58)
                Me.label4.Name = "label4"
                Me.label4.Size = New System.Drawing.Size(56, 16)
                Me.label4.TabIndex = 25
                Me.label4.Text = "Zoom (%)"
                ' 
                ' edZoom
                ' 
                Me.edZoom.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edZoom.Location = New System.Drawing.Point(136, 56)
                Me.edZoom.Name = "edZoom"
                Me.edZoom.Size = New System.Drawing.Size(24, 20)
                Me.edZoom.TabIndex = 24
                ' 
                ' chFitIn
                ' 
                Me.chFitIn.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.chFitIn.Location = New System.Drawing.Point(8, 24)
                Me.chFitIn.Name = "chFitIn"
                Me.chFitIn.Size = New System.Drawing.Size(56, 24)
                Me.chFitIn.TabIndex = 23
                Me.chFitIn.Text = "Fit in"
    '           Me.chFitIn.CheckedChanged += New System.EventHandler(Me.chFitIn_CheckedChanged)
                ' 
                ' label6
                ' 
                Me.label6.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label6.Location = New System.Drawing.Point(208, 29)
                Me.label6.Name = "label6"
                Me.label6.Size = New System.Drawing.Size(80, 16)
                Me.label6.TabIndex = 22
                Me.label6.Text = "pages tall."
                ' 
                ' label5
                ' 
                Me.label5.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label5.Location = New System.Drawing.Point(96, 29)
                Me.label5.Name = "label5"
                Me.label5.Size = New System.Drawing.Size(80, 16)
                Me.label5.TabIndex = 21
                Me.label5.Text = "pages wide x"
                ' 
                ' edVPages
                ' 
                Me.edVPages.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edVPages.Location = New System.Drawing.Point(176, 24)
                Me.edVPages.Name = "edVPages"
                Me.edVPages.ReadOnly = True
                Me.edVPages.Size = New System.Drawing.Size(24, 20)
                Me.edVPages.TabIndex = 20
                ' 
                ' edHPages
                ' 
                Me.edHPages.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edHPages.Location = New System.Drawing.Point(64, 24)
                Me.edHPages.Name = "edHPages"
                Me.edHPages.ReadOnly = True
                Me.edHPages.Size = New System.Drawing.Size(24, 20)
                Me.edHPages.TabIndex = 19
                ' 
                ' panel4
                ' 
                Me.panel4.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.panel4.BackColor = System.Drawing.Color.FromArgb((CInt((CByte(192)))), (CInt((CByte(255)))), (CInt((CByte(255)))))
                Me.panel4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.panel4.Controls.Add(Me.chSubset)
                Me.panel4.Controls.Add(Me.cbKerning)
                Me.panel4.Controls.Add(Me.label20)
                Me.panel4.Controls.Add(Me.cbFontMapping)
                Me.panel4.Controls.Add(Me.chEmbed)
                Me.panel4.Controls.Add(Me.label19)
                Me.panel4.Location = New System.Drawing.Point(224, 205)
                Me.panel4.Name = "panel4"
                Me.panel4.Size = New System.Drawing.Size(496, 120)
                Me.panel4.TabIndex = 33
                ' 
                ' chSubset
                ' 
                Me.chSubset.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.chSubset.Checked = True
                Me.chSubset.CheckState = System.Windows.Forms.CheckState.Checked
                Me.chSubset.Location = New System.Drawing.Point(16, 72)
                Me.chSubset.Name = "chSubset"
                Me.chSubset.Size = New System.Drawing.Size(464, 16)
                Me.chSubset.TabIndex = 36
                Me.chSubset.Text = "Subset fonts when embedding. (That is, embed only the characters used from the fo" & "nt)"
                ' 
                ' cbKerning
                ' 
                Me.cbKerning.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.cbKerning.Location = New System.Drawing.Point(16, 88)
                Me.cbKerning.Name = "cbKerning"
                Me.cbKerning.Size = New System.Drawing.Size(464, 32)
                Me.cbKerning.TabIndex = 35
                Me.cbKerning.Text = "Kerning. (Files with kerning look a little better but are a little bigger too)"
                ' 
                ' label20
                ' 
                Me.label20.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label20.Location = New System.Drawing.Point(16, 24)
                Me.label20.Name = "label20"
                Me.label20.Size = New System.Drawing.Size(96, 16)
                Me.label20.TabIndex = 34
                Me.label20.Text = "Font mapping:"
                ' 
                ' cbFontMapping
                ' 
                Me.cbFontMapping.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.cbFontMapping.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
                Me.cbFontMapping.Items.AddRange(New Object() { "Replace all fonts by internal fonts. (smaller file size)", "Replace selected fonts by internal fonts. (optimum relation file size/accuracy)", "Do not replace any font. (maximum file size)"})
                Me.cbFontMapping.Location = New System.Drawing.Point(120, 24)
                Me.cbFontMapping.Name = "cbFontMapping"
                Me.cbFontMapping.Size = New System.Drawing.Size(360, 21)
                Me.cbFontMapping.TabIndex = 33
                ' 
                ' chEmbed
                ' 
                Me.chEmbed.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.chEmbed.Checked = True
                Me.chEmbed.CheckState = System.Windows.Forms.CheckState.Checked
                Me.chEmbed.Location = New System.Drawing.Point(16, 40)
                Me.chEmbed.Name = "chEmbed"
                Me.chEmbed.Size = New System.Drawing.Size(464, 32)
                Me.chEmbed.TabIndex = 3
                Me.chEmbed.Text = "Embed all fonts. (if you leave this option off, some fonts might be embedded anyw" & "ay)"
                ' 
                ' label19
                ' 
                Me.label19.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label19.Location = New System.Drawing.Point(3, 8)
                Me.label19.Name = "label19"
                Me.label19.Size = New System.Drawing.Size(192, 16)
                Me.label19.TabIndex = 2
                Me.label19.Text = "Fonts:"
                ' 
                ' label18
                ' 
                Me.label18.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label18.Location = New System.Drawing.Point(168, 40)
                Me.label18.Name = "label18"
                Me.label18.Size = New System.Drawing.Size(96, 16)
                Me.label18.TabIndex = 32
                Me.label18.Text = "Sheet to export:"
                ' 
                ' cbSheet
                ' 
                Me.cbSheet.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.cbSheet.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
                Me.cbSheet.Location = New System.Drawing.Point(264, 34)
                Me.cbSheet.Name = "cbSheet"
                Me.cbSheet.Size = New System.Drawing.Size(256, 21)
                Me.cbSheet.TabIndex = 31
    '           Me.cbSheet.SelectedIndexChanged += New System.EventHandler(Me.cbSheet_SelectedIndexChanged)
                ' 
                ' panel3
                ' 
                Me.panel3.Anchor = (CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.panel3.BackColor = System.Drawing.Color.FromArgb((CInt((CByte(255)))), (CInt((CByte(255)))), (CInt((CByte(192)))))
                Me.panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.panel3.Controls.Add(Me.edBottom)
                Me.panel3.Controls.Add(Me.label17)
                Me.panel3.Controls.Add(Me.edRight)
                Me.panel3.Controls.Add(Me.label16)
                Me.panel3.Controls.Add(Me.edLeft)
                Me.panel3.Controls.Add(Me.label15)
                Me.panel3.Controls.Add(Me.edTop)
                Me.panel3.Controls.Add(Me.label14)
                Me.panel3.Controls.Add(Me.label13)
                Me.panel3.Controls.Add(Me.label12)
                Me.panel3.Location = New System.Drawing.Point(536, 333)
                Me.panel3.Name = "panel3"
                Me.panel3.Size = New System.Drawing.Size(184, 208)
                Me.panel3.TabIndex = 30
                ' 
                ' edBottom
                ' 
                Me.edBottom.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edBottom.Location = New System.Drawing.Point(80, 136)
                Me.edBottom.Name = "edBottom"
                Me.edBottom.Size = New System.Drawing.Size(48, 20)
                Me.edBottom.TabIndex = 26
                Me.edBottom.Text = "0"
                ' 
                ' label17
                ' 
                Me.label17.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label17.Location = New System.Drawing.Point(16, 160)
                Me.label17.Name = "label17"
                Me.label17.Size = New System.Drawing.Size(56, 16)
                Me.label17.TabIndex = 25
                Me.label17.Text = "Last Col:"
                ' 
                ' edRight
                ' 
                Me.edRight.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edRight.Location = New System.Drawing.Point(80, 160)
                Me.edRight.Name = "edRight"
                Me.edRight.Size = New System.Drawing.Size(48, 20)
                Me.edRight.TabIndex = 24
                Me.edRight.Text = "0"
                ' 
                ' label16
                ' 
                Me.label16.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label16.Location = New System.Drawing.Point(16, 136)
                Me.label16.Name = "label16"
                Me.label16.Size = New System.Drawing.Size(85, 16)
                Me.label16.TabIndex = 23
                Me.label16.Text = "Last Row:"
                ' 
                ' edLeft
                ' 
                Me.edLeft.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edLeft.Location = New System.Drawing.Point(80, 112)
                Me.edLeft.Name = "edLeft"
                Me.edLeft.Size = New System.Drawing.Size(48, 20)
                Me.edLeft.TabIndex = 22
                Me.edLeft.Text = "0"
                ' 
                ' label15
                ' 
                Me.label15.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label15.Location = New System.Drawing.Point(16, 112)
                Me.label15.Name = "label15"
                Me.label15.Size = New System.Drawing.Size(85, 16)
                Me.label15.TabIndex = 21
                Me.label15.Text = "First Col:"
                ' 
                ' edTop
                ' 
                Me.edTop.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                Me.edTop.Location = New System.Drawing.Point(80, 88)
                Me.edTop.Name = "edTop"
                Me.edTop.Size = New System.Drawing.Size(48, 20)
                Me.edTop.TabIndex = 20
                Me.edTop.Text = "0"
                ' 
                ' label14
                ' 
                Me.label14.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label14.Location = New System.Drawing.Point(16, 88)
                Me.label14.Name = "label14"
                Me.label14.Size = New System.Drawing.Size(85, 16)
                Me.label14.TabIndex = 3
                Me.label14.Text = "First Row:"
                ' 
                ' label13
                ' 
                Me.label13.Anchor = (CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles))
                Me.label13.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label13.Location = New System.Drawing.Point(8, 32)
                Me.label13.Name = "label13"
                Me.label13.Size = New System.Drawing.Size(160, 32)
                Me.label13.TabIndex = 2
                Me.label13.Text = "If one of this values is <=0 all print_range will be printed"
                ' 
                ' label12
                ' 
                Me.label12.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label12.Location = New System.Drawing.Point(8, 16)
                Me.label12.Name = "label12"
                Me.label12.Size = New System.Drawing.Size(192, 16)
                Me.label12.TabIndex = 1
                Me.label12.Text = "Range to Export:"
                ' 
                ' chExportAll
                ' 
                Me.chExportAll.Location = New System.Drawing.Point(32, 40)
                Me.chExportAll.Name = "chExportAll"
                Me.chExportAll.Size = New System.Drawing.Size(128, 16)
                Me.chExportAll.TabIndex = 1
                Me.chExportAll.Text = "Export all Sheets"
    '           Me.chExportAll.CheckedChanged += New System.EventHandler(Me.chExportAll_CheckedChanged)
                ' 
                ' label1
                ' 
                Me.label1.Font = New System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (CByte(0)))
                Me.label1.Location = New System.Drawing.Point(29, 16)
                Me.label1.Name = "label1"
                Me.label1.Size = New System.Drawing.Size(80, 16)
                Me.label1.TabIndex = 0
                Me.label1.Text = "File to print:"
                ' 
                ' exportDialog
                ' 
                Me.exportDialog.DefaultExt = "pdf"
                Me.exportDialog.Filter = "Pdf files|*.pdf"
                ' 
                ' mainToolbar
                ' 
                Me.mainToolbar.Items.AddRange(New System.Windows.Forms.ToolStripItem() { Me.openFile, Me.export, Me.btnClose})
                Me.mainToolbar.Location = New System.Drawing.Point(0, 0)
                Me.mainToolbar.Name = "mainToolbar"
                Me.mainToolbar.Size = New System.Drawing.Size(768, 38)
                Me.mainToolbar.TabIndex = 4
                Me.mainToolbar.Text = "toolStrip1"
                ' 
                ' openFile
                ' 
                Me.openFile.Image = (CType(resources.GetObject("openFile.Image"), System.Drawing.Image))
                Me.openFile.ImageTransparentColor = System.Drawing.Color.Magenta
                Me.openFile.Name = "openFile"
                Me.openFile.Size = New System.Drawing.Size(61, 35)
                Me.openFile.Text = "Open File"
                Me.openFile.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
    '           Me.openFile.Click += New System.EventHandler(Me.openFile_Click)
                ' 
                ' export
                ' 
                Me.export.Image = (CType(resources.GetObject("export.Image"), System.Drawing.Image))
                Me.export.ImageTransparentColor = System.Drawing.Color.Magenta
                Me.export.Name = "export"
                Me.export.Size = New System.Drawing.Size(82, 35)
                Me.export.Text = "Export to PDF"
                Me.export.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
    '           Me.export.Click += New System.EventHandler(Me.export_Click)
                ' 
                ' btnClose
                ' 
                Me.btnClose.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
                Me.btnClose.Image = (CType(resources.GetObject("btnClose.Image"), System.Drawing.Image))
                Me.btnClose.ImageTransparentColor = System.Drawing.Color.Magenta
                Me.btnClose.Name = "btnClose"
                Me.btnClose.Size = New System.Drawing.Size(59, 35)
                Me.btnClose.Text = "     E&xit     "
                Me.btnClose.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
    '           Me.btnClose.Click += New System.EventHandler(Me.button2_Click)
                ' 
                ' flexCelPdfExport1
                ' 
                Me.flexCelPdfExport1.FontEmbed = FlexCel.Pdf.TFontEmbed.Embed
                Me.flexCelPdfExport1.InitialZoomAndPage = Nothing
                Me.flexCelPdfExport1.PageLayout = FlexCel.Pdf.TPageLayout.None
                Me.flexCelPdfExport1.PageLayoutDisplay = FlexCel.Pdf.TPageLayoutDisplay.None
                Me.flexCelPdfExport1.PageSize = Nothing
                tPdfProperties1.Author = Nothing
                tPdfProperties1.Creator = Nothing
                tPdfProperties1.Keywords = Nothing
                tPdfProperties1.Language = Nothing
                tPdfProperties1.Subject = Nothing
                tPdfProperties1.Title = Nothing
                Me.flexCelPdfExport1.Properties = tPdfProperties1
                Me.flexCelPdfExport1.TagMode = FlexCel.Pdf.TTagMode.Full
                Me.flexCelPdfExport1.UnlicensedReplacementFont = Nothing
                Me.flexCelPdfExport1.UseExcelProperties = True
                Me.flexCelPdfExport1.Workbook = Nothing
    '           Me.flexCelPdfExport1.AfterGeneratePage += New FlexCel.Render.PageEventHandler(Me.flexCelPdfExport1_AfterGeneratePage)
    '           Me.flexCelPdfExport1.GetFontData += New FlexCel.Pdf.GetFontDataEventHandler(Me.flexCelPdfExport1_GetFontData)
                ' 
                ' mainForm
                ' 
                Me.AutoScaleDimensions = New System.Drawing.SizeF(6F, 13F)
                Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
                Me.ClientSize = New System.Drawing.Size(768, 631)
                Me.Controls.Add(Me.panel1)
                Me.Controls.Add(Me.mainToolbar)
                Me.Name = "mainForm"
                Me.Text = "Export an Excel file to pdf"
                Me.panel1.ResumeLayout(False)
                Me.panel1.PerformLayout()
                Me.panel2.ResumeLayout(False)
                Me.panel2.PerformLayout()
                Me.panel9.ResumeLayout(False)
                Me.panel9.PerformLayout()
                Me.panel8.ResumeLayout(False)
                Me.panel7.ResumeLayout(False)
                Me.panel7.PerformLayout()
                Me.panel6.ResumeLayout(False)
                Me.panel6.PerformLayout()
                Me.panel5.ResumeLayout(False)
                Me.panel5.PerformLayout()
                Me.panel4.ResumeLayout(False)
                Me.panel3.ResumeLayout(False)
                Me.panel3.PerformLayout()
                Me.mainToolbar.ResumeLayout(False)
                Me.mainToolbar.PerformLayout()
                Me.ResumeLayout(False)
                Me.PerformLayout()
    
            End Sub
            #End Region
    
            Private mainToolbar As ToolStrip
            Private WithEvents openFile As ToolStripButton
            Private WithEvents export As ToolStripButton
            Private WithEvents btnClose As ToolStripButton
            Private label29 As Label
            Private edLang As TextBox
            Private panel2 As Panel
            Private cbPdfType As ComboBox
            Private label34 As Label
            Private cbVersion As ComboBox
            Private label31 As Label
            Private label30 As Label
            Private cbTagged As ComboBox
            Private label32 As Label
        End Class
    End Namespace
    

    Form1.vb

    Imports System.Collections
    Imports System.ComponentModel
    Imports FlexCel.Core
    Imports FlexCel.XlsAdapter
    Imports System.IO
    Imports System.Reflection
    Imports System.Drawing.Drawing2D
    Imports FlexCel.Pdf
    
    'only needed if you want to go unmanaged.
    Imports System.Runtime.InteropServices
    
    
    Namespace ExportPdf
        ''' <summary>
        ''' Exporting xls files to pdf.
        ''' </summary>
        Partial Public Class mainForm
            Inherits System.Windows.Forms.Form
    
            Private WithEvents flexCelPdfExport1 As FlexCel.Render.FlexCelPdfExport
    
            Public Sub New()
                InitializeComponent()
                cbFontMapping.SelectedIndex = 1
                cbPdfType.SelectedIndex = 0
                cbTagged.SelectedIndex = 0
                cbVersion.SelectedIndex = 1
                ResizeToolbar(mainToolbar)
            End Sub
    
            Private Sub ResizeToolbar(ByVal toolbar As ToolStrip)
    
                Using gr As Graphics = CreateGraphics()
                    Dim xFactor As Double = gr.DpiX / 96.0
                    Dim yFactor As Double = gr.DpiY / 96.0
                    toolbar.ImageScalingSize = New Size(CInt(Fix(24 * xFactor)), CInt(Fix(24 * yFactor)))
                    toolbar.Width = 0 'force a recalc of the buttons.
                End Using
            End Sub
    
            Private Sub button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnClose.Click
                Close()
            End Sub
    
            Private Sub LoadSheetConfig()
                Dim Xls As ExcelFile = flexCelPdfExport1.Workbook
    
                chGridLines.Checked = Xls.PrintGridLines
                chFormulaText.Checked = Xls.ShowFormulaText
    
                chPrintLeft.Checked = (Xls.PrintOptions And TPrintOptions.LeftToRight) <> 0
                edHeader.Text = Xls.PageHeader
                edFooter.Text = Xls.PageFooter
                chFitIn.Checked = Xls.PrintToFit
                edHPages.Text = Xls.PrintNumberOfHorizontalPages.ToString()
                edVPages.Text = Xls.PrintNumberOfVerticalPages.ToString()
                edVPages.ReadOnly = Not chFitIn.Checked
                edHPages.ReadOnly = Not chFitIn.Checked
    
                edZoom.ReadOnly = chFitIn.Checked
                edZoom.Text = Xls.PrintScale.ToString()
    
                Dim m As TXlsMargins = Xls.GetPrintMargins()
                edl.Text = m.Left.ToString()
                edt.Text = m.Top.ToString()
                edr.Text = m.Right.ToString()
                edb.Text = m.Bottom.ToString()
                edf.Text = m.Footer.ToString()
                edh.Text = m.Header.ToString()
    
                chLandscape.Checked = Xls.PrintLandscape
    
                edAuthor.Text = Convert.ToString(Xls.DocumentProperties.GetStandardProperty(TPropertyId.Author))
                edTitle.Text = Convert.ToString(Xls.DocumentProperties.GetStandardProperty(TPropertyId.Title))
                edSubject.Text = Convert.ToString(Xls.DocumentProperties.GetStandardProperty(TPropertyId.Subject))
            End Sub
    
            Private Sub openFile_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles openFile.Click
                If openFileDialog1.ShowDialog() <> System.Windows.Forms.DialogResult.OK Then
                    Return
                End If
                flexCelPdfExport1.Workbook = New XlsFile()
    
                flexCelPdfExport1.Workbook.Open(openFileDialog1.FileName)
    
                edFileName.Text = openFileDialog1.FileName
    
                Dim Xls As ExcelFile = flexCelPdfExport1.Workbook
    
                cbSheet.Items.Clear()
                Dim ActSheet As Integer = Xls.ActiveSheet
                For i As Integer = 1 To Xls.SheetCount
                    Xls.ActiveSheet = i
                    cbSheet.Items.Add(Xls.SheetName)
                Next i
                Xls.ActiveSheet = ActSheet
                cbSheet.SelectedIndex = ActSheet - 1
    
                LoadSheetConfig()
            End Sub
    
            Private Function HasFileOpen() As Boolean
                If flexCelPdfExport1.Workbook Is Nothing Then
                    MessageBox.Show("You need to open a file first.")
                    Return False
                End If
                Return True
            End Function
    
            Private Function LoadPreferences() As Boolean
                'NOTE: THERE SHOULD BE *A LOT* MORE VALIDATION OF VALUES ON THIS METHOD. (For example, validate that margins are between bounds)
                ' As this is a simple demo, they are not included. 
                Try
                    Dim Xls As ExcelFile = flexCelPdfExport1.Workbook
                    Xls.PrintGridLines = chGridLines.Checked
                    Xls.PageHeader = edHeader.Text
                    Xls.PageFooter = edFooter.Text
                    Xls.ShowFormulaText = chFormulaText.Checked
    
                    If chFitIn.Checked Then
                        Xls.PrintToFit = True
                        Xls.PrintNumberOfHorizontalPages = Convert.ToInt32(edHPages.Text)
                        Xls.PrintNumberOfVerticalPages = Convert.ToInt32(edVPages.Text)
                    Else
                        Xls.PrintToFit = False
                    End If
    
                    If chPrintLeft.Checked Then
                        Xls.PrintOptions = Xls.PrintOptions Or TPrintOptions.LeftToRight
                    Else
                        Xls.PrintOptions = Xls.PrintOptions And Not TPrintOptions.LeftToRight
                    End If
    
                    Try
                        Xls.PrintScale = Convert.ToInt32(edZoom.Text)
                    Catch
                        MessageBox.Show("Invalid Zoom")
                        Return False
                    End Try
    
                    Dim m As New TXlsMargins()
                    m.Left = Convert.ToDouble(edl.Text)
                    m.Top = Convert.ToDouble(edt.Text)
                    m.Right = Convert.ToDouble(edr.Text)
                    m.Bottom = Convert.ToDouble(edb.Text)
                    m.Footer = Convert.ToDouble(edf.Text)
                    m.Header = Convert.ToDouble(edh.Text)
                    Xls.SetPrintMargins(m)
    
                    flexCelPdfExport1.PrintRangeLeft = Convert.ToInt32(edLeft.Text)
                    flexCelPdfExport1.PrintRangeTop = Convert.ToInt32(edTop.Text)
                    flexCelPdfExport1.PrintRangeRight = Convert.ToInt32(edRight.Text)
                    flexCelPdfExport1.PrintRangeBottom = Convert.ToInt32(edBottom.Text)
    
                    If chEmbed.Checked Then
                        flexCelPdfExport1.FontEmbed = TFontEmbed.Embed
                    Else
                        flexCelPdfExport1.FontEmbed = TFontEmbed.None
                    End If
    
                    If chSubset.Checked Then
                        flexCelPdfExport1.FontSubset = TFontSubset.Subset
                    Else
                        flexCelPdfExport1.FontSubset = TFontSubset.DontSubset
                    End If
    
                    flexCelPdfExport1.Kerning = cbKerning.Checked
    
                    Select Case cbFontMapping.SelectedIndex
                        Case 0
                            flexCelPdfExport1.FontMapping = TFontMapping.ReplaceAllFonts
                        Case 1
                            flexCelPdfExport1.FontMapping = TFontMapping.ReplaceStandardFonts
                        Case 2
                            flexCelPdfExport1.FontMapping = TFontMapping.DontReplaceFonts
                    End Select
    
                    Select Case cbPdfType.SelectedIndex
                        Case 0
                            flexCelPdfExport1.PdfType = TPdfType.Standard
                        Case 1
                            flexCelPdfExport1.PdfType = TPdfType.PDFA1
                        Case 2
                            flexCelPdfExport1.PdfType = TPdfType.PDFA2
                        Case 3
                            flexCelPdfExport1.PdfType = TPdfType.PDFA3
                    End Select
    
                    Select Case cbTagged.SelectedIndex
                        Case 0
                            flexCelPdfExport1.TagMode = TTagMode.Full
                        Case 1
                            flexCelPdfExport1.TagMode = TTagMode.None
                    End Select
    
                    Select Case cbVersion.SelectedIndex
                        Case 0
                            flexCelPdfExport1.PdfVersion = TPdfVersion.v14
                        Case 1
                            flexCelPdfExport1.PdfVersion = TPdfVersion.v16
                    End Select
    
                    flexCelPdfExport1.Properties.Author = edAuthor.Text
                    flexCelPdfExport1.Properties.Title = edTitle.Text
                    flexCelPdfExport1.Properties.Subject = edSubject.Text
                    flexCelPdfExport1.Properties.Language = edLang.Text
    
                    Xls.PrintLandscape = chLandscape.Checked
                Catch e As Exception
                    MessageBox.Show("Error: " & e.Message)
                    Return False
                End Try
                Return True
            End Function
    
    
            Private Sub chFitIn_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles chFitIn.CheckedChanged
                edVPages.ReadOnly = Not chFitIn.Checked
                edHPages.ReadOnly = Not chFitIn.Checked
                edZoom.ReadOnly = chFitIn.Checked
            End Sub
    
            Private Sub cbSheet_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbSheet.SelectedIndexChanged
                flexCelPdfExport1.Workbook.ActiveSheet = cbSheet.SelectedIndex + 1
                LoadSheetConfig()
            End Sub
    
            Private Sub export_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles export.Click
                If Not HasFileOpen() Then
                    Return
                End If
                If Not LoadPreferences() Then
                    Return
                End If
    
                If exportDialog.ShowDialog() <> System.Windows.Forms.DialogResult.OK Then
                    Return
                End If
    
                Using Pdf As New FileStream(exportDialog.FileName, FileMode.Create)
                    Dim SaveSheet As Integer = flexCelPdfExport1.Workbook.ActiveSheet
                    Try
                        flexCelPdfExport1.BeginExport(Pdf)
                        If chExportAll.Checked Then
                            flexCelPdfExport1.PageLayout = TPageLayout.Outlines 'To how the bookmarks when opening the file.
                            flexCelPdfExport1.ExportAllVisibleSheets(cbResetPageNumber.Checked, Path.GetFileNameWithoutExtension(exportDialog.FileName))
                        Else
                            flexCelPdfExport1.PageLayout = TPageLayout.None
                            flexCelPdfExport1.ExportSheet()
                        End If
                        flexCelPdfExport1.EndExport()
                    Finally
                        flexCelPdfExport1.Workbook.ActiveSheet = SaveSheet
                    End Try
    
                    If MessageBox.Show("Do you want to open the generated file?", "Confirm", MessageBoxButtons.YesNo) = System.Windows.Forms.DialogResult.Yes Then
                        Process.Start(exportDialog.FileName)
                    End If
                End Using
            End Sub
    
            Private Sub chExportAll_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles chExportAll.CheckedChanged
                cbSheet.Enabled = Not chExportAll.Checked
                cbResetPageNumber.Enabled = chExportAll.Checked
            End Sub
    
            ''' <summary>
            ''' Add a "Confidential" watermark on each page.
            ''' </summary>
            ''' <param name="sender"></param>
            ''' <param name="e"></param>
            Private Sub flexCelPdfExport1_AfterGeneratePage(ByVal sender As Object, ByVal e As FlexCel.Render.PageEventArgs) Handles flexCelPdfExport1.AfterGeneratePage
                If Not cbConfidential.Checked Then
                    Return
                End If
    
                Const s As String = "Confidential"
    
                Using ABrush As Brush = New SolidBrush(Color.FromArgb(30, 25, 25, 25)) 'Red=Green=Blue is a shade of gray. Alpha=30 means it is transparent (255 is pure opaque, 0 is pure transparent).
                    Using AFont As TUIFont = TUIFont.Create("Arial", 72)
                        Dim x0 As Double = e.File.PageSize.Width * 72.0 / 100.0 / 2.0 'PageSize is in inches/100, our coordinate system is in Points, that is inches/72
                        Dim y0 As Double = e.File.PageSize.Height * 72.0 / 100.0 / 2.0
                        Dim sf As SizeF = e.File.MeasureString(s, AFont)
                        e.File.Rotate(x0, y0, 45)
                        e.File.DrawString(s, AFont, ABrush, x0 - sf.Width / 2.0, y0 + sf.Height / 2.0) 'the y coord means the bottom of the text, and as the y axis grows down, we have to add sf.height/2 instead of substracting it.
                    End Using
                End Using
            End Sub
    
    
            ''' <summary>
            ''' We show on this event how you can make an unmanaged call to the Win32 API to return font information and avoid
            ''' scanning the "fonts" folder. Note that this is <b>UNMANAGED</b> code, and it is not really needed except for small performance concerns,
            ''' so avoid using it if you don't really need it. Please read UsingFlexCelPdfExport for more information.
            ''' </summary>
            ''' <param name="sender"></param>
            ''' <param name="e"></param>
            Private Sub flexCelPdfExport1_GetFontData(ByVal sender As Object, ByVal e As FlexCel.Pdf.GetFontDataEventArgs) Handles flexCelPdfExport1.GetFontData
                'If the checkbox is not checked, just ignore this event.
                If Not cbUseGetFontData.Checked Then
                    e.Applied = False
                    Return
                End If
    
                'Actually make the WIN32 call.
                Dim ttcf As UInteger = &H66637474 'return full true type collections.
    
                ' Allocate a handle for the font
                Dim FontHandle As IntPtr = CType(e.InputFont, FlexCel.Draw.TGdipUIFont).Handle.ToHfont()
                Try
                    Using Gr As Graphics = Graphics.FromHwnd(IntPtr.Zero)
                        Dim GrHandle As IntPtr = Gr.GetHdc()
                        Try
                            Dim ObjHandle As IntPtr = SelectObject(GrHandle, FontHandle)
                            Try
                                'First find out the sizes
                                Dim Size As UInteger = GetFontData(GrHandle, ttcf, 0, Nothing, 0)
                                If CInt(Size) < 0 Then 'error
                                    ttcf = 0 'This might not be a true type collection, try again.
                                    Size = GetFontData(GrHandle, ttcf, 0, Nothing, 0)
    
                                    If CInt(Size) < 0 Then 'nothing else to do, exit.
                                        e.Applied = False
                                        Return
                                    End If
                                End If
    
                                'Now get the font data.
                                e.FontData = New Byte(CInt(Size) - 1){}
                                Dim Result As UInteger = GetFontData(GrHandle, ttcf, 0, e.FontData, Size)
    
                                If CInt(Result) < 0 Then
                                    e.Applied = False
                                    Return
                                End If
                                e.Applied = True
                            Finally
                                DeleteObject(ObjHandle)
                            End Try
                        Finally
                            Gr.ReleaseHdc(GrHandle)
                        End Try
                    End Using
                Finally
                    DeleteObject(FontHandle)
                End Try
            End Sub
    
            ''' <summary>
            ''' The Win32 call.
            ''' </summary>
            ''' <param name="hdc"></param>
            ''' <param name="dwTable"></param>
            ''' <param name="dwOffset"></param>
            ''' <param name="lpvBuffer"></param>
            ''' <param name="cbData"></param>
            ''' <returns></returns>
           <DllImport("gdi32.dll")> _
            Shared Function GetFontData(ByVal hdc As IntPtr, ByVal dwTable As UInteger, ByVal dwOffset As UInteger, <[In](), Out()> ByVal lpvBuffer() As Byte, ByVal cbData As UInteger) As UInteger
            End Function
    
            <DllImport("GDI32.dll")> _
            Shared Function DeleteObject(ByVal objectHandle As IntPtr) As Boolean
            End Function
    
            <DllImport("gdi32.dll")> _
            Shared Function SelectObject(ByVal hdc As IntPtr, ByVal hgdiobj As IntPtr) As IntPtr
            End Function
    
    
    
    
        End Class
    End Namespace
    

    Program.vb

    Namespace ExportPdf
        Friend NotInheritable Class Program
    
            Private Sub New()
            End Sub
    
            ''' <summary>
            ''' The main entry point for the application.
            ''' </summary>
           <STAThread> _
            Shared Sub Main()
                Application.EnableVisualStyles()
                Application.SetCompatibleTextRenderingDefault(False)
                Application.Run(New mainForm())
            End Sub
        End Class
    End Namespace
    
    In This Article
    Back to top FlexCel Studio for the .NET Framework v7.24.0.0
    © 2002 - 2025 tmssoftware.com