задание на печать java, обрезающее край страницы - PullRequest
2 голосов
/ 25 августа 2011

Приложение использует jEditorPane для отображения html-страниц, которые также могут распечатывать указанную html-страницу.Мы создаем MediaPrintableArea для атрибута printerJob. Установите так:

    float mediaWidth = mediaSize.getX(Size2DSyntax.MM);
    float mediaHeight = mediaSize.getY(Size2DSyntax.MM);
    float imageableX = 18;
    float imageableY = 25;
    float imageableWidth = (mediaWidth - (2 * imageableX));
    float imageableHeight = (mediaHeight - (2 * imageableY));
    MediaPrintableArea imageableArea = new MediaPrintableArea(imageableX, imageableY, imageableWidth, imageableHeight, Size2DSyntax.MM);

Таким образом, мы контролируем область печати страницы.Однако, когда луны совпадают, а одна строка имеет правильную длину, конец последнего символа в строке обрезается.

EX: если строка заканчивается словом «to»,будет только самая левая половина буквы 'o', видимая на распечатанной странице.Я ожидал бы, что если бы это вышло за пределы области печати, то "to" переносилось бы на следующую строку, но это не так.

Существует ли какой-либо другой метод определения области печати, кроме использования MediaPrintableArea?Есть ли что-то, из-за чего слова не переносятся, или как java рассчитывает расположение слов?

Мы также протестировали несколько других принтеров и распечатали их из браузеров, где мы можем печатать за пределами нашего задания на печать java.отключается, поэтому я не думаю, что проблемы с оборудованием должны рассматриваться.

1 Ответ

0 голосов
/ 26 августа 2011

Вы, вероятно, визуализируете JEditorPane, начиная с (0, 0), а не с PageFormat.getImageableX (), PageFormat.getImageableY ().См. http://java.sun.com/developer/onlineTraining/Programming/JDCBook/advprint.html для получения дополнительной информации.

...