philpem / printer-driver-ptouch

P-Touch PT-series and QL-series printer driver for Linux (under CUPS)
GNU General Public License v2.0
97 stars 24 forks source link

PT-P700 empty print #16

Closed TheTimeWalker closed 2 years ago

TheTimeWalker commented 2 years ago

Hi!

I have tried using this driver with the PT-P700, but unfortunately it doesn't seem to work 100% correctly. The installation worked, and the printer is available with gLabels. However, it only prints an empty label with the 24mm Tape. I have tried using custom sizes on both printer settings and gLabels settings, change the orientation, etc. to no avail. I have checked with a Windows installation and the printer itself seems to be fine.

Is there anyway to somehow debug this?

Sinclair732 commented 2 years ago

Same problem here installed Debian printer-driver-ptouch (1.5.1-2) package. 9mm is working, 24mm is empty. No Windows available for test.

philpem commented 2 years ago

@TheTimeWalker - you could use the Windows driver to print to file, then see if the "ptexplain" tool in this repository can correctly decode the output. Do the same with this driver and see if there are any differences. Brother may have added something to the PT-P700 protocol which rastertoptch needs to handle differently to other printers. They seem to have released a command reference for the PT-P700, which may help: https://download.brother.com/welcome/docp000771/cv_pth500p700e500_eng_raster_110.pdf

Unfortunately I don't have a PT-P700 and TZe tape to test with.

TheTimeWalker commented 2 years ago

Hey! Sorry for the longer delay. I have tried to get the raster files from both Windows and Linux.

Windows.txt Linux.txt

One thing that springs up to my mind is the difference for print information command: Windows: ESC i z 84 00 18 00 aa 02 00 00 00 00 Linux: ESC i z 84 00 5d 00 78 00 00 00 00 00

Another difference I see is that the Windows raster commands define a margin amount: Windows: ESC i d 0e 00 Linux ESC i d 00 00

Windows also has an undocumented command. I don't know if that is important. Unfortunately, the pdf does not explain this at all: ESC i U 4a 00 0c 28 16 a8 5d c0 b9 00 00 06 00 00 00

I don't know if the commands do a big difference as at least on Windows' ptexplain file, you can see that it has Rasterr graphics transfer while the Linux's ptexplain file does not have anything.

I am not too knowledgeable in all that, so maybe you can see a quick fix in it.

philpem commented 2 years ago

The margin amount is probably inconsequential. Zero should be allowed as an option, and indeed works on other P-touch printers. The "ESC i U" command seems to be some kind of "additional media information" data going by other Brother manuals, it should be optional.

If you look at the Linux ptexplain output, there aren't any Raster graphics transfer commands being sent - only Zero raster graphics. The difference between the two is that Raster Transfer sends image data, where Zero Raster is a completely blank line.

What's probably happening is, the printer is noticing that you're trying to print a blank label, and decides not to waste the label.

TheTimeWalker commented 2 years ago

Which is what makes it a bit weird. I have used the same PDF on both Windows and Linux with the same PDF reader, Okular, so that there should be as low amount of difference as possible. The PDF is just a simple 24 x 41 label which only has "TEST TEST" as text in it. That's what you see as "Raster graphics transfer" on Windows.

The Linux one just ignores this fully for some reason and does not contain any graphics transfer, only zero raster. Worse, it actually does waste the label, I get an empty 24 x 100 label out of it.

TheTimeWalker commented 2 years ago

Okay, so I can't say what changed but the printer now works properly. It's printing the text fine when I for example create a label on gLabels. Maybe ther was an update on CUPS or something else got fixed and now it's not an issue anymore. From my side, this seems to be resolved.

M1cha commented 1 year ago

I tested this a bit since I had the same issue and it looks like it prints empty pages if you go (too far) beyond 17mm - even when the tape is 24mm. I guess the printer either needs some margin or there's an issue with the way this driver sends instructions for wider pages.

philpem commented 1 year ago

@M1cha - some of the printers do that. They have 18mm wide heads (128 dots if I remember correctly) but can take 24mm ribbon. The 18mm printable area fits in the middle of the ribbon.