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.
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
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 |
- macOS 14.0+ (Sonoma or later)
- Node.js 14+
- npm or yarn
- Datecs fiscal printer with network connectivity
- Go to Releases
- Download the latest
DatecsFPrint-macOS.dmg - Open DMG and drag app to Applications
- Launch from Applications folder
git clone https://github.com/bulgariamitko/datecs-fprint-macos.git
cd datecs-fprint-macos
npm install
npm run dev- Launch DatecsFPrint - Modern Electron app opens
- Go to Settings tab to configure your printer
- 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)
- IP Address (e.g.,
- Click "Save Configuration"
- Test Connection to verify everything works
- Send Test Command to confirm communication
- 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
- 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
- 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
The app provides a guided connection testing process:
- Test TCP Connection - Verifies network connectivity
- Send Test Command - Sends device information request
- View Real-time Logs - See all communication in detail
# Get device information
I,1,______,_,__;0;80
# Get last document number
N,1,______,_,__;
# Open fiscal receipt (example)
48,1,______,_,__;1;1;1;0;OPERATOR001;
Settings are automatically saved to ~/.datecs-settings:
{
"ipAddress": "192.168.1.100",
"port": 4999,
"deviceModel": "DP-25MX",
"serialNumber": "AB123456",
"fiscalMemoryNumber": "12345678",
"timeout": 10000
}- Electron 22+ - Desktop app framework
- React 18+ - UI library
- Lucide React - Beautiful icons
- Node.js - Backend functionality
βββ 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
# 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- β 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
- β macOS 14.0+ is required
- β Node.js 14+ is installed
- β App has network permissions
- β Check logs in the app's Log Viewer
# Reinstall dependencies
rm -rf node_modules package-lock.json
npm install
# Clear Electron cache
rm -rf ~/Library/Application\ Support/DatecsFPrint
# Reset configuration
rm ~/.datecs-settingsContributions are welcome! The modern web tech stack makes it easy to contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes in React/JavaScript
- Test with
npm run dev - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
git clone https://github.com/bulgariamitko/datecs-fprint-macos.git
cd datecs-fprint-macos
npm install
npm run dev- 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Datecs for their fiscal printer protocol documentation
- Electron for the amazing cross-platform framework
- React for the powerful UI library
- Community contributors and testers
- 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!