这可以通过编程方式完成,而无需创建自定义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
答案 0 :(得分:3)
答案 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
我猜测语法所以这些都不会起作用,我最终得到了至少一行代码,但它节省了写一个循环。