在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代码:
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"发布于 2019-05-07 17:59:18
如果您找不到其他方法,则始终可以编辑生成的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可能会生成一个稍微不同的定义,所以请先对它们进行比较。
https://unix.stackexchange.com/questions/517510
复制相似问题