2Klim
Прочитал с интересом. Тут так тщательно редко пишут. Сразу вопросы возникают.
1) Я так понимаю, что в самом тупом случае печать выглядит так - чел из прикладной программы говорит - печатать этот лист на такой-то лоток принтера. Лист печатается. У-ляля. Не попали, куда хотели. Утираемся.
2) В случае описанной процедуры печать выглядит так - печатаем тестовый лист, смотрим метки, результаты куда-то записываем в драйвер принтера, называемый Рипом. Всё записали, вроде правильно. Результирующая процедура выглядит так - открываем нужный лист, печатаем, радуемся правильному попаданию.
3) Но ведь есть другой способ. А именно: а) открыли документ, б) запустили макрос, который переставляет документ на листе в нужное место, делая эдакую предкоррекцию, в) печатаем.
Ясно, что пункты б) и в) можно объединить в одну кнопку, на которой будет нарисован значок принтера

. То есть процедура печати листа у нас будет содержать две процедуры - чуть-чуть подвинуть документ на листе, и напечатать лист. Но выглядеть это всё равно будет как одно действие.