在Java中缩放图表以适合一个打印页面

时间:2011-07-23 20:43:30

标签: java printing scaling graphics2d

我有一个使用Java和Graphics2D的图表工具。我想缩放生成的图表,使其在打印时完全适合8.5 x 11页面(横向)。

我看到某处页面缩放是72英寸,但我不确定这与屏幕的dpi有什么关系。为了使事情变得更复杂,我的屏幕工作在144dpi,但该软件包的大多数用户将使用72dpi或96dpi(不确定哪个......?)。有没有人管理所有这些dpi,包括打印?

使用java.awt.print包我可以打印我的图表,但它们太大了,使用了几个页面。我可以使用Graphics.scale(double, double)来缩放它们,但是如何计算缩放因子以使图表适合一页?并且Graphics.scale(double, double)是正确的工具吗?

1 个答案:

答案 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

问候!