Я делаю приложение для доступа, которое печатает два размера этикетки: 3 "ширина на 2" высота, а затем 1,5 "ширина на 1" высота. Это приложение будет работать на нескольких разных компьютерах, которые не имеют одинаковых наборов принтеров, например, на машине 1 может быть GC420d, GK420d и обычный принтер 8,5x11, затем на машине 2 может быть LP 2844, GC420d иобычный принтер 8.5x11. Машины распространены по всей производственной среде, и мы не можем стандартизировать тип принтера. Таким образом, это оставляет меня там, где мне нужно иметь возможность определить, какой принтер имеет настройки 3 "x 2", а какой - 1,5 "на 1".
РЕДАКТИРОВАТЬ: я знаю, что это выглядит как "IЯ ничего не пробовал и мне лень пробовать "ситуацию", но весь код, который я потерял, потерпел крах при доступе к рабочему столу. В основном я пробовал Win API, например, DeviceCapabilities , но не смог получить ничего полезного. перечисление пользовательских типов бумаги бесполезно, когда я не вижу фактических размеров пользовательского типа бумаги. Затем я попытался DocumentProperties , что потребовало OpenPrinter , чтобы получить ручку принтера. Вот вещи, которые взорвали все стороны доступа. я использовал этот веб-сайт для получения вызовов API для VBA.
EDIT2: это возвращение для типа бумаги в соответствии с доступом.
?application.Printers(0).DeviceName
ZDesigner GC420d (EPL)
?application.Printers(0).PaperSize
256