Я могу получить текущий формат бумаги Locale, используя
GetLocaleStr(LCID,LOCALE_IPAPERSIZE,IntToStr(DMPAPER_A4))
, где LOCALE_IPAPERSIZE = $100A
LOCALE_IPAPERSIZE = $100A
, но есть ли способ перечислить все размеры бумаги с их именами?
Перечислителя нет, полный список см. В Размеры бумаги в MSDN.
Вы можете узнать размеры бумаги, поддерживаемые конкретным установленным принтером, но, возможно, не все.
Есть EnumForms.
EnumForms
Стивен Фридл провел исследование на эту тему.