java打印作业切断页面边缘

时间:2011-08-25 18:49:05

标签: java printing jeditorpane

应用程序使用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打印作业,所以我不认为应该考虑硬件问题。

1 个答案:

答案 0 :(得分:0)

您可能从(0,0)开始渲染JEditorPane,而不是从PageFormat.getImageableX(),PageFormat.getImageableY()开始渲染。有关详细信息,请参阅http://java.sun.com/developer/onlineTraining/Programming/JDCBook/advprint.html