labelle-org / labelle

Label printing software
Apache License 2.0
33 stars 4 forks source link

Support LabelManager 420P #62

Open dd1982 opened 1 month ago

dd1982 commented 1 month ago

Just installed labelle and trying to use it with my LabelManager 420P with 6mm tape.

Running the following renders a label where I can see only the upper parts of the characters; labelle "Hello world"

Running the following renders empty labels; labelle --tape-size-mm 6 "Hello world" labelle --test-pattern 1

What am I missing?

maresb commented 1 month ago

Hey @dd1982! We have been trying to add support for smaller tapes, see #54 for discussion of some of the complications.

I just created a new Labelle release (v1.2.3) that includes our new calibration procedure. In short all you need to do is upgrade to that and run

labelle --sample-pattern 64

then take a photo and paste the photo into this issue. That will allow us to determine the offsets for your particular printer. Then if we switch you to the experimental branch from #54 you will hopefully be able to print.

dd1982 commented 1 month ago

Ah, does it matter which size of tape I have? Could do the same for other tape sizes if it helps - besides the 6mm pictured below I also have 9mm, 12mm and 19mm tapes.

image

maresb commented 1 month ago

Ah, the print head is larger than I was expecting. Looks like 128 px.

Could you please repeat with

labelle --sample-pattern 130

And if you could do it for all tape sizes that would be super amazing!!! Thanks a lot!

dd1982 commented 1 month ago

No problem, from 6mm at the top to 19mm at the bottom - the 12mm jammed a bit so got a bit ugly...

image

maresb commented 1 month ago

This is very helpful, thanks @dd1982!!

Here is my interpretation of the results:

The print head size is indeed 128. 6mm: 44-86 9mm: 35-98 12mm: 28-105 19mm: full range

It would be great if another maintainer could verify my counting.

maresb commented 1 month ago

@dd1982, could you please try changing to our development branch via

pipx install --force git+https://github.com/labelle-org/labelle@develop

I made some adjustments to the config in #63 that will hopefully resolve the issues. Please let us know how it works. Thanks!!

dd1982 commented 1 month ago

Just back after the weekend. Changed to development branch and tested the following quickly with 6mm tape;

labelle "Hello world" labelle --tape-size-mm 6 "Hello world"

Results; image

Running labelle-gui produces the following error message;

image

maresb commented 1 month ago

Ah, very nice results with the --tape-size-mm 6 command! I'm glad we got it working.

And yes, there are some pretty major problems with the develop branch which is why it isn't yet merged to 'main'.

tomers commented 1 month ago

I got this error too, when working on a new labeler (Dymo LabelWriter 550). This is my current understanding of the issue (I am just learning it, so I might be wrong): The thing is that during initialization, the simulator configuration is momentarily selected, until the real configuration is detected. In that time, the tape size from the labeler is used, but it must match the supported tape sizes of the simulator configuration. In case it isn't, an exception is thrown. A workaround would be to add the union of all supported label sizes to the simulator configuration. However, I don't think this is the way to go. I am not sure yet what is the purpose of the simulator configuration, but I think it stands in the way on regular flow in which a labeler device is connected. I think that no configuration state should be supported. In that state the UI should not crash. Preferrably it should hide all non-relevant widgets, until a real configuration is set.

dd1982 commented 1 month ago

Ah, very nice results with the --tape-size-mm 6 command! I'm glad we got it working.

Yes, though it seems it's not perfectly aligned vertically with significantly more white space above the text than below it. Here's a label from the labeller on top which is more centered and two from the following labelle commands on the bottom;

labelle --tape-size-mm 6 --style bold "Hello world" labelle --sample-pattern 130

image

maresb commented 1 month ago

I think that no configuration state should be supported. In that state the UI should not crash. Preferrably it should hide all non-relevant widgets, until a real configuration is set.

The simulator configuration is super weird. (Maybe it would make more sense if it were renamed the "fallback configuration"?) On the other hand for the GUI I don't understand why you would want to hide anything except for the print button when a printer isn't connected. As far as I can tell our abstract label specification doesn't depend on label width, so it seems reasonable to me to allow the user to specify the label before choosing a print config, and also to be able to preview how that specification would render on various widths.

Yes, though it seems it's not perfectly aligned vertically with significantly more white space above the text than below it. Here's a label from the labeller on top which is more centered and two from the following labelle commands on the bottom;

Yes, thank you for pointing this out. We should indeed support custom offsets rather than assuming the label is centered on the print head.

There is an open question of: for different instances of the same combination of "printer model" and "label width", how much variation is there in the offset? In other words, if someone else has a 420P with a 6mm tape, how close would I come to reproducing the same offsets we computed above? My feeling is +/- 1 px, but I don't have much data to back that up.

FaBjE commented 1 month ago

The simulator configuration is super weird.

For the GUI it is, it was a "solution" for the CLI test functions where you render to CLI output or an image. That rendering needs margins info as well. Goal was to keep those test functions working without a printer connected. Fallback config might be a better name indeed.

We should indeed support custom offsets rather than assuming the label is centered on the print head.

I'm just wondering, as I see two labels (one good, one offset) if there were made on the same printer/tape. If so, it is more a problem of variation in the label/printhead alignment than a "fixed offset"