Electron app that connects your web application to thermal printers via HTTP API. Supports Windows, Linux, and macOS.
Windows:
- Download
Lakasir-Printer-Bridge-Setup-1.0.0.exefrom releases - Run the installer
- Launch "Lakasir Printer Bridge" from Start Menu
macOS:
- Download
Lakasir-Printer-Bridge-1.0.0.dmgfrom releases - Open the DMG and drag to Applications
- Launch from Applications folder
Linux:
- Download
Lakasir-Printer-Bridge-1.0.0.AppImageor.deb - For AppImage:
chmod +x Lakasir-Printer-Bridge-1.0.0.AppImage && ./Lakasir-Printer-Bridge-1.0.0.AppImage - For deb:
sudo dpkg -i Lakasir-Printer-Bridge-1.0.0.deb
# Install dependencies
npm install
# Run in development
npm start
# Build for current platform
npm run build
# Build for specific platform
npm run build:win # Windows
npm run build:mac # macOS
npm run build:linux # LinuxBuilt installers will be in the dist/ folder.
- Launch the app
- HTTP server starts automatically on port 8888
- Use "Start Server" / "Stop Server" buttons to control server state
- Select your printer from the dropdown (lists all system printers)
- Set paper width if needed (default: 48 characters)
- Click "Save Settings"
Settings are automatically saved and persist between restarts.
Note: The app uses your operating system's native print system, so ensure your printer is properly installed and configured in your OS settings first.
// Send print job
fetch('http://localhost:8888/print', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
text: 'Hello World',
items: ['Line 1', 'Line 2']
})
})
.then(res => res.json())
.then(data => console.log(data));
// Get available printers
fetch('http://localhost:8888/printers')
.then(res => res.json())
.then(data => console.log(data.printers));
// Get current settings
fetch('http://localhost:8888/settings')
.then(res => res.json())
.then(data => console.log(data));Send JSON with any combination of:
text: Single string to printitems: Array of strings (each on new line)image: Base64 encoded image stringimageUrl: URL to image to print
{
"text": "Hello World"
}or
{
"items": ["Line 1", "Line 2", "Line 3"]
}or
{
"text": "Order #123",
"image": "iVBORw0KGgoAAAANSUhEUgAAAAUA..."
}or
{
"text": "Company Logo",
"imageUrl": "https://example.com/logo.png"
}- HTTP API:
http://localhost:8888POST /print- Send print jobGET /printers- List available printersGET /settings- Get current settings
- ✅ Windows 10/11
- ✅ macOS 10.15+
- ✅ Linux (Ubuntu, Debian, Fedora, etc.)
Printer not showing up?
- Ensure printer is connected and drivers installed
- Restart the application
- Check printer name matches system printer name
Connection refused?
- Ensure app is running
- Click "Start Server" button in the app if server is stopped
- Check firewall settings allow connections to port 8888
- Try
localhostinstead of127.0.0.1or vice versa
main.js- Electron main process with HTTP serverindex.html- Settings UIprint.js- Original print script (reference)example-client.js- Example HTTP client