Как получить предопределенный формат бумаги PaperKind

Я должен получить формат бумаги Системой. Рисование. Печать. PaperKind. Там кто-либо предопределен значения? Я не хочу к hardcode или вычисляю форматы бумаги, я просто хочу получить его программно. Спасибо.

10
задан Alexander G 6 January 2010 в 14:42
поделиться

2 ответа

Подмножество предопределенных значений может быть получено путем итерации по коллекции PrinterSettings.PaperSizes .

В нашем приложении пользователь выбирает принтер, предоставляя нам объект PrinterSettings . В PrinterSettings содержится список PaperSize , поддерживаемых принтером - не все (обратите внимание, что драйвер документа XPS (win7) поддерживает все размеры).

В нашем случае это подмножество поддерживаемых размеров - это все, что нам нужно. Пользователь, указанный PaperKind , передается нашему коду печати, и он проходит через наш объект PrinterSettings , пока не найдет выбор пользователя или не откажется от него и не использует значение по умолчанию.

В приведенном ниже примере вы можете видеть, что объекты PaperSize заполнены правильно.

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

Это лишь часть, но, может быть, и вам этого достаточно. API печати в .NET действительно неясны, а msdn не особо помогает ... Надеюсь, это поможет вам встать на правильный путь!

9
ответ дан 3 December 2019 в 17:59
поделиться

Вы можете попробовать класс System.Drawing.Printing.PaperSize. Существует свойство RawKind, которому можно присвоить значение System.Drawing.Printing.PaperKind.

Примерно так:

PaperSize size = new PaperSize();
size.RawKind = (int) PaperKind.A3;
2
ответ дан 3 December 2019 в 17:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: