我正在开发这个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来确保边距正常,并且正是这个例程返回了微小的边距设置。
当我使用 A4 纸而不是索引卡时,页边距完全没问题。当我选择横向索引卡并查看 pageFormat 对象时,它告诉我它是纵向的,即使我选择了横向,即使给出的宽度比高度长。
任何建议,不胜感激