在合法尺寸纸张上强制打印

时间:2013-06-16 22:10:19

标签: .net vb.net winforms printing

这可以通过编程方式完成,而无需创建自定义PaperSize但使用预定义的大小?已知打印机支持合法尺寸的纸张 有没有比循环打印机的纸张尺寸和扫描Legal子串更优雅的解决方案?

UPDATE 这就是我最终做的事情:

For i = 0 To PrintDocument1.PrinterSettings.PaperSizes.Count - 1
    If PrintDocument1.PrinterSettings.PaperSizes(i).RawKind = PaperKind.Legal Then
        PrintDocument1.DefaultPageSettings.PaperSize = PrintDocument1.PrinterSettings.PaperSizes(i)
    Exit For
    End If
Next

2 个答案:

答案 0 :(得分:3)

这是PaperKind enum中的默认条目:

PaperLegal 

(法律,8 1 / 2-乘14英寸。)

答案 1 :(得分:2)

我比VB.NET更了解C#,而在C#中我使用LINQ来做到这一点。为了我自己的兴趣,至少在这里尝试了两次VB.NET LINQ语法:

Dim paperSize as PaperSize = _
    From ps in PrintDocument1.PrinterSettings.PaperSizes _
    Where ps.RawKind = PaperKind.Legal _
    Select ps Take 1
If paperSize IsNot Nothing
    DocPrint.DefaultPageSettings.PaperSize = paperSize
End If

Dim paperSize = PrintDocument1.PrinterSettings.PaperSizes _
                .FirstOrDefault(Function(ps) ps.RawKind = PaperKind.Legal)
If paperSize IsNot Nothing
    DocPrint.DefaultPageSettings.PaperSize = paperSize
End If

我猜测语法所以这些都不会起作用,我最终得到了至少一行代码,但它节省了写一个循环。