Comments (38)
@eriksl I was able to pick up a 450 DUO (really hard to find right now...) and am testing changes locally. Will let you know when I have something for you to test... :)
from lprint.
@eriksl What format are you sending for the label image? And what operating system are you using?
This particular printer cannot print at the edges of the label (one of the things I don't like about DYMO printers, and it makes no sense to me given the hardware) - the margins are 1mm on the sides and 5.25mm for the leading and trailing edges.
When printing a PNG or JPEG image, you can try setting the default print scaling to "fill" to scale outside the printable margins ("-o print-scaling=fill" on the command-line, or change the default on the web interface). For PDF output it should print it without scaling if the PDF dimensions match the label dimensions.
from lprint.
Hi Michael,
Thanks for your quick response. I'll try to supply extra information and have some additional questions too.
I already assumed there were some hardware-imposed limitations (regarding the print margins), that's indeed a pity but I learned to live with it, when I was using cups to drive the printer. But now, using lprint, there is not a small margin like that, actually 1/4 of the label is skipped now and the printing continues beyond the label, on the back strip and even on the next label. So it's offset by about half an inch, so there is really an issue there.
As a next step I will try using cups again, so see if there is anything wrong with the printer.
Operating system is Fedora Linux 34, lprint installed from package, version 1.1.0.
I am sending png images, which are supposed to be printed 1:1 to pixels on the paper, so I have full control. I am using various resolutions, none of them work like I expect, currently I am using 300x580 which should match the combination of DPI (300) and label size.
I will try your other suggestions. May I suggest you add them to the documention, I can't remember I have read anything about scaling or filling.
Just got a bit fed up because I was wasting my labels at a very quick rate, with no difference whatsover, whatever I tried and changed.
from lprint.
@eriksl WRT images not being scaled, PNG and JPEG images are always scaled/converted/dithered/cropped for printing but sending a matching pixel size combined with "-o print-scaling=fill" will ensure that the scaling matches your expectations. The only image formats that are not scaled are Apple and PWG raster files since those are the "low level" image format used for AirPrint and IPP Everywhere.
The offset printing tells me you may have a problem with the web sensor on your printer (the thing that detects where the hole is in the backing paper). I don't remember off-hand if there is a way to reset or calibrate the sensor but the DYMO printers rely on it to detect the end of a label.
from lprint.
I was thinking the same, but when I press the feed button, the paper advances exactly one label, positioned exactly at the tearing point, so I don't think of the printer being the issue (but we can never rule it out, of course).
Would lprint accept a raw pwg file? Let's see if I can generate one? My goal is not to print photographs, it's just monochrome (no greyscale) text.
On the other hand, it would be perfectly fine if lprint could do what my script is doing now: accept one to six lines of text and scale it in a such a way that it will fit on the paper. I read the media can't be probed, so that should be specified, no problem there. That means a single line should fill all of the height. Maybe I am doing it too complex now.
from lprint.
@eriksl Yes, that is how LPrint appears on the network - as an IPP Everywhere printer that accepts PWG Raster (along with PNG and JPEG files).
Generating good looking bitmap text isn't trivial...
from lprint.
Can you explain what the different "fit" options actually mean (for png files)?
- none
- auto
- autofit
- fit
- fill
from lprint.
Apparently I can't use pdf as input anyway?
eos erik:~ $ lprint submit test.pdf
label-30
E [2022-04-22T17:16:30.145Z] [Job 30] Unable to process job with format 'application/pdf'.
from lprint.
@eriksl "none" means use the image's native resolution to size the image on the page. For PNG files with LPrint, we don't currently have access to the resolution information (there is an open PAPPL issue on this) so it will default to 128 PPI (long story).
"auto" means use the native resolution and scale down to fit (for non-borderless output) or fill (for borderless output) as needed. "auto-fit" is similar but always scales-to-fit (regardless of margins) if the image won't fit.
"fit" means scale the image to fit within the printable margins (make as big as possible without cropping)
"fill" means scale the image to fill the media, even if it means losing the edges of the output.
from lprint.
@eriksl Oh, and no LPrint doesn't support direct printing of PDF files, you have to use CUPS for that (just add the printer using the IPP Everywhere driver and it'll work from any application)
from lprint.
Thanks!
So I think that means that I should be using ideally "none", but that doesn't work, so I should be using "fill" and trial-and-error what the actual visible resolution is what I can send, without losing pixels.
Or... otherwise?
from lprint.
@eriksl In your case, "fill" is the best choice because a) you have a 300dpi image of the proper dimensions and b) you don't care that some of the image will be clipped to the printable area of the label.
from lprint.
I am going to try, thanks!
from lprint.
BTW can you explain the following?
In "fit" mode:
When I use a 1" x 2 1/8" label (Dymo 11352) I would expect the printable area to be 300 (DPI) x 1" by 300 x 2 1/8" which would be 300 x 638 dots. In practise though, the printable area is exactly filled when I send a png of 194x350 pixels, which is almost half of the expected resolution. I am printing (for test) a rectangle of 6 dots wide in black on a background of white. When I send the resolution I'd expect (300x638) actually nothing is printed at all. Maybe the rectangle is completely out of the printing area. But the fit mode is expected to scale down if it doesn't fit, isn't it?
I also think there is something seriously wrong with the "fill" option (at least in combination with the Dymo DUO printer), because whatever I do, I always end up with parts of the text outside of the printing area. I increased and decreased both x and y size , individually, and I never get it right.
I think "fit" will be more logical for me (if it works as described), but it's strange that I can't send the full resolution.
Also I have the strange phenomenon that when I print all kinds of random stuff, the outcome is different to when I just send a thin black rectangle that just spans the outside of the image (within the same resolution png image). Most of the time absolutely nothing is printed.
from lprint.
@eriksl The margins for the DYMO printers are 1mm left and right and 5.25mm top and bottom, so the printable area of a 1x2-1/8" label at ~300 dpi (actually 12dots/mm) is 276x513 pixels. 194x350 sounds to me like the printer is only doing ~203dpi (8dots/mm)... Checking to see if I've missed a necessary command for the older DYMO printers to print at 300 dpi...
from lprint.
Great 👍
In the meantime still experimenting.
from lprint.
I now resorted to sending a real high resolution PNG so scaling doesn't matter much and keeping a marging in the image of about 10% on both sides and that works quite well. I'd rather have 1:1 scaling though and no margins, of course ;-).
from lprint.
Also can you give an example to get the tape printer (of the Dymo DUO printer) working. I now only get blank tape feeded. I can't find how to configure 12mm or 24mm tape as media as well.
from lprint.
Thank you for your support!
The only thing left is that I can't seem to print anything to the tape part of the printer, is that a known issue? What media should I choose, as I can only select between "label" type media, not tape (e.g. height is 12 or 24 mm, length is unlimited).
from lprint.
You should be able to use "-o media-source=alternate-roll" to select the tape feed, but I don't have the original DYMO DUO, just the 450 Twin Turbo so it is possible I'm using the wrong command to select it?
from lprint.
That's interesting ;-)
Using CUPS I would create two different printers, they also have two different USB id's.
I was under the impression that the "alternate roll" was meant to be able to switch quickly between two rolls, and I am using it that way.
eos erik:~ $ lprint devices
usb://DYMO/LabelWriter%20450%20DUO%20Label?serial=05060408540023
usb://DYMO/LabelWriter%20450%20DUO%20Tape?serial=05060408540023
Maybe I shouldn't use "fill" here, I will try others.
from lprint.
Nope, nothing printed whatever I configure. Just lots of tape feeding.
from lprint.
OK, well the two USB entries means they are treated as separate printers so I'll need to dig a bit. Probably the tape portion needs a little something different... :/
from lprint.
Guess so ;-). In the meantime I'll be using cups for the tape part.
Is there any way to have the final bitmap not sent to the printer but redirected to a file where it can be inspected some way? So I don't need to spend all these labels and tapes for testing?
from lprint.
@eriksl Unfortunately, no. There was, very early in the development of LPrint and PAPPL, a way to "clone" the output stream but it had a lot of limitations and added overhead to the API that turned out to cause some timing-related issues for some of my users... So I removed that code before 1.0.
That said, you can setup a directory and point a queue at the directory to capture the output:
mkdir -p /tmp/some/directory
lprint add test-tape -v file:///tmp/some/directory -m dymo_lw-duo-tape
The output will be the printer-ready data that the driver produces.
from lprint.
Thx, now only find out how to decode the output ;-)
from lprint.
@eriksl OK, I've done some digging and the tape portion of this printer uses a different command set 🙄. I will try to get this working for LPrint 1.2 but I'll need your help in testing since I don't have your particular printer to test with... :)
from lprint.
Thx, just yell ;-)
from lprint.
Is this specific to the LW 450 DUO or does it apply to the LW DUO as well? I have the latter and could help testing.
from lprint.
@sur5r It will apply to all of the DUO's, and I am hoping to get back to this Real Soon Now...
from lprint.
[master 7c3044e] Fix DYMO label tape driver (Issue #62)
Please test.
from lprint.
Tested with b2806b1:
- Couldn't find a way to have the tape cut after the job.
- Printing a test page with the default media settings works
- Printing a test page with media
.5 x 2"
results in a Segfault:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00005602fc06f8bc in lprintTestFilterCB (job=0x7fc8c8000b70, device=0x7fc8cc000f60, cbdata=<optimized out>) at lprint-testpage.c:252
252 *lineptr &= ~bit;
[Current thread is 1 (Thread 0x7fc8d48ed6c0 (LWP 504463))]
(gdb) bt full
#0 0x00005602fc06f8bc in lprintTestFilterCB (job=0x7fc8c8000b70, device=0x7fc8cc000f60, cbdata=<optimized out>) at lprint-testpage.c:252
bit = 1 '\001'
xc = 5
data = {extension = 0x0, delete_cb = 0x0, identify_cb = 0x0, printfile_cb = 0x5602fc06eb8a <lprint_dymo_printfile>, rendjob_cb = 0x5602fc06e974 <lprint_dymo_rendjob>, rendpage_cb = 0x5602fc06e900 <lprint_dymo_rendpage>, rstartjob_cb = 0x5602fc06eafc <lprint_dymo_rstartjob>,
rstartpage_cb = 0x5602fc06e61c <lprint_dymo_rstartpage>, rwriteline_cb = 0x5602fc06e993 <lprint_dymo_rwriteline>, status_cb = 0x5602fc06e619 <lprint_dymo_status>, testpage_cb = 0x5602fc06fa54 <lprintTestPageCB>, gdither = {"`(0h\214\274Ĕa)1i\215\275ŕ",
" \000\b8\264\354\364\314!\001\t9\265\355\365", <incomplete sequence \315>, "X\030\020@\254\344\374\324Y\031\021A\255\345\375", <incomplete sequence \325>, "xPHp\204\244ܜyQIq\205\245ݝ", "\210\270\300\220d,4l\211\271\301\221e-5m", "\260\350\360\310$\004\f<\261\351\361\311%\005\r=",
"\250\340\370\320\\\034\024D\251\341\371\321]\035\025E", "\200\240ؘ|TLt\201\241ٙ}UMu", "b*2j\216\276Ɩc+3k\217\277Ǘ", "\"\002\n:\266\356\366\316#\003\v;\267\357\367", <incomplete sequence \317>, "Z\032\022B\256\346\376\326[\033\023C\257\347\376", <incomplete sequence \327>,
"zRJr\206\246ޞ{SKs\207\247ߟ", "\212\272\302\222f.6n\213\273Óg/7o", "\262\352\362\312&\006\016>\263\353\363\313'\a\017?", "\252\342\372\322^\036\026F\253\343\373\323_\037\027G", "\202\242ښ~VNv\203\243ۛ\177WOw"}, pdither = {"o1\216\242q\303G\261\311\062\227^B%", <incomplete sequence \374>,
"\031c\357\336 \372\224\023&jܪ\302\212\r\247", "}\262O\017A\255{WՃ\367\027t6\345", <incomplete sequence \324>, ")ʘ\204\275h5\354\241>\001\265M\361\223D", "\002\364\070[\346\005\314\034\273e\220\316!\\\276k", "ߤr$֜\213F\365T\342\060~\236\021\207", "S\304\025\376L-\263s\f(\251i\375\260\323;",
"d\264\221z\254a\353\201ו\307\bH\032\356,", "\350\037E\v\315:\022\301X<p\335\214Vx\231", "Ђ\363\240\340n\"\370\245\030\352\270\064ƫ\006", "l\274\063Y\211\272\232N/\206b\235#\371_?", "\020K\333'\000C\344y\305\360\003J\177", <incomplete sequence \343\217>, "\366\257w\310\373g\222\016Ѯm\332\300Rˣ",
"\035]\226\026\246\266\067\036Z@*\215\250\071u.", "\330\351=\200Q\355\331v\237\377\271\033\362f\004\205", "I\277\t\322+`\a\210\347P\n|\341ϛ\267"}, format = 0x5602fc07216e "application/vnd.dymo-lw", make_and_model = "DYMO LabelWriter DUO Tape 128", '\000' <repeats 98 times>, ppm = 20, ppm_color = 0,
icons = {{filename = '\000' <repeats 255 times>, data = 0x5602fc082560 <lprint_small_png>, datalen = 5964}, {filename = '\000' <repeats 255 times>, data = 0x5602fc07e240 <lprint_png>, datalen = 6491}, {filename = '\000' <repeats 255 times>, data = 0x5602fc0780e0 <lprint_large_png>, datalen = 24908}},
kind = 8, has_supplies = false, input_face_up = true, output_face_up = true, orient_default = IPP_ORIENT_NONE, color_supported = 21, color_default = 16, content_default = 1, quality_default = IPP_QUALITY_NORMAL, scaling_default = 1, raster_types = 524, force_raster_type = 4, duplex = PAPPL_DUPLEX_NONE,
sides_supported = 1, sides_default = 1, finishings = 0, num_resolution = 1, x_resolution = {180, 0, 0, 0}, y_resolution = {180, 0, 0, 0}, x_default = 180, y_default = 180, borderless = false, left_right = 1, bottom_top = 1, num_media = 17, media = {0x5602fc0721d1 "oe_thin-1in-tape_0.25x1in",
0x5602fc0721eb "oe_thinner-1in-tape_0.375x1in", 0x5602fc072209 "oe_medium-1in-tape_0.5x1in", 0x5602fc072224 "oe_wider-1in-tape_0.75x1in", 0x5602fc07223f "oe_wide-1in-tape_1x1in", 0x5602fc072256 "oe_thin-2in-tape_0.25x2in", 0x5602fc072270 "oe_thinner-2in-tape_0.375x2in",
0x5602fc07228e "oe_medium-2in-tape_0.5x2in", 0x5602fc0722a9 "oe_wider-2in-tape_0.75x2in", 0x5602fc072190 "oe_wide-2in-tape_1x2in", 0x5602fc0722c4 "oe_thin-3in-tape_0.25x3in", 0x5602fc0722de "oe_thinner-3in-tape_0.375x3in", 0x5602fc0722fc "oe_medium-3in-tape_0.5x3in",
0x5602fc072317 "oe_wider-3in-tape_0.75x3in", 0x5602fc072332 "oe_wide-3in-tape_1x3in", 0x5602fc072349 "roll_max_1x3600in", 0x5602fc07235b "roll_min_0.25x1in", 0x0 <repeats 239 times>}, media_default = {bottom_margin = 1, left_margin = 1, left_offset = 0, right_margin = 1, size_width = 1270,
size_length = 5080, size_name = "oe_medium-2in-tape_0.5x2in", '\000' <repeats 37 times>, source = "main-roll", '\000' <repeats 54 times>, top_margin = 1, top_offset = 0, tracking = 8, type = "labels", '\000' <repeats 57 times>}, media_ready = {{bottom_margin = 1, left_margin = 1, left_offset = 0,
right_margin = 1, size_width = 1270, size_length = 5080, size_name = "oe_medium-2in-tape_0.5x2in", '\000' <repeats 37 times>, source = "main-roll", '\000' <repeats 54 times>, top_margin = 1, top_offset = 0, tracking = 8, type = "labels", '\000' <repeats 57 times>}, {bottom_margin = 0, left_margin = 0,
left_offset = 0, right_margin = 0, size_width = 0, size_length = 0, size_name = '\000' <repeats 63 times>, source = '\000' <repeats 63 times>, top_margin = 0, top_offset = 0, tracking = 0, type = '\000' <repeats 63 times>} <repeats 15 times>}, num_source = 1, source = {0x5602fc072186 "main-roll",
0x0 <repeats 15 times>}, left_offset_supported = {0, 0}, top_offset_supported = {0, 0}, tracking_supported = 8, num_type = 1, type = {0x5602fc0721ca "labels", 0x0 <repeats 31 times>}, num_bin = 0, bin = {0x0 <repeats 16 times>}, bin_default = 0, mode_configured = 0, mode_supported = 0,
tear_offset_configured = 0, tear_offset_supported = {0, 0}, speed_supported = {0, 0}, speed_default = 0, darkness_default = 0, darkness_configured = 0, darkness_supported = 4, identify_default = 0, identify_supported = 0, num_features = 1, features = {0x5602fc077582 "airprint-2.1",
0x0 <repeats 31 times>}, num_vendor = 0, vendor = {0x0 <repeats 32 times>}}
options = 0x7fc8cc035db0
line = 0x7fc8cc0143f0 "\377UUUUUUUUUU\377"
lineptr = 0x7fc8ec0143ef <error: Cannot access memory at address 0x7fc8ec0143ef>
black = 255 '\377'
gray0 = 170 '\252'
gray1 = 85 'U'
width = <optimized out>
height = <optimized out>
y = 59
ytop = 59
yend = 299
ybottom = 355
x1mm = 5
y1mm = 5
xleft = <optimized out>
x1b = 1
pw = <optimized out>
ph = <optimized out>
pixels = 0x5602fc082280 <portrait>
pixel = 0x5602fc072d84 "....", ' ' <repeats 12 times>
ret = false
portrait = {0x5602fc072d84 "....", ' ' <repeats 12 times>, 0x5602fc072d95 ".TTT.", ' ' <repeats 11 times>, 0x5602fc072da6 ".TT.", ' ' <repeats 12 times>, 0x5602fc072db7 ".TT. ..", 0x5602fc072dc8 ".TT", '.' <repeats 11 times>, "T.", 0x5602fc072dd9 ".", 'T' <repeats 14 times>, ".",
0x5602fc072dd9 ".", 'T' <repeats 14 times>, ".", 0x5602fc072dc8 ".TT", '.' <repeats 11 times>, "T.", 0x5602fc072db7 ".TT. ..", 0x5602fc072da6 ".TT.", ' ' <repeats 12 times>, 0x5602fc072d95 ".TTT.", ' ' <repeats 11 times>, 0x5602fc072d84 "....", ' ' <repeats 12 times>,
0x5602fc072dea " .. ... ", 0x5602fc072dfb " .SS. .SSS. ", 0x5602fc072e0c " .SS. .SSSSS. ", 0x5602fc072e1d " .SS. .SS..SS. ", 0x5602fc072e2e ".SS. .SS. .SS.", 0x5602fc072e3f ".SS. .SS. .SS.", 0x5602fc072e3f ".SS. .SS. .SS.", 0x5602fc072e50 ".SS. .SS. .SS.",
0x5602fc072e61 " .SS..SS. .SS. ", 0x5602fc072e72 " .SSSSS. .SS. ", 0x5602fc072e83 " .SSS. .SS. ", 0x5602fc072e94 " ... .. ", 0x5602fc072ea5 ".... ....", 0x5602fc072eb6 ".EEE. .EEE.", 0x5602fc072ec7 ".EE. .... .EE.", 0x5602fc072ed8 ".EE. .EEEE. .EE.",
0x5602fc072ee9 ".EE. .EE. .EE.", 0x5602fc072ee9 ".EE. .EE. .EE.", 0x5602fc072ee9 ".EE. .EE. .EE.", 0x5602fc072ee9 ".EE. .EE. .EE.", 0x5602fc072efa ".EE....EE....EE.", 0x5602fc072f0b ".", 'E' <repeats 14 times>, ".", 0x5602fc072f0b ".", 'E' <repeats 14 times>, ".",
0x5602fc072f1c '.' <repeats 16 times>, 0x5602fc072d84 "....", ' ' <repeats 12 times>, 0x5602fc072d95 ".TTT.", ' ' <repeats 11 times>, 0x5602fc072da6 ".TT.", ' ' <repeats 12 times>, 0x5602fc072db7 ".TT. ..", 0x5602fc072dc8 ".TT", '.' <repeats 11 times>, "T.",
0x5602fc072dd9 ".", 'T' <repeats 14 times>, ".", 0x5602fc072dd9 ".", 'T' <repeats 14 times>, ".", 0x5602fc072dc8 ".TT", '.' <repeats 11 times>, "T.", 0x5602fc072db7 ".TT. ..", 0x5602fc072da6 ".TT.", ' ' <repeats 12 times>, 0x5602fc072d95 ".TTT.", ' ' <repeats 11 times>,
0x5602fc072d84 "....", ' ' <repeats 12 times>}
landscape = {0x5602fc072f2d '.' <repeats 24 times>, " .... ", '.' <repeats 12 times>, 0x5602fc072f5e ".TTTTTTTTTT..EEEEEEEEEE. ..SSSS.. .TTTTTTTTTT.", 0x5602fc072f8f ".TTTTTTTTTT..EEEEEEEEEE. .SSSSSSSS. .TTTTTTTTTT.", 0x5602fc072fc0 ".T...TT...T..EE.......E..SSS....SSS..T...TT...T.",
0x5602fc072ff1 " . .TT. . .EE. . .SS. ..S. . .TT. . ", 0x5602fc073022 " .TT. .EE. . .SS.. . .TT. ", 0x5602fc073053 " .TT. .EE.....E. .SSS.. .TT. ", 0x5602fc073084 " .TT. .EEEEEEEE. .SSSS.. .TT. ",
0x5602fc0730b5 " .TT. .EEEEEEEE. ..SSSS. .TT. ", 0x5602fc0730e6 " .TT. .EE.....E. ..SSS. .TT. ", 0x5602fc073117 " .TT. .EE. . . ..SS. .TT. ", 0x5602fc073148 " .TT. .EE. . .S. .SS. .TT. ",
0x5602fc073179 " .TT. .EE.......E..SSS....SSS. .TT. ", 0x5602fc0731aa " .TT. .EEEEEEEEEE. .SSSSSSSS. .TT. ", 0x5602fc0731db " .TTTT. .EEEEEEEEEE. ..SSSS.. .TTTT. ", 0x5602fc07320c " ...... ", '.' <repeats 12 times>, " .... ...... "}
#1 0x00007fc8d6a31687 in _papplJobProcess (job=0x7fc8c8000b70) at ./pappl/job-process.c:523
filter = <optimized out>
#2 0x00007fc8d6814fd4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140500536317632, 3794922171846127702, -128, 0, 140500544696096, 140500527927296, -3802185398153351082, -3802189714534535082}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#3 0x00007fc8d68955ac in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
from lprint.
@sur5r It should always cut at the end of each page/label.
I'll see if I can reproduce the crash on my system.
from lprint.
Is it also supposed to cut after the test page?
from lprint.
@sur5r Yes, after every page/label, no matter how it is submitted.
from lprint.
Thanks for stepping in @sur5r. I will also test shortly, but currently I swamped by my dayjob (also working in the weekends now...)
from lprint.
All, please test against the 1.2.0 release.
from lprint.
Hi,
So very sorry for not coming back sooner.
I am now testing with the master branch, self-compiled. The tape printer now does produce something, but it's weird. I have made a png that consists of two black rectangles, a few pixels wide, the outer one to the edges of the image, the inner one a few pixels inside (so you get a black border, then a white rectangle, then a black rectangle, then white, from outside to inside).
The image I made is a png of 1000x120 pixels. When I print it, it only prints the top half of the im
age, on the bottom half of the tape... When I resize the image to 500x60 (just to see what happens), exactly the same happens. So this is kind of useless for me.
Maybe it has to do with that I cannot select a proper media type for the tape printer? It only allows for "label" type media.
This is the image I am trying to print:
This is what comes out:
from lprint.
Related Issues (20)
- install script asks for CUPS 2.4 but it is installed HOT 9
- Munbyn ITPP941 not detected HOT 3
- Fresh install - neither Zebra works, only prints out first 10% then says "out of paper" HOT 4
- Support for epson printers? HOT 2
- Support for ESC/POS receipt printers
- Issue #94 is not present using MacOS as a server, still present using Linux as a server. HOT 1
- [discussion] observation after printing .zpl without explicitly setting the MIME type HOT 1
- PAPPL 1.4.x Incompatibility - Options and State using the same filenames! HOT 1
- Setup for Munbyn ITPP941 and Vevor Y428BT printers HOT 3
- Support for docker HOT 4
- Seiko Label Printer and Debian HOT 1
- Android support HOT 4
- DYMO Label.app does not detect LabelWriter HOT 2
- lprint (1.1) not working on ubuntu 24.04 [Xprinter XP-460B] HOT 6
- More analysis on Issue #93 -- that is still present in v.1.3.1 on linux HOT 10
- GK420D not detected on USB HOT 6
- Lprint is sensitive to both system hostname and server name HOT 3
- Support for iDPRT Label Printers HOT 15
- Issue printing with native Chrome dialog and with IPPS HOT 3
- Zebra ZP 505 prints blank page HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lprint.