: ' build.it - documented shell script to create HP Laserjet Series II initialization file that downloads a different character 127 ' ESC='\033' { echo "$ESC(s0p10h12v0s0b3T\c" # Select FX-NORMAL font (SEE NOTE 1) echo "$ESC*c6F\c" # Copy current font (SEE NOTE 2) echo "$ESC*c127E\c" # Set character code to 127 (in copied font) echo "$ESC(s160W\c" # Prefix block header (160 is byte count: # 16 byte header + 144 bytes data) echo "\004\000\016\001\c" # Descriptor header start echo "\000\c" # Portrait orientation (001 for landscape) echo "\000\c" # Filler echo "\000\000\c" # Left offset - 0 echo "\000\036\c" # Top offset - 30 echo "\000\032\c" # Character width - 26 (SEE NOTE 3) echo "\000\050\c" # Character height - 41 echo "\000\0150\c" # Delta X (post character shift) - 104 # (SEE NOTE 3) # Loops below are to create a stream of 144 (18x8) characters in # alternate batches of 8 each with a different pattern (PAT). These # 144 characters are a dot pattern for the new character PAT= for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; do # Toggle pattern every 8 characters: case "$PAT" in *1 ) PAT="\020";; *) PAT="\001";; esac for j in 1 2 3 4 5 6 7 8; do echo "$PAT\c" done done } > hp_jet+.127