我正在使用 JFreechart API 来生成“条形图”。我可以保存它们,但是如何通过 Java GUI 应用程序从打印机打印它们?
问问题
125 次
1 回答
2
我在我的代码中使用以下代码段。IStatisticsGraph
是我自己创建统计的界面,所以这对你来说并不重要。在我的主 GUI 中有一个打印按钮,它调用了这个函数。
public class StatisticPage
implements Printable
{
private ChartPanel mChart = null;
public StatisticPage(ChartPanel oChart)
{
mChart = oChart;
}
public int print(Graphics g, PageFormat format, int pageIndex)
{
if(mChart == null)
return Printable.NO_SUCH_PAGE;
return mChart.print(g, format, pageIndex);
}
}
在 MainGUI 中:
private void onPrint()
{
try
{
Object o = mStatisticSelectorBox.getSelectedItem();
if(o == null)
return;
IStatisticGraph gr = (IStatisticGraph)o;
StatisticPage page = gr.getPage();
if(page == null)
return;
PrinterJob prt = PrinterJob.getPrinterJob();
PageFormat pf0 = prt.defaultPage();
PageFormat pf1;
pf0.setOrientation(PageFormat.LANDSCAPE);
pf1 = prt.pageDialog(pf0);
if(pf1.equals(pf0) == true)
return;
Book book = new Book();
book.append(page, pf1);
prt.setPageable(book);
try
{
prt.print();
}
catch (PrinterException exception)
{
}
}
catch(Throwable e)
{
showError(e.getClass().getCanonicalName(), e.getLocalizedMessage(), e);
}
}
于 2013-07-10T08:17:04.683 回答