【问题标题】:Force Printing on Legal Size Paper在 Legal 尺寸的纸张上强制打印
【发布时间】:2013-06-16 22:10:18
【问题描述】:

这是否可以通过编程方式完成,无需创建自定义 PaperSize 而是使用预定义的尺寸?已知该打印机支持 Legal 尺寸的纸张。
有没有比遍历打印机的纸张尺寸并扫描Legal 子字符串更优雅的解决方案?

更新 这就是我最终要做的:

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

【问题讨论】:

    标签: .net vb.net winforms printing


    【解决方案1】:

    这是PaperKind enum中的默认条目:

    PaperLegal 
    

    (合法,8 1/2 x 14 英寸。)

    【讨论】:

    • 对不起,我应该提到它是一个 WinForm 应用程序,用 VB.NET 编写。没有这样的枚举。设置PrintDocument1.DefaultPageSettings.PaperSize.RawKind = PaperKind.Legal 似乎不起作用。
    • 先尝试使 PaperSize 为空(也将 kind 转换为 int),我不知道这是一个错误还是什么,但我过去发现更改纸张大小通常不会'如果已经设置,则无法使用。 PrintDocument1.DefaultPageSettings.PaperSize = null; PrintDocument1.DefaultPageSettings.PaperSize.RawKind = (int)PaperKind.Legal;
    • 刚刚试了下,还是不行。 PrintDocument1.DefaultPageSettings.PaperSize = Nothing PrintDocument1.DefaultPageSettings.PaperSize.RawKind = CInt(PaperKind.Legal)
    • PaperSize size = new PaperSize(); size.RawKind = CInt(PaperKind.Legal); PrintDocument1.DefaultPageSettings.PaperSize = size; 呢?
    • 确实有效。它不像引用现有的 PaperSizeCollection 项目那样干净,但至少它有效。
    【解决方案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
    

    我在猜测语法,所以这些都可能不起作用,我最终得到了至少一样多的代码行,但它节省了编写循环。

    【讨论】:

      猜你喜欢
      • 2015-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多