Я установил драйверы для принтера этикеток в соответствии с указаниями здесь: http://www.linux-hardware-guide.com/2014-10-22-brother-ql-700-label-printer-usb
Я заметил одну вещь: драйвер принтера зависит от 32-разрядной библиотеки libstdc ++.
Я могу напечатать png с некоторой прозрачностью из программы Gnome Image Viewer, которая поставляется с Ubuntu, но когда я пытаюсь распечатать то же изображение из Java или lpr с тем же поведением, задание не выполняется и остается в очередь со статусом «Не удалось отправить данные».
В чашках error_log
, Я вижу, что imagetopdf дает сбой.
D [21/Mar/2017:23:58:37 -0400] [Job 37] Loading USB quirks from \"/usr/share/cups/usb\".
D [21/Mar/2017:23:58:37 -0400] [Job 37] Loaded 131 quirks.
D [21/Mar/2017:23:58:37 -0400] [Job 37] Printing on printer with URI: usb://Brother/QL-700?serial=000G6Z433508
D [21/Mar/2017:23:58:37 -0400] [Job 37] libusb_get_device_list=8
D [21/Mar/2017:23:58:37 -0400] [Job 37] STATE: +connecting-to-device
D [21/Mar/2017:23:58:37 -0400] [Job 37] Page = 82x255; 4,8 to 78,246
D [21/Mar/2017:23:58:37 -0400] [Job 37] PNG image: 250x250x8, color_type=3 (RGB+PALETTE)
D [21/Mar/2017:23:58:37 -0400] [Job 37] *** Error in `Brother-QL-700\': free(): invalid next size (normal): 0x0000000000fdd5e0 ***
D [21/Mar/2017:23:58:37 -0400] [Job 37] ======= Backtrace: =========
D [21/Mar/2017:23:58:37 -0400] [Job 37] /lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7fd2b1eae7e5]
D [21/Mar/2017:23:58:37 -0400] [Job 37] /lib/x86_64-linux-gnu/libc.so.6(+0x7fe0a)[0x7fd2b1eb6e0a]
D [21/Mar/2017:23:58:37 -0400] [Job 37] /lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7fd2b1eba98c]
D [21/Mar/2017:23:58:37 -0400] [Job 37] /usr/lib/x86_64-linux-gnu/libcupsfilters.so.1(_cupsImageReadPNG+0x3c7)[0x7fd2b220f597]
D [21/Mar/2017:23:58:37 -0400] [Job 37] /usr/lib/x86_64-linux-gnu/libcupsfilters.so.1(cupsImageOpen+0x421)[0x7fd2b2209801]
D [21/Mar/2017:23:58:37 -0400] [Job 37] Brother-QL-700[0x401e40]
D [21/Mar/2017:23:58:37 -0400] [Job 37] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fd2b1e57830]
D [21/Mar/2017:23:58:37 -0400] [Job 37] Brother-QL-700[0x404629]
D [21/Mar/2017:23:58:37 -0400] [Job 37] ======= Memory map: ========
D [21/Mar/2017:23:58:37 -0400] [Job 37] 00400000-00409000 r-xp 00000000 08:01 55837711 /usr/lib/cups/filter/imagetopdf
... memory map elided
D [21/Mar/2017:23:58:37 -0400] [Job 37] 7ffdc1acb000-7ffdc1acd000 r-xp 00000000 00:00 0 [vdso]
D [21/Mar/2017:23:58:37 -0400] [Job 37] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
D [21/Mar/2017:23:58:37 -0400] [Job 37] STATE: -connecting-to-device
D [21/Mar/2017:23:58:37 -0400] [Job 37] Printer found with device ID: MFG:Brother;CMD:PT-CBP;MDL:QL-700;CLS:PRINTER; Device URI: usb://Brother/QL-700?serial=000G6Z433508
D [21/Mar/2017:23:58:37 -0400] [Job 37] Device protocol: 2
D [21/Mar/2017:23:58:37 -0400] [Job 37] Sending data to printer.
D [21/Mar/2017:23:58:37 -0400] [Job 37] Set job-printer-state-message to "Sending data to printer.", current level=INFO
D [21/Mar/2017:23:58:37 -0400] [Job 37] Usage: file [-bcEhikLlNnprsvzZ0] [--apple] [--extension] [--mime-encoding] [--mime-type]
D [21/Mar/2017:23:58:37 -0400] [Job 37] [-e testname] [-F separator] [-f namefile] [-m magicfiles] file ...
D [21/Mar/2017:23:58:37 -0400] [Job 37] file -C [-m magicfiles]
D [21/Mar/2017:23:58:37 -0400] [Job 37] file [--help]
D [21/Mar/2017:23:58:37 -0400] [Job 37] PID 27534 (/usr/lib/cups/filter/imagetopdf) crashed on signal 6.
D [21/Mar/2017:23:58:37 -0400] [Job 37] Hint: Try setting the LogLevel to "debug" to find out more.
Я подключил принтер к Mac и установил соответствующие драйверы, и все работает нормально, если я печатаю с помощью lpr, хотя я еще не пробовал Java на Mac, но это не важно.
Одна вещь, которая, как я думал, может быть проблемой, заключается в том, что imagetopdf явно использует 64-битную libstdc ++, но если это отдельная версия, то тот факт, что она отделена от драйвера принтера, означает, что она не должна так конфликтовать. Возможно ли, что установка 32-битной libstdc ++ могла привести к чему-то еще?
Есть идеи, что здесь происходит и как это можно исправить?
Спасибо!