Commit Graph
63 Commits
Author SHA1 Message Date
Kevin Bradenstein ef6e6f4925 cmake: let the argp probe pass where argp-standalone needs strchrnul
On macOS with Homebrew's argp-standalone, Findargp's link test for
argp_parse fails with an undefined strchrnul, because libargp.a itself
references that GNU extension and the platform has none. The module then
stops with "does not have a symbol named argp_parse", which is not what
is wrong.

Probe for strchrnul first (with _GNU_SOURCE, so glibc answers correctly).
Where it exists, the test is unchanged. Where it is missing, run the same
argp_parse test with a local definition of strchrnul, and have ptouch-print
supply that definition for the real build.

On glibc nothing changes: the probe finds strchrnul and the original test
runs. Checked on Debian stable in the same session.
2026-09-08 07:16:31 +02:00
Tobias Klausmann 921206cd5f print_img: correct off-center print area via per-device pin_offset
On the PT-P900W the print area is not centered on the 560-pin printhead:
its center sits at pin 272 rather than the head center (pin 280), a fixed
8-pin offset that is constant across all tape widths. Centering the raster
data on the head therefore prints ~0.5mm off-center (measured as a constant
~1mm margin delta across 12/18/36mm tapes, confirmed against the spec).

Add a pin_offset field to _pt_dev_info (0 = centered, the default for all
existing printers) and apply it in print_img. Set it to -8 for the
PT-P900Wc, which reproduces the spec left-margin exactly for every tape
width ((560-print_area)/2 - 8 = documented left margin).

Reference: Brother "Software Developer's Manual - Raster Command Reference,
PT-P900/P900W/P950NW", section 2.3.5 "Raster line" (per-tape left/right
margin and print-area pin counts for the 560-pin head).
https://download.brother.com/welcome/docp100407/cv_ptp900_eng_raster_102.pdf
2026-07-18 08:01:24 +02:00
Dominic Radermacher 57084a30e6 improve support for 360dpi printers (untested) 2026-03-09 08:01:30 +01:00
Dominic Radermacher 9cd8a5bc22 preparing for support of printers with 360 dpi 2026-03-08 10:26:46 +01:00
Pascal de Bruijn 25e7a8c876 write_png: show physical output size 2026-03-08 09:30:59 +01:00
Pascal de Bruijn cb76f2ae75 set output PNG resolution to 180 2026-03-08 09:29:16 +01:00
Pascal de Bruijn 0db6ba4477 add missing break introduced in c489e026971d00f5616a4f3c87c10dfb40b7d2b9 2026-03-08 09:27:41 +01:00
Pascal de Bruijn 5e5e833bcd gdImageStringFT_180dpi wrapper 2026-03-08 09:26:49 +01:00
Pascal de Bruijn c08a456bfd find_fontsize: always account for common ascenders and descenders 2026-03-08 09:25:30 +01:00
Pascal de Bruijn 2d4ffd6112 implement font margin 2026-03-08 09:24:14 +01:00
Pascal de Bruijn 118afc7694 get_baselineoffset: rounded letters are usually not on the baseline 2026-03-08 09:22:40 +01:00
Dominic Radermacher 76c419f952 Add support for using \n for new line (thanks to github.com/probonopd/) 2026-03-06 08:20:32 +01:00
Dominic Radermacher 3e026ef26b fix strange output when calling ptouch-print --help multiple times 2026-01-23 08:12:51 +01:00
Dominic Radermacher fd526f9dbe add param --align for aligning multi-line text centered or right-aligned 2025-12-08 15:33:06 +01:00
Jonas Konrad d2a3bac46e Add command line flag for toggling precut For devices that support cutting before the current label ("precut"), change the default to no precut and add a command line flag to turn it on.
Odd behavior in testing with my PT-H500: When printing with precut, and then printing the next label without precut, the next label still gets a precut. i.e. the label with the precut flag gets cut on both ends, even if the next label does not have this flag. The label after that works as expected.

