Масштабирование диаграмм в Java для размещения одной страницы печати - PullRequest
4 голосов
/ 24 июля 2011

У меня есть инструмент для построения диаграмм, который использует Java и Graphics2D. Я хотел бы масштабировать полученную диаграмму, чтобы она точно вписывалась в страницу размером 8,5 x 11 (альбомная) при печати. ​​

Я где-то видел, что масштабирование страницы составляет 72 секунды, но я не уверен, как это связано с разрешением экрана. Чтобы сделать все более сложным, мой экран работает на 144dpi, но большинство пользователей пакета будут использовать 72dpi или 96dpi (не уверен, какой ...?). У кого-нибудь есть опыт управления всеми этими точками на дюйм, включая печать?

Используя пакет java.awt.print, я могу напечатать мою диаграмму, но они слишком большие, используя несколько страниц. Я могу масштабировать их, используя Graphics.scale(double, double), но как рассчитать коэффициент масштабирования, чтобы диаграммы помещались на одной странице? И действительно ли Graphics.scale(double, double) правильный инструмент?

1 Ответ

1 голос
/ 03 августа 2011

Я нашел этот код в Интернете.Я думаю, что это решит вашу проблему.

Graphics2D g2d = (Graphics2D)g; 
//Scale the component to fit    
//Calculate the scale factor to fit the window to the page.
double scaleX = pageFormat.getImageableWidth();
double scaleY = pageFormat.getImageableHeight();
double scale = Math.min(scaleX,scaleY);  //Get minimum scale factor

Надеюсь, это поможет вам. Ссылка на Интернет

С уважением!

...