我需要通过System.Drawing.Printing.PaperKind获取纸张尺寸。是否有任何预定义的值?我不想硬编码或计算纸张尺寸,我只是想以编程方式获取它。谢谢。

最佳答案

可以通过迭代PrinterSettings.PaperSizes集合来获得预定义值的子集。

我们的应用程序让用户选择一台打印机,为我们提供了 PrinterSettings 对象。打印机支持的PrinterSettings列表包含在PaperSize中-并非全部(请注意,XPS文档驱动程序(win7)支持所有大小)。

在我们的案例中,这就是我们所需要的支持大小的子集。用户指定的PaperKind传递给我们的打印代码,并通过PrinterSettings对象,直到找到用户的选择或放弃并使用默认值。

在下面的示例中,您可以看到PaperSize对象已正确填充。

PrinterSettings settings = new PrinterSettings();
foreach (PaperSize size in settings.PaperSizes)
    Debug.WriteLine(size);

它只是一个子集,但也许对您来说也足够了。 .NET中的打印API尚不清楚,而msdn并没有太大帮助...希望它能使您走上正确的轨道!

10-08 04:20