I'm unsure if this is printer behavior or if it could be resolved by sending additional commands somehow (maybe resetting the flag).
2025-12-01 20:35:45 +01:00
Michael Richter 7509ef765c Add support for HSe-251E (heatshrink-tube) tapes 2025-12-01 19:35:59 +01:00
Markus Schramma d8a4ed71e2 add --timeout option 2025-09-28 08:05:41 +02:00
Dominic Radermacher e730c3b480 better help text for newline arg, rename build script 2025-08-11 15:09:36 +02:00
Dominic Radermacher d293e9427d coding style cosmetics 2025-08-11 09:57:02 +02:00
Michael Schulz 92c1e43f0c improved argv parser, enable printing of text starting with a dash 2025-08-11 09:49:18 +02:00
Frost f1c34dd0d4 Send chain magic after precut
This lets you do chain mode with a precut first.
2025-08-10 08:23:56 +02:00
Dominic Radermacher ab80c721f6 fix compile warning 2025-08-10 07:23:11 +02:00
Dominic Radermacher efa48162a8 better gettext support (thanks to Michael Schulz) 2025-08-03 09:42:30 +02:00
Dominic Radermacher 2f18522602 fix segfault for last commit 2025-05-19 13:33:55 +02:00
Dominic Radermacher 140bf0a6cc for printers with less than 128px printhead, make sure we dont print too much pixels 2025-05-12 18:29:56 +02:00
Dominic Radermacher a6c67df2c9 cosmetics 2025-05-12 17:59:45 +02:00
Dominic Radermacher ec923ed579 Add support for PT-2300 and fix 112px width centering (thanks to Bradley Erickson) 2025-05-12 17:47:00 +02:00
Dominic Radermacher 740b20e150 Add --copies switch for multiple printouts (thanks to Wojciech Fred) 2024-10-06 17:46:29 +02:00
Jan Baier bc7d32a6e6 Fix segfault when using --force-tape-width without printer
When force_tape_width is *not* used it is expected to open/close the usb
device.
2024-08-15 09:44:19 +02:00
Dominic Radermacher 9a0ef8c7d6 Fix chain print support for the D460BT family (thanks to Guilherme Espada) 2024-08-11 13:31:20 +02:00
Dominic Radermacher b904e22cf1 Add --force-tape-with, enables use of --writepng without the need of a printer connected (thanks to Didi Kohen) 2024-08-11 13:15:22 +02:00
Kevin Thibedeau da9ed2600a Add chain mode and set precut flag for PT-2700 2024-06-10 16:54:07 +02:00
Nedko Boshkilov 312adc3209 fix baseline for cyrillic font 2024-02-11 10:29:01 +01:00
Dominic Radermacher 5fbd590f01 fix missing pixels on right side - thanks to patch from Boris-Chengbiao 2023-11-28 10:23:54 +01:00
Dominic Radermacher f22e844eed add (untested) support for PT-D460BT thanks to ccfreak2k 2023-10-13 12:30:33 +02:00
Dominic Radermacher 01d661493f update manpage and project url 2023-03-13 11:17:03 +01:00
Dominic Radermacher 53987c4150 cosmetic changes (some are overdue since many years) 2022-10-05 18:08:06 +02:00
Dominic Radermacher f56d7ea740 fix some compile warnings 2022-09-11 06:45:00 +02:00
Dominic Radermacher ffc1b1f7b1 media type info now also with text output, thanks to Sönke Peters 2022-09-11 06:25:35 +02:00
Dominic Radermacher 674e0da5fb add debug output 2022-04-05 20:25:54 +02:00
Dominic Radermacher e968176637 fix text centering 2021-10-11 19:31:15 +02:00
Dominic Radermacher 32c29a1c4c fix build using cmake with generating version info from git 2021-10-11 10:11:37 +02:00
Dominic Radermacher 8655736e75 fix naming and try to fix compile errors related to config.h (generated by autotools) 2020-01-13 21:26:48 +01:00
Dominic Radermacher 9509424d56 part 1 of preparing support for high-dpi devices 2019-12-17 21:11:17 +01:00
Dominic Radermacher badc152127 prevent segfault when image fails to load 2019-10-27 08:29:43 +01:00
Dominic Radermacher 5c6df164c3 added arg --pad <n> to work around printers that require some padding (blank tape) 2019-08-24 07:01:27 +02:00
Dominic Radermacher f2664d3248 revert centering of fonts because it gets unreadable when using automatic fontsize with certain fonts 2019-06-10 17:09:33 +02:00
Dominic Radermacher e0ab4e0596 added debugging info, try to fix centering of fonts when manually setting small font size 2019-06-07 10:19:21 +02:00
Dominic Radermacher 1d26dca80d remove unused code, add --debug switch (which does nothing yet) 2019-05-23 16:27:25 +02:00
Dominic Radermacher 05873ed64e fix indent 2019-05-14 21:50:20 +02:00