Chrome extension that crops courier label PDFs and prints them on A6 label printers or cut-to-A6 A4 sheets in one click.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
➜ Install from the Chrome Web Store · Download the helper · Support on Ko-fi
A Chrome extension that prints courier labels in one click. The label in the PDF can fill a whole A6 page or sit on a quarter of an A4 page. Either way, the extension:檢視完整 README ↗➜ Install from the Chrome Web Store · Download the helper · Support on Ko-fi
A Chrome extension that prints courier labels in one click. The label in the PDF can fill a whole A6 page or sit on a quarter of an A4 page. Either way, the extension:
lp; Windows: the printer driver).| Paper in the profile | Result |
|---|---|
| A4 | the label in an A6 area (105×148 mm) in the chosen corner of the sheet, with cut lines; optionally 2 or 4 labels per sheet |
| A6 / 100×150 / 4×6" / custom | the label scaled and rotated to fill the whole page |
Free and open source, forever. No subscription, no trial, no account, no paid tier: every feature is free for everyone. Labels are processed only on your computer and never uploaded anywhere (see the privacy policy).
The extension starts in your browser's language if it has a translation (currently English and Polish), otherwise in English. Switch it any time in the popup or under Settings → Language. A short user guide is available in English and Polish. The Help link in the settings opens it in the chosen language.
Chrome does not let extensions print to a chosen printer without showing a dialog, so the extension uses a small helper program. The extension's settings page detects when the helper is missing or outdated and shows the right download button.
macOS: download and open LabelPrintingHelper-macOS.pkg.
/Library/Application Support/IntelligentLabelPrinting/ and registered with Chrome, Edge, Brave and Chromium.sudo "/Library/Application Support/IntelligentLabelPrinting/ilp-host" uninstall --system.Windows: download LabelPrintingHelper-Windows-x64.exe (or -arm64.exe for Windows on ARM) and double-click it.
%LOCALAPPDATA%\IntelligentLabelPrinting and registers with Chrome, Edge, Brave, Chromium and Vivaldi. No administrator rights are needed."%LOCALAPPDATA%\IntelligentLabelPrinting\ilp-host.exe" uninstall.Developer install (macOS, no admin rights):
bash ~/Labelprinter/helper/build.sh
~/Labelprinter/dist/ilp-host-macos install
Install it from the Chrome Web Store, then pin the icon to the toolbar. It also works in Edge, Brave and other Chromium browsers.
Without the store (development or testing):
chrome://extensions and turn on Developer mode.extension folder of the project, or the unzipped extension-unpacked.zip from the release. Don't use the Chrome Web Store zip: it gets a different ID.fcfpnegfonhlplflgmjapjgkdcpdfkma, which matches the helper. Keep only one copy installed at a time.In the extension settings, assign a printer to each profile (the list comes from the system) and pick the media size in the driver.
The extension reads every media size's real dimensions and non-printable edges from the printer driver:
Custom.102x152mm.Many label printers, the Brother QL among them, print reliably only with the custom size you already use in the system dialog. If a predefined size makes the printer blink red, choose your custom size.
102 mm x 152 mm · DC16.102mm, 102mmx2, 102mmx3 and similar. These are continuous-tape sizes with a 100 mm tall landscape page (102mmx3 is about 299×100 mm). With 4×6" labels, the driver will scale, rotate and cut the label into several pieces.w288h432 for 4×6".Alt+Shift+P: prints the PDF in the current tab with the active profile.Some services give you a short code instead of a label. Turn on Settings → Shipping code label and the popup gets a field: paste the code and press Enter. You can also select the code on a page and right-click → Print as code.
In Settings → Backup & transfer, click Export to file to save all profiles and settings as a JSON file. On the other computer, click Import from file… and choose one of two options:
Printer names are matched ignoring punctuation, so Brother_QL_1110NWB (macOS) matches Brother QL-1110NWB (Windows). For any printer that isn't found, the page lists the profiles that need a printer chosen.
extension-unpacked.zip, or allow the ID with the command shown on the page (ilp-host install --extension-id <ID>).ilp-host status (macOS: "/Library/Application Support/IntelligentLabelPrinting/ilp-host" status --system).extension/ Chrome extension (Manifest V3)
engine.js content detection and PDF composition (pdf.js + pdf-lib)
background.js fetching PDFs, context menu, printing through the helper
i18n.js loads the chosen language from _locales (English fallback, plural rules)
popup.*, options.*, print.* user interface
_locales/ all texts, one messages.json per language (also the store name and description)
languages.json the languages offered in the language menu
config.js project links: helper downloads, donation pages, minimum helper version
helper/ Native Messaging helper in Go (one binary, no dependencies)
print_cups.go macOS / Linux printing (CUPS)
print_windows.go Windows printing (winspool + GDI)
install_*.go self-registration with the browsers
build.sh builds everything into dist/
keys/ the extension's private key – keep it safe, never publish it
docs/guide/ short user guide, one file per language
scripts/ check-i18n.mjs – translation check (also runs on Pull Requests)
test-pdfs/ sample labels for testing
Requirements: Chrome 120 or newer (or Edge, Brave), on macOS 11+, Windows 10/11 or Linux with CUPS.
Install Go once (e.g. brew install go), then build everything:
bash helper/build.sh
The build writes these files to dist/:
| File | Purpose |
|---|---|
LabelPrintingHelper-macOS.pkg | macOS installer (Intel + Apple Silicon) |
LabelPrintingHelper-Windows-x64.exe | Windows helper |
LabelPrintingHelper-Windows-arm64.exe | Windows helper for ARM |
extension-unpacked.zip | the extension for Load unpacked. It keeps the extension ID the helper expects. |
extension-chrome-web-store.zip | package for Chrome Web Store updates. It is built locally and not attached to GitHub releases. Don't load it unpacked: without the key, Chrome gives it a different ID and the helper refuses it. |
extension-webstore-first-upload.zip | package for the first Web Store upload. It contains key.pem, so the store keeps the same extension ID the helper expects. Never share it. |
Release checklist:
Version in helper/main.go, MIN_HELPER_VERSION in extension/config.js (if the extension needs the new helper), and version in extension/manifest.json.helper/build.sh.releases/latest/download/<file name>, which is set in extension/config.js.extension-chrome-web-store.zip to the Chrome Web Store.The ☕ Support the project button in the settings opens the page set in extension/config.js:
donate: e.g. Ko-fi;donatePl: e.g. buycoffee.to, used when the UI is in Polish.The button is hidden while both are empty.
Help translate the extension into your language. It's one file per language, and you don't need to know JavaScript. See TRANSLATING.md. Every Pull Request that touches translations is checked automatically. Missing texts show in English until they are translated.
If the extension saves you time, you can support it on Ko-fi. Donations go towards code-signing certificates, so the helper installs without security warnings on macOS and Windows.
MIT – see LICENSE. pdf.js (Apache 2.0) and pdf-lib (MIT) keep their own licenses.