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약간 다른 정의가 생성될 수 있으므로 먼저 비교하십시오 .

관련 정보