Java打印到Brother QL-1100,不能使用自定义尺寸

时间:2019-12-19 11:17:45

标签: java kotlin printing

使用javax打印API打印到Brother QL-1100标签打印机时遇到问题。实际程序是用Kotlin编写的。

我无法使打印API使用在打印机首选项中设置的自定义尺寸。 enter image description here

打印时出现此错误:

enter image description here

这是我的代码:

class Printer(private var sourceFolder : String) {
    private val renderer: ImageRenderer = ImageRenderer()
    private val docFlavor : DocFlavor = DocFlavor.INPUT_STREAM.PNG
    private val printAtr : HashPrintRequestAttributeSet = HashPrintRequestAttributeSet()
    private val printService : PrintService = PrintServiceLookup.lookupDefaultPrintService()
    init {
        printAtr.add(OrientationRequested.LANDSCAPE)
        printAtr.add(MediaPrintableArea(0,0,100,40,MediaPrintableArea.MM))
        printAtr.add(MediaSize.findMedia(102.toFloat(),40.toFloat(),MediaSize.MM))
    }

    fun print(guest: Guest, originalFilePath: String) {

        val printableFile = createPngFromHTML(guest,originalFilePath)
        val inputStream = FileInputStream(printableFile)
        val docAtr : DocAttributeSet = HashDocAttributeSet()
        val document : Doc = SimpleDoc(inputStream,docFlavor,docAtr) as Doc
        printService.createPrintJob().print(document,printAtr)
        cleanFinishedPrintFiles(printableFile)
    }
}

我正在尝试将PNG文件打印到102mm宽,40mm长的标签上。

在“打印首选项”菜单中,“纸张尺寸”有许多不同的选择,但是如果我使用代码尝试获取所有受支持的尺寸,则不会获得“首选项”菜单中列出的所有尺寸。 enter image description here

使用代码:

val arr = printService.getSupportedAttributeValues(Media::class.java,null,null) as Array<*>
        for(atr in arr) {
            if(atr is MediaSizeName) {
                println(atr)
            }
        }

输出:

17mm x 54mm
17mm x 87mm
23mm x 23mm
29mm x 42mm
29mm x 90mm
38mm x 90mm
39mm x 48mm
60mm x 86mm
62mm x 100mm
102mm x 51mm
102mm x 152mm
103mm x 164mm
12mm Dia
24mm Dia
58mm Dia
12mm
29mm
38mm
12mm x 2
12mm x 3
12mm x 4
215.9mm x 297mm
Standard Address Label
Large Address Label
Return Address Label
Shipping Label
Visitor Name Badge Label
File Folder Label 
Hanging File Folder Label
Binder 1-1/4" - Spine
Binder 2" - Spine
CD/DVD Label
4.07" x 6.4" Large Shipping Label
7" Postage Label
8" Postage Label
4.07" x 8.3" Large Shipping Label
4.07" x 9.3" Large Shipping Label

有人对如何解决这个问题有任何想法吗?真的很令人沮丧吗。

0 个答案:

没有答案