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"
答案1
如果您找不到其他方法,您可以随时编辑生成的 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
可能会生成略有不同的定义,因此请先对它们进行比较。