2015-07-13 4 views
1

Я пытаюсь напечатать некоторые страницы A5 из приложения C#, но я получаю неожиданные результаты. Выход по вертикали смещен примерно на 110 мм, поэтому выход начинается на полпути вниз по странице и смещается горизонтально примерно на 20 мм. Выход начинается с левой стороны страницы (поэтому трудно измерить точное смещение). Выход также обрезается горизонтально и вертикально.C# Printing Offset

Например,

dc.DrawRectangle (0, 0, 100, 100) 

рисует рамку на полпути вниз страницы и половина коробки отсутствует из-за того от левого края. Однако размер кажется ОК.

Должно быть, я упускаю что-то действительно очевидное, но я не могу видеть это сам. Кто-нибудь знает, что может вызвать эти смещения?

+0

Просто пытался делать в А5 печать из LibreOffice и имеет те же проблемы (огромное вертикальное смещение, horzontal смещение), так что может быть проблема с принтером. По крайней мере, я не буду полностью злиться. Это Xerox Phaser 6500 с дуплексной опцией. – Skizz

+0

Возможно, вы выбрали опцию ручной подачи, а не «автоматическую». Тем не менее тестирование. Grrrr, я думал, OSes решили эти проблемы принтера давным-давно! – Skizz

ответ

0

Это может дать подсказку:

// Rectangle describes page minus margins. 
Rect rectPage = new Rect(marginPage.Left, marginPage.Top, 
    dlg.PrintableAreaWidth - (marginPage.Left + marginPage.Right), 
         dlg.PrintableAreaHeight - (marginPage.Top + marginPage.Bottom)); 
// Draw rectangle to reflect user's margins. 
dc.DrawRectangle(null, pn, rectPage); 

От: Charles Petzold's Apps = Code With Markup

+1

Нет, я уверен, что я это делаю. Там по-прежнему существует значительное вертикальное смещение, и выход обрезается. – Skizz

+0

Возможно, попробуйте выполнить компиляцию и запуск небольшого/полного примера из Petzold и посмотреть, получилось ли у вас такое же ошибочное смещение. Если нет, то, возможно, проблема лежит где-то в другом месте. – raddevus