2

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 OSXのBrotherQL-560で印刷しようとしています。プレビューから同じ画像を同じサイズで、非常に高品質で印刷できます。

更新:画像の例を追加しました。Macプレビューからの印刷とJava印刷APIの違い

更新:xhtmlrendererを使用してpdfを作成し、pdf-renderer(http://java.net/projects/pdf-renderer/)を介して印刷することでうまくいきました。これで印刷は完璧になりました。

4

1 に答える 1

1

例なしで問題が何であるかを言うのは難しい。たとえば、どの画像を印刷しようとしていますか?どのような解像度がありますか?

プリンタードライバーではないことを確認するために、PDFに印刷することをお勧めします。それは役に立ちますか?

そうでない場合:プレビューをPDFに印刷します。それはどのように見えますか?ズームインするとどうなりますか?

于 2011-05-04T08:46:54.287 に答える