Removed justify node

This commit is contained in:
Jurn Wubben 2026-01-24 20:28:29 +01:00
parent 3e6ce77549
commit a6c067ac43
2 changed files with 54 additions and 76 deletions

View file

@ -134,10 +134,6 @@ impl EscPosBuilder {
self.extend(&[0x1B, b'd', amount])
}
pub fn write_justify(&mut self, justify: JustifyOrientation) {
self.extend(&[0x1B, b'a', justify as u8]);
}
pub fn write_text(&mut self, text: &str, text_effect: Option<&[TextEffect]>) -> () {
let mut buf: Vec<u8> = vec![];
buf.reserve(12 + text.len());

View file

@ -7,8 +7,6 @@ use std::{error::Error, io::stdin};
mod escpos;
use escpos::{BARTextPosition, BARType, EscPosBuilder, ImageOrientation, QREcc, TextEffect};
use crate::escpos::JustifyOrientation;
#[derive(Debug, Deserialize)]
struct Document {
#[serde(rename = "$value")]
@ -27,9 +25,6 @@ enum Node {
#[serde(rename = "p")]
Text(Text),
#[serde(rename = "justify")]
Justify(Justify),
#[serde(rename = "img")]
Img(Img),
@ -43,15 +38,6 @@ enum Node {
Feed(Feed),
}
#[derive(Debug, Deserialize)]
struct Justify {
#[serde(rename = "@align")]
pub align: JustifyOrientation,
#[serde(rename = "$value")]
pub value: Vec<Node>,
}
#[derive(Debug, Deserialize)]
struct Heading {
#[serde(rename = "$value")]
@ -141,7 +127,8 @@ where
Ok(Some(out))
}
fn handle_node(node: Node, builder: &mut EscPosBuilder) -> Result<(), Box<dyn Error>> {
fn handle_document(doc: Document, builder: &mut EscPosBuilder) -> Result<(), Box<dyn Error>> {
for node in doc.children {
match node {
Node::PlainText(ref t) => {
builder.write_text(t.trim(), None);
@ -163,13 +150,7 @@ fn handle_node(node: Node, builder: &mut EscPosBuilder) -> Result<(), Box<dyn Er
builder.write_feed(None);
}
Node::Justify(t) => {
builder.write_justify(t.align);
for i in t.value {
handle_node(i, builder)?;
}
builder.write_justify(JustifyOrientation::default());
}
Node::Img(img) => {
let dynimg = image::open(&img.src)?;
builder.write_bitmap(&dynimg, img.orientation);
@ -190,17 +171,18 @@ fn handle_node(node: Node, builder: &mut EscPosBuilder) -> Result<(), Box<dyn Er
if value.is_empty() {
return Ok(());
};
builder.write_barcode(&value, b.height, b.mod_width, b.text_position, b.bar_type)?;
builder.write_barcode(
&value,
b.height,
b.mod_width,
b.text_position,
b.bar_type,
)?;
}
Node::Feed(f) => {
builder.write_feed(f.amount);
}
}
Ok(())
}
fn handle_document(doc: Document, builder: &mut EscPosBuilder) -> Result<(), Box<dyn Error>> {
for node in doc.children {
handle_node(node, builder)?;
}
Ok(())
}