printhub
v1.0.4
Published
A javascript plugin for Bluetooth & USB printers.
Downloads
129
Maintainers
Readme
PrintHub
PrintHub adalah plugin JavaScript untuk mencetak teks menggunakan printer thermal Bluetooth atau USB Printer. Plugin ini mendukung dua ukuran kertas: "58mm" dan "80mm".
Fitur
- Mencetak teks dengan berbagai opsi seperti huruf tebal, garis bawah, perataan, dan ukuran teks.
- Mencetak teks dengan dua kolom.
- Mencetak garis putus-putus.
- Mencetak baris baru.
- Mendukung dua ukuran kertas: "58mm" dan "80mm".
- Mendukung koneksi ke printer thermal Bluetooth.
- Mendukung browser modern seperti Chrome, Firefox, dan Edge.
- Mendukung Node.js.
- Mendukung penggunaan CDN.
- Mendukung penggunaan NPM.
- Mendukung penggunaan ES6.
Instalasi
Menggunakan NPM
npm install printhub
import atau require PrintHub ke dalam proyek Anda.
import PrintHub from "printhub";
or
const PrintHub = require("printhub");
Menggunakan CDN
<script src="https://cdn.jsdelivr.net/npm/[email protected]/lib/index.min.js"></script>
Penggunaan
Membuat Instance dari PrintHub
Anda dapat membuat instance dari PrintHub dengan atau tanpa menentukan ukuran kertas yang diinginkan. Ukuran kertas yang didukung adalah "58mm" dan "80mm". Jika ukuran kertas tidak ditentukan, ukuran kertas default adalah "58mm".
- Membuat Instance PrintHub dengan Ukuran Kertas "80mm"
let printer = new PrintHub({
paperSize: "80mm",
});
- Membuat Instance PrintHub dengan Ukuran Kertas "58mm"
let printer = new PrintHub();
Memilih Jenis Printer
Anda dapat memilih jenis printer yang akan digunakan. Jenis printer yang didukung adalah "bluetooth" dan "usb". Jika jenis printer tidak ditentukan, jenis printer default adalah "bluetooth".
- Memilih Jenis Printer "bluetooth"
let printer = new PrintHub({
printerType: "bluetooth",
});
- Memilih Jenis Printer "usb"
let printer = new PrintHub({
printerType: "usb",
});
Menghubungkan ke Printer dan Mencetak Teks
Gunakan metode connectToPrint
untuk menghubungkan ke printer Bluetooth dan mencetak teks. Anda perlu menyediakan dua fungsi callback: onReady
dan onFailed
.
| Callback | Deskripsi |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| onReady
| Dipanggil ketika koneksi ke printer berhasil. Anda dapat menggunakan objek print yang diteruskan ke callback ini untuk mencetak teks. |
| onFailed
| Dipanggil ketika koneksi ke printer gagal. Anda dapat menggunakan parameter message untuk mendapatkan pesan error. |
Cara Menggunakan PrintHub
Hubungkan ke printer dan cetak teks.
printer.connectToPrint({ onReady: async (print) => { await print.writeText("Hello, World!"); }, onFailed: (message) => { console.log(message); }, });
Cetak teks dengan huruf tebal.
printer.connectToPrint({ onReady: async (print) => { await print.writeText("Hello, World!", { bold: true }); }, onFailed: (message) => { console.log(message); }, });
Cetak teks dengan garis bawah.
printer.connectToPrint({ onReady: async (print) => { await print.writeText("Hello, World!", { underline: true }); }, onFailed: (message) => { console.log(message); }, });
Cetak teks dengan perataan.
printer.connectToPrint({ onReady: async (print) => { await print.writeText("Hello, World!", { align: "center" }); }, onFailed: (message) => { console.log(message); }, });
Cetak teks dengan ukuran teks.
printer.connectToPrint({ onReady: async (print) => { await print.writeText("Hello, World!", { size: "double" }); }, onFailed: (message) => { console.log(message); }, });
Cetak teks dengan dua kolom.
printer.connectToPrint({ onReady: async (print) => { await print.writeTextWith2Column("Name", "John Doe"); }, onFailed: (message) => { console.log(message); }, });
Cetak garis putus-putus.
printer.connectToPrint({ onReady: async (print) => { await print.writeDashLine(); }, onFailed: (message) => { console.log(message); }, });
Cetak baris baru.
printer.connectToPrint({ onReady: async (print) => { await print.writeLineBreak(); }, onFailed: (message) => { console.log(message); }, });
Cetak teks dengan berbagai opsi.
printer.connectToPrint({ onReady: async (print) => { await print.writeText("Hello, World!", { bold: true, underline: true, align: "center", size: "double", }); }, onFailed: (message) => { console.log(message); }, });
Cetak teks dengan berbagai opsi dan dua kolom.
printer.connectToPrint({ onReady: async (print) => { await print.writeTextWith2Column("Name", "John Doe", { bold: true, underline: true, align: "center", size: "double", }); }, onFailed: (message) => { console.log(message); }, });
API
| Metode | Deskripsi |
| --------------------------------------------- | -------------------------------------------------------------------------- |
| writeLineBreak({ count = 1 })
| Menulis baris baru. |
| writeDashLine()
| Menulis garis putus-putus. |
| writeTextWith2Column(text1, text2, options)
| Menulis teks dengan dua kolom. |
| writeText(text, options)
| Menulis teks. |
| connectToPrint({ onReady, onFailed })
| Menghubungkan ke printer dan memanggil callback onReady
atau onFailed
. |
Opsi untuk Metode writeText
dan writeTextWith2Column
| Opsi | Deskripsi | Default |
| ----------- | ------------------------------------------------------------------------- | ---------- |
| bold
| Menentukan apakah teks dicetak dengan huruf tebal. | false
|
| underline
| Menentukan apakah teks dicetak dengan garis bawah. | false
|
| align
| Menentukan perataan teks. Nilai yang didukung: "left", "center", "right". | "left"
|
| size
| Menentukan ukuran teks. Nilai yang didukung: "normal", "double". | "normal"
|
Requirements for USB Printer
Windows
- Install Zadig.
- Connect USB Printer to your computer.
- Open Zadig and select your USB Printer.
- Install WinUSB driver for your USB Printer.
- Done.
Linux
- Connect USB Printer to your computer.
- Open terminal and run
lsusb
. - Find your USB Printer and note the vendor id and product id.
- Run
sudo modprobe usblp
. - Run
sudo echo "ATTRS{idVendor}=="YOUR_VENDOR_ID", ATTRS{idProduct}=="YOUR_PRODUCT_ID", MODE="0666", GROUP="plugdev" > /etc/udev/rules.d/99-usb-printer.rules
. - Run
sudo udevadm control --reload-rules
. - Run
sudo udevadm trigger
. - Done.
macOS
- Connect USB Printer to your computer.
- Open terminal and run
ls /dev/cu.*
. - Find your USB Printer and note the device name.
- Run `sudo chmod
- Run `sudo chown
- Done.
Browser Support
Desktop
| Browser | Version | Status | | ------- | ------- | ------ | | Chrome | 61 | ✔️ | | Firefox | No | ❌ | | Edge | 79 | ✔️ | | Safari | No | ❌ | | Opera | 48 | ✔️ |
Mobile
| Browser | Version | Status | | ------- | ------- | ------ | | Chrome | 61 | ✔️ | | Firefox | No | ❌ | | Safari | No | ❌ | | Opera | 45 | ✔️ | | Samsung | 8.0 | ✔️ | | WebView | No | ❌ |
Change Log
v1.0.4
- Add instructions for USB Printer on Windows, Linux, and macOS
v1.0.3
- Fix USB Printer not working