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를 설정하려고 시도하지만 아무 것도 영향을 미치지 않는 것 같습니다.
BTW : Mac OS X의 Brother QL-560에서 인쇄하려고합니다. 같은 크기의 미리보기에서 동일한 이미지를 매우 좋은 품질로 인쇄 할 수 있습니다.
업데이트 : 이미지 예제가 추가되었습니다.
업데이트 : PDF 렌더러 (http://java.net/projects/pdf-renderer/)를 통해 트릭을 않았다 인쇄 후 PDF를 만들 xhtmlrenderer를 사용합니다. 이제 인쇄가 완벽합니다.
위의 이미지에있는 두 개의 인쇄물은 주목할만한 차이점이있는 동일한 이미지 (Java 인쇄물에서는 첫 번째, Mac Preview에서는 두 번째 이미지)를 사용합니다. 또한 일반 레이저 프린터로 인쇄하면 같은 문제가 발생합니다. 그게 이상하게 행동하는 xhtmlrenderer를 믿게합니다. 아직 PDF로 인쇄하지 못했습니다. – thoredge
더 낮은 인쇄물은 벡터 이미지 (픽셀 이미지가 아님)처럼 보입니다. 어떻게 그걸 만들었 니? –
실제로 프린터가 매우 효율적으로 사용할 수있는 것으로 보이는 341x108 해상도 (앤티 앨리어싱 사용)의 이미지입니다. – thoredge