java打印索引卡

java打印索引卡,java,printing,Java,Printing,我正在开发这个Java应用程序,我正在尝试打印 索引卡上的单独字幕故事板,即每张卡一张图像 我曾设想,我可能可以通过在横向模式下打印来实现这一点 在一个标准的4 x 6索引卡上,但我的打印机是一个相当新的 HP Photosmart 5515无法应对这种情况 卡只能纵向装入打印机,否则会显示 文具太短了。当您选择肖像模式时,它可以打印,但是 这有点违反直觉,而且它浪费了屏幕上方和下方的空间 情节提要图像,然后仅占用可用空间的三分之一 当您告诉机器以横向模式打印时,它仍以纵向模式打印, 但是有着完

我正在开发这个Java应用程序,我正在尝试打印 索引卡上的单独字幕故事板,即每张卡一张图像

我曾设想,我可能可以通过在横向模式下打印来实现这一点 在一个标准的4 x 6索引卡上,但我的打印机是一个相当新的 HP Photosmart 5515无法应对这种情况

卡只能纵向装入打印机,否则会显示 文具太短了。当您选择肖像模式时,它可以打印,但是 这有点违反直觉,而且它浪费了屏幕上方和下方的空间 情节提要图像,然后仅占用可用空间的三分之一

当您告诉机器以横向模式打印时,它仍以纵向模式打印, 但是有着完全荒谬的保证金设置

protected void setPageFormat(PrinterJob job) {

    PageFormat defaultPageFormat = job.defaultPage();
    Paper paper = defaultPageFormat.getPaper();
    paper.setImageableArea(0.0D, 0.0D, paper.getWidth(), paper.getHeight());


    defaultPageFormat.setPaper(paper);

    // sets imageable size to maximum allowable margins
    pageFormat = job.validatePage(defaultPageFormat);
}
我使用PrinterJob方法validatePage来确保页边距正常,并且 这是一个返回小边距设置的例程

protected void setPageFormat(PrinterJob job) {

    PageFormat defaultPageFormat = job.defaultPage();
    Paper paper = defaultPageFormat.getPaper();
    paper.setImageableArea(0.0D, 0.0D, paper.getWidth(), paper.getHeight());


    defaultPageFormat.setPaper(paper);

    // sets imageable size to maximum allowable margins
    pageFormat = job.validatePage(defaultPageFormat);
}
当我改用A4纸的时候 对于索引卡来说,利润是完全可以接受的。当我选择横向索引卡时 看看pageFormat对象,它告诉我它是肖像,即使我选择了 景观,即使给定的宽度比高度长

有什么建议,非常感谢