Comments (1)
So, continuing with the topic from the other issue (#250), I couldn't make the print occupy the entire page. I just increased the size of the image to the maximum I needed.
In my case, I used the libraries pngjs and sharp to handle the image buffer resizing.
import { PNG } from 'pngjs'
import sharp from 'sharp'
async function resizePNGBuffer(buffer, newWidth) {
try {
const png = PNG.sync.read(buffer)
const scale = newWidth / png.width;
const newHeight = Math.round(png.height * scale);
const newBuffer = await sharp(buffer)
.resize({ width: newWidth, height: newHeight })
.toBuffer();
return newBuffer;
} catch (error) {
console.error('Error resizing image:', error);
return null;
}
}
// 510px was the maximum size I managed to resize the image without slowing down the printing.
async function getLayout() {
try {
const url = 'URL'
const payload = {}
const result = await axios.post(url, payload, { responseType: 'arraybuffer' })
const resizedBuffer = await resizePNGBuffer(result.data, 510)
await printFromBuffer(resizedBuffer)
} catch (e) {
console.log(e)
}
}
async function printFromBuffer(buffer) {
try {
let isConnected = await printer.isPrinterConnected()
if (!isConnected) {
throw Error("not connected")
}
await printer.printImageBuffer(buffer)
printer.cut()
await printer.execute()
printer.clear()
} catch (e) {
console.log(e)
}
}
I hope this can help you in some way, but the print still has margins on the paper's edge that I don't know how to solve yet.
from node-thermal-printer.
Related Issues (20)
- How I Can Used it with angular HOT 1
- Python HOT 2
- Greek Letters HOT 2
- Incompatible architecture (have 'x86_64', need 'arm64') HOT 1
- Can this be integrated with USB connected thermal printer of any brand HOT 5
- Can't connect to usb printer EPSON TM-T20X HOT 3
- PC860_PORTUGUESE not function in words using ~ HOT 2
- How much paper is left EPSON TM-T20 HOT 1
- STAR TSP100 HOT 5
- Can't configure in Express and Electron node_modules/iconv-lite/lib/index.js
- Will it work for non popular brands of printer HOT 6
- Data Sent To Printer - hang HOT 7
- Cyrillic printing. setTypeFontB HOT 1
- How to print from aws
- Error in NODEJS production HOT 1
- How does printing labels work? HOT 3
- Is it possible to control the size, margins, and position of an image? HOT 3
- Korean Language Issue
- [Feature request] string printer
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-thermal-printer.