Мое первое предположение состоит в том, что 2 работает с полями, которые вы установили ранее (0,0,0,0)
, и что ваш принтер фактически не поддерживает печать без полей (большинство этого не делают). Из-за того, что большинству принтеров требуются хотя бы некоторые поля, # 1 практически никогда не будет работать.
Метод 3, кажется, фактически запрашивает драйвер для области печати страницы, а затем использует его, поэтому он работает.
Что касается того, почему вы получаете верхний и левый, а не ничего с # 1 и # 2, это потому, что вы просто говорите: «напечатайте мне прямоугольник этих размеров, начиная с верхнего левого угла области печати» не «напечатать мне прямоугольник с этими размерами и начать в дальнем верхнем левом углу страницы, где вы не можете на самом деле печатать», поэтому он пытается, но он выходит за край страницы, так как он больше, чем область печати страницы.