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"

ベストアンサー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わずかに異なる定義が生成される可能性があるため、まず比較してください。

おすすめ記事