怎么改变打印纸的方向?添加一个模块:Public Enum PrinterOrientationConstants        OrientPortrait = 1        OrientLandscape = 2End EnumPrivate Type DEVMODE        dmDeviceName As String * 32        dmSpecVersion As Integer        dmDriverVersion As Integer        dmSize As Integer        dmDriverExtra As Integer        dmFields As Long        dmOrientation As Integer        dmPaperSize As Integer        dmPaperLength As Integer        dmPaperWidth As Integer        dmScale As Integer        dmCopies As Integer        dmDefaultSource As Integer        dmPrintQuality As Integer        dmColor As Integer        dmDuplex As Integer        dmYResolution As Integer        dmTTOption As Integer        dmCollate As Integer        dmFormName As String * 32        dmUnusedPadding As Integer        dmBitsPerPel As Integer        dmPelsWidth As Long        dmPelsHeight As Long        dmDisplayFlags As Long        dmDisplayFrequency As LongEnd TypePrivate Type PRINTER_DEFAULTS        pDataType As String        pDevMode As Long        DesiredAccess As LongEnd TypePrivate Type PRINTER_INFO_2        pServerName As Long        pPrinterName As Long        pShareName As Long        pPortName As Long        pDriverName As Long        pComment As Long        pLocation As Long        pDevMode As Long        pSepFile As Long        pPrintProcessor As Long        pDataType As Long        pParameters As Long        pSecurityDescriptor As Long        Attributes As Long        Priority As Long        DefaultPriority As Long        StartTime As Long        UntilTime As Long        Status As Long        cJobs As Long        AveragePPM As LongEnd TypePrivate Const DMPAPER_A2 = 66Private Const DMPAPER_A3 = 8Private Const DMPAPER_A4 = 9Private Const DMPAPER_A5 = 11Private Const DMPAPER_B4 = 12Private Const DMPAPER_B5 = 13Private Const DM_IN_BUFFER As Long = 8Private Const DM_OUT_BUFFER As Long = 2Private Const DM_ORIENTATION As Long = &H1Private Const DM_PAPERSIZE = &H2&Private Const PRINTER_ACCESS_ADMINISTER As Long = &H4Private Const PRINTER_ACCESS_USE As Long = &H8Private Const STANDARD_RIGHTS_REQUIRED As Long = &HF0000Private Const PRINTER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or PRINTER_ACCESS_ADMINISTER Or PRINTER_ACCESS_USE)Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)Private Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As Any) As LongPrivate Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As LongPrivate Declare Function DocumentProperties Lib "winspool.drv" Alias "DocumentPropertiesA" (ByVal hWnd As Long, ByVal hPrinter As Long, ByVal pDeviceName As String, pDevModeOutput As Any, pDevModeInput As Any, ByVal fMode As Long) As LongPrivate Declare Function GetPrinter Lib "winspool.drv" Alias "GetPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pPrinter As Any, ByVal cbBuf As Long, pcbNeeded As Long) As LongPrivate Declare Function SetPrinter Lib "winspool.drv" Alias "SetPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pPrinter As Any, ByVal Command As Long) As LongFunction SetDefaultPrinterOrientation(ByVal eOrientation As _    PrinterOrientationConstants) As Boolean        Dim bDevMode() As Byte        Dim bPrinterInfo2() As Byte        Dim hPrinter As Long        Dim lResult As Long        Dim nSize As Long        Dim sPrnName As String        Dim dm As DEVMODE        Dim pd As PRINTER_DEFAULTS        Dim pi2 As PRINTER_INFO_2        ' 获取默认打印机的设备名称        sPrnName = Printer.DeviceName        ' 由于要调用SetPrinter,所以        ' 如果是在NT下就要求PRINTER_ALL_ACCESS        pd.DesiredAccess = PRINTER_ALL_ACCESS        ' 获取打印机句柄        If OpenPrinter(sPrnName, hPrinter, pd) Then                ' 获取PRINTER_INFO_2结构要求的字节数               Call GetPrinter(hPrinter, 2&, 0&, 0&, nSize)                ReDim bPrinterInfo2(1 To nSize) As Byte                lResult = GetPrinter(hPrinter, 2, bPrinterInfo2(1), nSize, nSize)                Call CopyMemory(pi2, bPrinterInfo2(1), Len(pi2))                nSize = DocumentProperties(0&, hPrinter, sPrnName, 0&, 0&, 0)                      ReDim bDevMode(1 To nSize)                If pi2.pDevMode Then                        Call CopyMemory(bDevMode(1), ByVal pi2.pDevMode, Len(dm))                Else                        Call DocumentProperties(0&, hPrinter, sPrnName, bDevMode(1), 0&, DM_OUT_BUFFER)                End If                 Call CopyMemory(dm, bDevMode(1), Len(dm))                With dm                        ' 设置新的走向                        .dmOrientation = eOrientation                        .dmFields = DM_ORIENTATION                        '.dmPaperSize = DMPAPER_A5 将纸张大小设为A5,请自行更改所需大小                        '.dmFields = DM_PAPERSIZE  必须,否则无法设置纸张大小                End With                Call CopyMemory(bDevMode(1), dm, Len(dm))                 Call DocumentProperties(0&, hPrinter, sPrnName, _                        bDevMode(1), bDevMode(1), DM_IN_BUFFER Or _                        DM_OUT_BUFFER)                 pi2.pDevMode = VarPtr(bDevMode(1))                 lResult = SetPrinter(hPrinter, 2, pi2, 0&)                 Call ClosePrinter(hPrinter)                SetDefaultPrinterOrientation = True        Else                SetDefaultPrinterOrientation = False        End IfEnd Function 调用的时候:SetDefaultPrinterOrientation OrientPortrait ‘为纵向SetDefaultPrinterOrientation OrientLandscape ‘为横向