Skip to content

bulgariamitko/datecs-fprint-macos

Repository files navigation

DatecsFPrint for macOS

macOS Electron React License

A modern Electron + React desktop application that brings Windows FPrint functionality to Mac users with Datecs fiscal printers. Built with web technologies for easy development and cross-platform compatibility.

DatecsFPrint Screenshot

πŸš€ Why DatecsFPrint for macOS?

If you're using Datecs fiscal printers on macOS and missing the Windows FPrint functionality, this app is for you! It provides:

  • βœ… Modern Electron + React architecture for easy development
  • βœ… Cross-platform compatibility (macOS, Windows, Linux)
  • βœ… Real-time connection testing with beautiful UI
  • βœ… 100% compatibility with Windows FPrint command format
  • βœ… TCP/IP networking for modern Ethernet/WiFi printers
  • βœ… Live logging and comprehensive error handling
  • βœ… Easy configuration with persistent settings

πŸ“¦ Supported Datecs Printers

This application works with any Datecs fiscal printer that supports TCP/IP communication:

Model Series Tested Notes
DP-25MX βœ… Primary Full feature support
DP-50X βœ… Compatible Network-enabled models
FP-2000 βœ… Compatible TCP/IP variants
Other Models πŸ”„ Should work If it has Ethernet/WiFi

πŸ› οΈ Quick Start

Prerequisites

  • macOS 14.0+ (Sonoma or later)
  • Node.js 14+
  • npm or yarn
  • Datecs fiscal printer with network connectivity

Download & Install

Option 1: Download Release (Recommended)

  1. Go to Releases
  2. Download the latest DatecsFPrint-macOS.dmg
  3. Open DMG and drag app to Applications
  4. Launch from Applications folder

Option 2: Build from Source

git clone https://github.com/bulgariamitko/datecs-fprint-macos.git
cd datecs-fprint-macos
npm install
npm run dev

First-Time Setup

  1. Launch DatecsFPrint - Modern Electron app opens
  2. Go to Settings tab to configure your printer
  3. Enter your printer details:
    • IP Address (e.g., 192.168.1.100)
    • Port (usually 4999)
    • Device Model (e.g., DP-25MX)
    • Serial Number (from printer info)
    • Fiscal Memory Number (from printer info)
  4. Click "Save Configuration"
  5. Test Connection to verify everything works
  6. Send Test Command to confirm communication

🎯 Features

πŸ–₯️ Modern UI Features

  • Electron + React desktop app with native feel
  • Real-time connection status with visual indicators
  • Interactive connection testing with step-by-step guidance
  • Live activity logging with export functionality
  • Persistent configuration saved locally
  • Clean, intuitive interface inspired by modern macOS apps

πŸ”§ Technical Features

  • TCP/IP communication with configurable timeouts
  • Command validation and response parsing
  • Error handling with detailed logging
  • Cross-platform compatibility (runs on Windows/Linux too)
  • Developer-friendly web technologies

πŸ’» Developer Features

  • Modern JavaScript with React components
  • IPC communication between main and renderer processes
  • File system operations for configuration management
  • Network abstraction for TCP communication
  • Easy to extend and customize

πŸ“– Usage Examples

Basic Connection Test

The app provides a guided connection testing process:

  1. Test TCP Connection - Verifies network connectivity
  2. Send Test Command - Sends device information request
  3. View Real-time Logs - See all communication in detail

Standard Commands

# Get device information
I,1,______,_,__;0;80

# Get last document number
N,1,______,_,__;

# Open fiscal receipt (example)
48,1,______,_,__;1;1;1;0;OPERATOR001;

πŸ”§ Configuration

Settings are automatically saved to ~/.datecs-settings:

{
  "ipAddress": "192.168.1.100",
  "port": 4999,
  "deviceModel": "DP-25MX",
  "serialNumber": "AB123456",
  "fiscalMemoryNumber": "12345678",
  "timeout": 10000
}

πŸ§ͺ Development

Tech Stack

  • Electron 22+ - Desktop app framework
  • React 18+ - UI library
  • Lucide React - Beautiful icons
  • Node.js - Backend functionality

Project Structure

β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ App.js                    # Main React component
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ ConfigurationPanel.js # Settings UI
β”‚   β”‚   β”œβ”€β”€ ConnectionTester.js   # Connection testing
β”‚   β”‚   └── LogViewer.js         # Activity logs
β”‚   └── index.js                 # React entry point
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ electron.js              # Electron main process
β”‚   └── index.html              # HTML template
β”œβ”€β”€ package.json                # Dependencies and scripts
└── README.md                   # This file

Development Scripts

# Start development server
npm run dev

# Build for production
npm run build

# Package as desktop app
npm run dist

# Run just Electron
npm run electron

# Run just React
npm start

🚨 Troubleshooting

Connection Issues

  • βœ… Printer is powered on and connected to network
  • βœ… IP address is correct (check printer display/menu)
  • βœ… Port 4999 is accessible (default for Datecs)
  • βœ… Firewall allows the connection
  • βœ… Printer and Mac are on same network

App Issues

  • βœ… macOS 14.0+ is required
  • βœ… Node.js 14+ is installed
  • βœ… App has network permissions
  • βœ… Check logs in the app's Log Viewer

Common Fixes

# Reinstall dependencies
rm -rf node_modules package-lock.json
npm install

# Clear Electron cache
rm -rf ~/Library/Application\ Support/DatecsFPrint

# Reset configuration
rm ~/.datecs-settings

🀝 Contributing

Contributions are welcome! The modern web tech stack makes it easy to contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes in React/JavaScript
  4. Test with npm run dev
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Development Setup

git clone https://github.com/bulgariamitko/datecs-fprint-macos.git
cd datecs-fprint-macos
npm install
npm run dev

πŸ“‹ Roadmap

  • Electron + React architecture
  • TCP/IP communication with real-time testing
  • Modern UI with connection status and logging
  • Configuration management with persistence
  • Cross-platform compatibility
  • Serial (RS-232) communication support
  • File processing and resident mode
  • Command history and templates
  • Multiple printer support
  • App Store distribution

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Datecs for their fiscal printer protocol documentation
  • Electron for the amazing cross-platform framework
  • React for the powerful UI library
  • Community contributors and testers

πŸ“ž Support

  • Documentation: Check SETUP_GUIDE.md for detailed instructions
  • Issues: Open an issue on GitHub
  • Discussions: Use GitHub Discussions for questions
  • Datecs Support: Contact Datecs for printer-specific issues

Built with modern web technologies for the macOS + Datecs community πŸ’»βš‘

If this project helped you, please ⭐ star it on GitHub!

About

Native macOS application for Datecs fiscal printers - Windows FPrint replacement with SwiftUI interface

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •