Commit Graph

44 Commits

Author SHA1 Message Date
ske087 93afa3c417 Add P-touch Labels for Asset: 63x20 mm label format for PT-E560BT
New three-column label format for Brother P-touch EDGE PT-E560BT asset tags:
logo | three static lines + variable field | QR code.

Layout and rendering
- ptouch_label.py: geometry engine with PDF and preview renderers. Both
  consume the same geometry, so the preview matches the print exactly.
- Code symbols are snapped to whole printer dots per module. Fractional
  modules are the usual reason a small QR code will not scan.
- QR is maximised to the printable height by default (16.4 mm, 4 dots per
  module) instead of a fixed 16 mm box (12.3 mm, 3 dots per module).
- Code payload is composed as prefix + inventory + suffix. A legacy
  {inventory} template is migrated on first save.

Hardware handling
- print_area.py reads the driver's real printable area via GetDeviceCaps.
  The PT-E560BT head is 128 dots at 180 dpi, so the maximum print height is
  18.06 mm even on 24 mm tape; the driver reports media as 65x24 mm but only
  about 61x18 mm is reachable. Content is fitted to the reachable area,
  otherwise the driver silently crops it.
- set_printer_resolution.py reads/switches the driver's resolution mode. The
  driver offers 180x180 (symmetric) and 180x360 (anisotropic, 2x across the
  tape); the anisotropic mode scaled output incorrectly.

GUI
- label_printer_ptouch_gui.py: 600x300 two-column panel - controls on the
  left, live preview on the right. Advanced settings for logo, static lines,
  code prefix/suffix and error correction.
- native_file_dialog.py: the standard Windows file picker, run in a
  subprocess because Tk and Kivy both want the main event loop.

Printing
- Print failures are reported honestly. print_to_printer previously returned
  True unconditionally, so a failed print claimed success and was logged as
  SUCCESS.
- SumatraPDF exit codes are now checked (4 = no printer, 5 = driver error).
- The PDF is sent with noscale so driver-side scaling cannot distort the QR
  module pitch.

Tests
- validate_ptouch_layout.py decodes the QR back out of the rendered preview
  module by module, proving the preview and PDF are the same layout.
- test_ptouch_pipeline.py writes to a temp config so it cannot overwrite
  operator settings.
- test_gui_layout.py exercises the real app class headlessly.
- test_print_reporting.py covers the failure paths.

