Невозможно распечатать в правильном разрешении - PullRequest
2 голосов
/ 04 мая 2011

Я пытаюсь распечатать этикетки, используя xhtmlrenderer и java print.Однако я, кажется, не могу установить правильное разрешение, поэтому изображение печатается очень резким.Это мой печатный код:

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)
}

Я в растерянности от того, что здесь не хватает.Я пытаюсь установить dpi как для источника xhtmlrenderer, так и для цели принтера, но, похоже, ничто не оказывает никакого влияния.

Кстати: я пытаюсь печатать на Brother QL-560 в Mac OS X. Я могураспечатать то же изображение из предварительного просмотра в том же размере в очень хорошем качестве.

Обновление : добавлен пример изображения. Difference between print from Mac Preview and java print api

Обновление : Использование xhtmlrenderer для создания pdf, а затем печать через pdf-renderer (http://java.net/projects/pdf-renderer/) сделал свое дело. Теперь печать идеальна.

1 Ответ

1 голос
/ 04 мая 2011

Трудно сказать, в чем проблема без примера. Например, какое изображение вы пытаетесь напечатать? Какое разрешение у него есть?

Чтобы убедиться, что это не драйвер принтера, я предлагаю напечатать в PDF. Это помогает?

Если нет: распечатать предварительный просмотр в PDF. Как это выглядит? Что происходит при увеличении масштаба?

...