capacitor-mk-printer
v1.0.5
Published
MK printer
Maintainers
Readme
Capacitor MK Printer
A Capacitor plugin for MK printer integration.
Installation
npm install capacitor-mk-printer
npx cap syncAPI
listenPrinters()
listenPrinters() => Promise<{ devices: BluetoothDevice[] }>List available printers that can be connected.
Returns: Promise<{ devices: BluetoothDevice[] }>
connectPrinter(...)
connectPrinter(options: { macAddress: string }) => Promise<any>Connect to a printer.
| Param | Type | Description |
| ------------- | ------------------------------------ | ------------------------------ |
| options | { macAddress: string } | MAC address of the printer to connect |
Returns: Promise<any>
getCurrentPrinter()
getCurrentPrinter() => Promise<{ name: string; macAddress: string }>Get information about the currently connected printer.
Returns: Promise<{ name: string; macAddress: string }>
printImage(...)
printImage(options: PrintImageOptions) => Promise<any>Print an image.
| Param | Type | Description |
| ------------- | ------------------------------------------------------------- | -------------------------- |
| options | PrintImageOptions | Image printing options |
Returns: Promise<any>
Interfaces
BluetoothDevice
| Property | Type | Description |
| ----------------- | ------------------- | ---------------------------------- |
| name | string | Device name |
| macAddress | string | Device MAC address |
| type | string | Device type (optional) |
PrintImageOptions
| Property | Type | Description |
|------------------| ------------------- |--------------|
| base64Data | string | image base64 |
Permissions
Android
Add these permissions to your AndroidManifest.xml file:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />iOS
Add these permission descriptions to your Info.plist file:
<key>NSBluetoothAlwaysUsageDescription</key>
<string>This app needs Bluetooth access to connect to printers</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>This app needs Bluetooth access to connect to printers</string>Usage Example
import { MkPrinter } from 'capacitor-mk-printer';
// List available printers
async function scanPrinters() {
try {
const result = await MkPrinter.listenPrinters();
console.log('Available printers:', result.devices);
} catch (error) {
console.error('Error scanning printers:', error);
}
}
// Connect to a printer
async function connect(macAddress: string) {
try {
await MkPrinter.connectPrinter({ macAddress });
console.log('Connected successfully');
} catch (error) {
console.error('Connection failed:', error);
}
}
// Get current printer information
async function getCurrentPrinter() {
try {
const printer = await MkPrinter.getCurrentPrinter();
console.log('Current printer:', printer);
} catch (error) {
console.error('Error getting current printer:', error);
}
}
// Print an image
async function printImage(base64Data: string) {
try {
await MkPrinter.printImage({ base64Data });
console.log('Image printed successfully');
} catch (error) {
console.error('Error printing image:', error);
}
}Development
Build
# In the plugin directory
npm run build # compiles TypeScript to dist/Publish to npm
# In the plugin directory
npm run build
npm login # once; requires publish rights to the package
# bump the "version" field in package.json
# (npm rejects re-publishing an already-published version)
npm publishThen, in your app:
# In the app directory
npm install capacitor-mk-printer@latest
npx cap sync androidInstall locally (without publishing)
Useful for testing native changes before a release. Paths below are examples — adjust them to your machine.
# In the plugin directory
npm run build
npm pack # creates capacitor-mk-printer-<version>.tgz# In the app directory (point to the .tgz produced above)
npm install /path/to/capacitor-mk-printer/capacitor-mk-printer-<version>.tgz --no-save
npx cap sync android--no-save keeps your app's package.json untouched, so it's easy to switch back to the
published version with a plain npm install.
Notes
- Always run
npx cap sync androidafter installing so Capacitor copies the updated native sources (Java + bundled.jars) into the Android project.- Build the Android app with a JDK 21+ — the
capacitor-androidmodule requiressourceCompatibility 21. In Android Studio: Settings → Build Tools → Gradle → Gradle JDK.
License
MIT
