我有一个使用Java和Graphics2D的图表工具。我想缩放生成的图表,使其在打印时完全适合8.5 x 11页面(横向)。
我看到某处页面缩放是72英寸,但我不确定这与屏幕的dpi有什么关系。为了使事情变得更复杂,我的屏幕工作在144dpi,但该软件包的大多数用户将使用72dpi或96dpi(不确定哪个......?)。有没有人管理所有这些dpi,包括打印?
使用java.awt.print包我可以打印我的图表,但它们太大了,使用了几个页面。我可以使用Graphics.scale(double, double)
来缩放它们,但是如何计算缩放因子以使图表适合一页?并且Graphics.scale(double, double)
是正确的工具吗?
答案 0 :(得分:1)
我在网上找到了这段代码。我认为它解决了你的问题。
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
我希望它可以帮到你。 Link to the web
问候!