Diagnostics: check_print_area.py, check_print_geometry.py, check_devmode.py,
print_calibration.py, print_measure_scale.py, capture_print_job.py.
2026-09-25 17:30:11 +03:00
ske087 58082ed171 final doc 2026-02-13 15:30:00 +02:00
ske087 f09c365384 Fix printer detection, implement portable deployment with SumatraPDF
- Fixed network printer enumeration (PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS)
- Added printer name truncation to 20 chars with full name mapping
- Implemented silent PDF printing using SumatraPDF with landscape orientation
- Added auto-dismiss for success popup (3 seconds)
- Bundled SumatraPDF inside executable for portable single-file deployment
- Updated build script to embed SumatraPDF
- Added setup_sumatra.ps1 for downloading SumatraPDF portable
- Added DEPLOYMENT.md documentation
2026-02-06 14:00:17 +02:00
ske087 b204ce38fc Fix silent printing and shorten printer display names
- Print directly via win32print API without opening PDF viewer
- Shorten printer names to 20 chars in dropdown (strip server prefix for network printers)
- Map display names back to full names for printing
- PDF backup saved silently without launching viewer
2026-02-06 11:18:27 +02:00
ske087 1cf4482914 updated printer list to show local networ printers 2026-02-06 10:48:19 +02:00
ske087 b9025fcabe printing 2026-02-06 10:42:11 +02:00
Quality App Developer fa5c846ebb Add network printer detection on Windows: support printers from print servers 2026-02-06 10:20:57 +02:00
ske087 6bcfc3102b final cleanup of build artifacts for LabelPrinter 2026-02-06 09:40:19 +02:00
ske087 92714bcb51 Update build scripts and rebuild artifacts 2026-02-06 09:37:23 +02:00
Quality App Developer 396bf19214 final_label 2026-02-06 08:34:36 +02:00
Quality App Developer 37c7a5bd7a Change log format from text to CSV table format - easier to read and analyze 2026-02-06 08:33:52 +02:00
Quality App Developer 69e0f7f8b1 Add logging functionality: log print actions to logs folder with 5-day auto-cleanup 2026-02-06 08:25:27 +02:00
Quality App Developer 44771dcd11 Add two features: (1) Printer selection persistence after printing (2) Auto-cleanup of PDF files older than 5 days on startup 2026-02-06 08:20:55 +02:00
NAME ca42c8e3c7 Build Windows executable - LabelPrinter.exe with Python 3.13 and Kivy 2.3.1 2026-02-05 23:50:14 +02:00
Quality App Developer 9f45a02f13 Remove GitHub Actions workflow 2026-02-05 16:50:06 +02:00
Quality App Developer 6f07bb9cba Update: add Python version compatibility notes (3.14 may have issues) 2026-02-05 16:46:16 +02:00
Quality App Developer 1536f26fee Add Windows build scripts and documentation for single-file executable 2026-02-05 14:55:06 +02:00
Quality App Developer e838d25c44 Major optimization: use --onedir (faster), add pip cache, increase timeout to 45min 2026-02-05 14:33:45 +02:00
Quality App Developer 8e3893e85c Optimize build: add timeout, simplify dependencies, reduce hidden imports 2026-02-05 13:12:48 +02:00
Quality App Developer f2a2ca7d97 Fix PyInstaller parameter: use --workpath instead of --buildpath 2026-02-05 11:40:58 +02:00
Quality App Developer 8301fc8ef4 Simplify build: use pyinstaller directly, add better error handling 2026-02-05 11:32:21 +02:00
Quality App Developer 82949fb9bf Add verbose debugging and specify package versions for Windows build 2026-02-05 10:07:21 +02:00
Quality App Developer 9bfc40d733 updated push 2026-02-05 09:21:32 +02:00
Quality App Developer e7aac91d51 Fix Windows build: remove pycups (Linux-only) and use Windows requirements 2026-02-05 09:18:28 +02:00
Quality App Developer 795dd5cac2 Fix deprecated GitHub Actions - update to latest versions 2026-02-05 09:12:17 +02:00
Quality App Developer ba54bbfa75 Add GitHub Actions workflow for Windows executable build 2026-02-05 09:07:51 +02:00
Quality App Developer 5e1cdfb9e5 Add comprehensive README documentation
- Complete project overview and features
- Quick start guides for both Python and executable
- Step-by-step PyInstaller build instructions
- File structure and dependencies overview
- Troubleshooting section
- Platform support matrix
- Technical specifications
- Contributing guidelines
2026-02-05 01:20:32 +02:00
Quality App Developer 8619debd71 Add PyInstaller support for standalone Windows executable
- Add build_exe.py script for easy executable generation
- Add PYINSTALLER_GUIDE.md with comprehensive instructions
- Updated label_printer.spec for PyInstaller configuration
- Tested build process - executable builds successfully
- Created dist/LabelPrinter with all dependencies bundled
- File size: ~200MB (includes Python runtime and all libraries)
- No Python installation required to run the exe
2026-02-05 01:19:42 +02:00
Quality App Developer 184178275b Add Windows support with cross-platform printer detection
- Make app cross-platform compatible (Windows, Linux, macOS)
- Replace CUPS-only printer detection with platform-aware code
- Add Windows printer support using win32print/win32api
- Add macOS printer support using lpstat
- Keep Linux CUPS support
- Add requirements_windows.txt for Windows installation
- Add comprehensive WINDOWS_SETUP.md guide
- Fallback to PDF output on all platforms
- Tested on Linux, ready for Windows/macOS
2026-02-05 01:06:49 +02:00
Quality App Developer 33c9c3d099 Improve GUI and barcode generation
- Update GUI title to 'Label Printing' with white text
- Add character limit (25 chars) to all input fields
- Add number-only filter to quantity field
- Fix barcode generation in PDF module
- Create pdf_backup folder for storing generated PDFs
- Add pdf backup logging and confirmation
- Move demo files and tests to documentation folder
- Reorganize project structure for better clarity
2026-02-05 01:02:53 +02:00
Quality App Developer a79fdf3759 Update label printer GUI with improved preview layout - 50% larger canvas, proportional barcodes, 25 char limit, 0.5cm left margin 2026-02-04 17:21:53 +02:00
Quality App Developer 602c83a8ce Add comprehensive testing summary report 2026-02-04 15:47:40 +02:00
Quality App Developer 719a086f87 Fix tkinter dependency and add comprehensive tests
- Removed tkinter/ImageTk imports from print_label.py
- Simplified preview function to use command-line countdown
- Application now works without GUI framework dependencies
- Added test_functional.py: Comprehensive functional test suite (5/5 PASS)
- Added demo_usage.py: Functional demonstration
- Added TEST_REPORT.md: Complete testing report
- All core functionality verified and working
- GUI ready for deployment on compatible systems
2026-02-04 15:46:18 +02:00
Quality App Developer 6bcec9e306 Merge remote-tracking branch 'origin/main' 2026-02-04 15:39:56 +02:00
Quality App Developer 31fab25430 Add Kivy GUI interface for label printer
- Created label_printer_gui.py: Complete Kivy-based GUI application
  - Two-column layout (input form + live preview)
  - SAP-Nr, Quantity, Cable ID input fields
  - Real-time barcode preview (11.5cm x 8cm)
  - Printer selection dropdown
  - Print button with CUPS integration

- Added setup automation:
  - setup_and_run.py: Python setup launcher
  - start_gui.sh: Bash launcher script
  - validate_project.py: Project validation

- Added comprehensive documentation:
  - INDEX.md: Project overview and quick start
  - GETTING_STARTED.md: 15-minute quick start guide
  - README_GUI.md: Complete feature documentation
  - TECHNICAL_DOCS.md: Architecture and customization
  - FILE_GUIDE.md: File reference guide
  - IMPLEMENTATION_SUMMARY.md: Implementation overview

- Updated dependencies:
  - requirements_gui.txt: New Kivy dependencies

- Preserved:
  - print_label.py: Original printing engine (modified to remove main code)
  - Original documentation and dependencies

Features:
- Live preview of labels as you type
- Automatic CUPS printer detection
- Non-blocking background printing
- User-friendly error handling
- Responsive two-column layout
- Production-ready quality
2026-02-04 15:37:04 +02:00
ske087 e5f2e69b10 final state 2025-07-15 13:10:17 +03:00
ske087 efe7b7a671 Final code 2025-06-30 16:08:07 +03:00
ske087 17231fbae1 simple function to print 9/5 labels 2025-06-30 15:55:56 +03:00
ske087 33df76f758 print label function created 2025-06-30 15:45:36 +03:00
ske087 46351d71b7 updated fields 2025-06-30 10:23:51 +03:00
ske087 e8a17b6a9e Final tuch of the Print label 2025-06-19 11:11:56 +03:00
ske087 17a549c8f6 Updated 2025-06-13 16:54:10 +03:00
ske087 c1bedf0534 updated for the start 2025-06-12 16:46:15 +03:00
ske087 806091840c starting 2025-04-14 08:32:16 +03:00