【问题标题】:Unable to print in correct resolution无法以正确的分辨率打印
【发布时间】:2011-05-04 08:40:55
【问题描述】:

我正在尝试使用 xhtmlrenderer 和 java 打印来打印标签。但是,我似乎无法正确设置分辨率,因此图像打印得非常前卫。这是我的打印代码:

val paperWidth = 62.0f
val paperHeight = 70.0f
def print(printable: Printable) {
  val printJob = PrinterJob.getPrinterJob
  printJob.setPrintService(printService)

  val pageFormat = printJob.defaultPage
  pageFormat.setOrientation(PageFormat.LANDSCAPE)
  val labelPaper = pageFormat.getPaper
  labelPaper.setImageableArea(mm2points(0f), mm2points(0f), mm2points(paperWidth), mm2points(paperHeight))
  labelPaper.setSize(mm2points(paperWidth), mm2points(paperHeight))
  pageFormat.setPaper(labelPaper)

  val book = new Book
  book.append(printable, pageFormat)
  printJob.setPageable(book)

  val attributeSet = new HashPrintRequestAttributeSet
  attributeSet.add(new PrinterResolution(300, 300, ResolutionSyntax.DPI))
  printJob.print(attributeSet)
}

...这是我的生成代码:

def apply(url:URL):Printable = {
  val renderer = new XHTMLPanel(UserAgent)
  renderer.getSharedContext.setDPI(300f)
  renderer.getSharedContext.setUserAgentCallback(UserAgent)
  renderer.getSharedContext.setCss(new StyleReference(UserAgent))
  renderer.setDocument(url.toExternalForm)
  new XHTMLPrintable(renderer)
}

我不知道这里缺少什么。我尝试在 xhtmlrenderer 源和打印机目标上设置 dpi,但似乎没有任何影响。

顺便说一句:我正在尝试在 Mac OS X 上的 Brother QL-560 上打印。我能够以相同尺寸以非常好的质量从预览中打印相同的图像。

更新:添加图片示例。

更新:使用 xhtmlrenderer 创建 pdf,然后通过 pdf-renderer (http://java.net/projects/pdf-renderer/) 打印就可以了。现在打印完美了。

【问题讨论】:

    标签: java scala printing xhtmlrenderer


    【解决方案1】:

    没有例子很难说问题出在哪里。例如,您尝试打印哪个图像?它有什么分辨率?

    为确保不是打印机驱动程序,我建议打印为 PDF。这有帮助吗?

    如果不是:将预览打印为 PDF。看起来怎么样?放大后会发生什么?

    【讨论】:

    • 上图中的两个打印使用相同的图像(第一个使用 java print,第二个使用 Mac Preview),但存在显着差异。打印到普通激光打印机也会产生同样的问题。这让我相信它的 xhtmlrenderer 表现得很奇怪。我还没准备好打印成 pdf。
    • 下方的打印输出看起来像矢量图像(不是像素图像)。你是怎么创造出来的?
    • 它实际上是完全相同的图像,分辨率为 341x108(带抗锯齿),打印机似乎能够非常有效地使用它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2016-07-22
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    相关资源
    最近更新 更多