首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JasperReports更改打印页边距?

如何使用JasperReports更改打印页边距?
EN

Stack Overflow用户
提问于 2011-11-08 00:32:31
回答 2查看 17.4K关注 0票数 3

我正在生成一份直接发送给打印机的报告,但遇到了一些问题。如果我将它渲染到屏幕上并打印生成的PDF,它打印得很好。然而,当我直接打印时,我会遇到奇怪的边距问题。目标是一辆带有4个“x3”标签的斑马。

如果我这样设置纸张大小:

代码语言:javascript
复制
MediaSizeName mediaSizeName=MediaSize.findMedia(4, 3, MediaPrintableArea.INCH);
printRequestAttributeSet.add(mediaSizeName);

结果是标签在上边距上,左边距有半英寸(应该是无),右边距大约是.25“去掉了标签的一部分,底部大理石是1.5”,很多标签都被砍掉了。

如果我没有设置纸张大小,那么上边距和左边距都是完美的(意思是,没有任何边距,位于标签的边缘),但我最终仍然会得到较大的下边距(被切掉的东西),而我的右边距变得更大(与打印信息在同一点上被切掉)。

这里我漏掉了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-08 03:16:27

呃,在这一切之后,它变成了系统上的打印机首选项选项。我无法解释为什么从屏幕打印PDF文件是可行的。我尝试在打印机设置中设置一个自定义标签库存,大小为4"x3“,但这对我的Java应用程序没有帮助,所以我认为这是我编码错误的原因。事实并非如此。显然,定制标签库存的事情就是不能正常工作。我能够深入研究高级选项并在那里设置大小,这很有效……

票数 1
EN

Stack Overflow用户

发布于 2011-11-08 00:48:44

您可以尝试使用JasperDesign类的setBottomMargin, setTopMargin, setRightMargin, setLeftMargin方法或JasperPrint类中的相同方法。

您可以看到示例here

您还可以在报表模板中设置边距,例如在iReport的帮助下。

报告模板的代码片段:

代码语言:javascript
复制
<jasperReport ... language="groovy" pageWidth="595" pageHeight="842" columnWidth="593" leftMargin="1" rightMargin="1" topMargin="1" bottomMargin="1">

您还可以查看MediaPrintableArea class constructor并阅读此post

更新:

如何从this discussion中删除页边距的另一个解决方案

代码语言:javascript
复制
    PageFormat pf = PrinterJob.getPrinterJob().defaultPage();
    Paper paper = new Paper();
    paper.setImageableArea(0, 0, paper.getWidth(), paper.getHeight()); // no margin = no scaling
    pf.setPaper(paper);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8039495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档