Enscript
Enscript中的文本垂直對齊
Enscript中的一行內是否有垂直文本對齊的選項?
文字腳本:
push (@parts_section_array, sprintf(border("#")."%4s".'~bggray{0.85}'." Part Number %9s Description %16s Qty. ". '~font{DejaVuSansMono-Bold10}' ."Unit Price Ext. Price %4s Cost".'~font{default}~bggray{1.0}'." ".border("|")."\n", "", "", "", ""));
或者文字是:
~bggray{0.85} Part Number Description Qty. ~font{DejaVuSansMono-Bold10} Unit Price Ext. Price Cost ~font{default}~bggray{1.0}
腳本程式碼:
enscript -q \ -f DejaVuSansMono@10 \ -e~ \ --no-header \ -s 4.3 \ --margins=10:2:14:10 \ -L 73 "${pi}" \ -o - \ | ps2pdf - "$BOOK_DIR"/"${filename}.pdf"
如果找不到其他方法,您可以隨時編輯生成的 PostScript。我的版本
enscript
在輸出的開頭放置了bgs
呼叫來繪製背景的函式的定義:/bgs { % x y height blskip gray str -> - show string with bg color /str exch def /gray exch def /blskip exch def /height exch def /y exch def /x exch def gsave x y blskip sub str stringwidth pop height Box gray setgray fill grestore x y M str s } def
您需要更改線
x y ... Box
以提高框的 y 座標,例如通過height*0.2
使其為:x y height .2 mul add blskip sub str stringwidth pop height Box
sed
通過在管道中添加一個腳本來做到這一點ps2pdf
:enscript ... | sed '/^\/bgs /,/^}/{ /x y blskip/s//x y height .2 mul add blskip/ }' | ps2pdf ...
您
enscript
可能會生成稍微不同的定義,因此請先比較它們。