应用程序使用jEditorPane显示html页面,该页面还能够打印所述html页面。我们为printerJob属性Set构造MediaPrintableArea,如下所示:
float mediaWidth = mediaSize.getX(Size2DSyntax.MM);
float mediaHeight = mediaSize.getY(Size2DSyntax.MM);
float imageableX = 18;
float imageableY = 25;
float imageableWidth = (mediaWidth - (2 * imageableX));
float imageableHeight = (mediaHeight - (2 * imageableY));
MediaPrintableArea imageableArea = new MediaPrintableArea(imageableX, imageableY, imageableWidth, imageableHeight, Size2DSyntax.MM);
因此我们控制页面的可打印区域。但是,当卫星对齐且单条线的长度合适时,线条中最后一个字符的末尾将被切断。
EX:如果一行以单词“to”结尾,则打印页面上只会显示“o”的最左侧一半。我希望如果这是在可打印的边缘运行,“to”将包裹到下一行,但它不是。
除了使用MediaPrintableArea之外,还有其他一些定义可打印区域的方法吗?有没有什么可以导致单词不包装或java如何计算单词的位置?
我们还测试过其他几台打印机并从浏览器打印出来,我们可以在那里打印我们的Java打印作业,所以我不认为应该考虑硬件问题。
答案 0 :(得分:0)
您可能从(0,0)开始渲染JEditorPane,而不是从PageFormat.getImageableX(),PageFormat.getImageableY()开始渲染。有关详细信息,请参阅http://java.sun.com/developer/onlineTraining/Programming/JDCBook/advprint.html。