#!/bin/bash
# Script to print formatted text from clipboard to a thermal printer
# Check for the presence of xclip
if ! command -v xclip &>/dev/null; then
echo "xclip could not be found."
exit 1
fi
# Get clipboard content using xclip
clipboard_content="$(xclip -o -selection clipboard)"
# Escape % to prevent printf interpretation
escaped_content=$(sed 's/%/%%/g' <<<"$clipboard_content")
# Convert the encoding while suppressing the specific 'iconv' error
converted_text=$(iconv -f UTF-8 -t CP850//TRANSLIT//IGNORE <<<"$escaped_content" 2>/dev/null)
# Print the formatted text to the thermal printer
if ! printf '\x1B\x40\x1B\x21\x08\x1B\x61\x01%s\x0A\x0A\x0A\x1B\x69' "$converted_text" | lp -d thermal -o raw; then
echo "Failed to print. Please check the printer and its configuration."
exit 1
fi
#!/bin/bash
if ! command -v xclip &>/dev/null; then
echo "xclip could not be found."
exit 1
fi
clipboard_content="$(xclip -o -selection clipboard)"
escaped_content=$(sed 's/%/%%/g' <<<"$clipboard_content")
converted_text=$(iconv -f UTF-8 -t CP850//TRANSLIT//IGNORE <<<"$escaped_content" 2>/dev/null)
if ! printf '\x1A\x5B\x01\x00\x00\x00\x00\x40\x02\xB0\x04\x00\x1A\x54\x01\x00\x00\x00\x00\x18\x00\x04\x00%s\x00\x1A\x5D\x00\x1A\x4F\x00\x1B\x69' "$converted_text" | lp -d thermal -o raw; then
echo "Failed to print. Please check the printer and its configuration."
exit 1
fi