Printing StartDocPrinter(hPrinter,1,di)返回false

Printing StartDocPrinter(hPrinter,1,di)返回false,printing,Printing,我正在尝试将原始数据打印到打印机。我的密码是从 在代码段中 Dim di As New DOCINFOW With di .pDocName = "My Visual Basic .NET RAW Document" .pDataType = "TEXT" .pOutputFile = vbNull End With If OpenPrinter(szPrinterName.Normalize(),

我正在尝试将原始数据打印到打印机。我的密码是从

在代码段中

   Dim di As New DOCINFOW


    With di

        .pDocName = "My Visual Basic .NET RAW Document"        
        .pDataType = "TEXT"
        .pOutputFile = vbNull
    End With

 If OpenPrinter(szPrinterName.Normalize(), hPrinter, IntPtr.Zero) Then
        If StartDocPrinter(hPrinter, 1, di) Then
            If StartPagePrinter(hPrinter) Then
                bSuccess = WritePrinter(hPrinter, pBytes, dwCount, dwWritten)
                EndPagePrinter(hPrinter)
            End If
            EndDocPrinter(hPrinter)
        End If
        ClosePrinter(hPrinter)
    End If

第一个if返回TRUE,但是if startDocInter(hPrinter,1,di)然后返回FALSE,这就是为什么不能满足进一步嵌套if的要求。我已经在这个问题上工作了几个小时,搜索等都没有结果。任何碰巧遇到同样问题的人都可能有解决办法。谢谢。

最后一个错误是什么?dwError=Marshal.GetLastWin32Error()我尝试在网络打印机上打印,但显示的错误仅为0。我将打印机直接连接到我的电脑,代码工作。StartDocPrinter失败后,您是否立即调用GetLastWin32Error?当StartDocPrinter失败时,它存在循环并调用GetLastWin32Error。如果在调用GetLastWin32Error之前调用ClosePrinter,它将覆盖上一个错误,错误为\u SUCCESS(0)。