Enscript는 텍스트 밑줄을 지원합니까?

Enscript는 텍스트 밑줄을 지원합니까?

입력 텍스트 데이터의 특정 부분을 밑줄로 인쇄해야 합니다. 현재 우리는 Perl 스크립트를 사용하여 텍스트 파일을 생성하고 "enscript" 및 "ps2pdf"를 사용하여 생성된 텍스트 파일의 PDF 파일을 생성합니다.

PDF 텍스트의 특정 부분(예: 밑줄)이 필요합니다. 어떤 조언이라도 도움이 될 것입니다.

- 필요하다

여기에 이미지 설명을 입력하세요.

하지만 @meuh의 답변을 기반으로 생성된 PDF는 다음과 같습니다.

여기에 이미지 설명을 입력하세요.

sed 스크립트를 수정해야 합니까?

답변1

다른 방법을 찾을 수 없다면 언제든지 enscript의 특수 이스케이프를 위해 생성된 PostScript를 편집할 수 있습니다 bggray(귀하의 이전 답변과 유사).질문).

입력에 특수 이스케이프 문자 bggray{0.5}( 를 사용하여 변경할 수 있음 -e)를 사용하면 enscript는 PostScript 함수를 호출하여 bgs배경 그림자를 그리는 코드를 출력합니다. 출력 enscript과 입력 사이에서 이 기능을 수정하여 배경 상자 대신 가는 선을 그리는 ps2pdf등 특정 음영 값을 찾을 수 있습니다 .0.01

내 버전 은 다음과 같이 enscript정의됩니다 .bgs

/bgs {  % x y height blskip gray str -> -  show string with bg color
 ...
    x y blskip sub str stringwidth pop height Box

x y ... Boxsed스크립트를 사용하여 줄거리를 변경할 수 있습니다

enscript ... |
sed '
 /^\/bgs/,/^}/{
    /x y blskip sub str stringwidth pop height Box/{
      s/^/ %--% /
      a\
   /lh height .05 mul def \
   /y2 y height .2 mul add def \
   gray 0.01 eq { x y2 blskip sub str stringwidth pop lh Box /gray 0 store } \
                { x y blskip sub str stringwidth pop height Box } ifelse
    }
}' |
ps2pdf ...

쉽게 변경할 수 있는 두 부분을 추가했습니다. 선 시작은 /lh선의 두께를 높이의 일부로 정의합니다. .05선을 더 두껍게(즉, 더 두껍게) 변경합니다 . 다음 줄은 /y2밑줄을 상자 높이의 0.2배 위로 이동하는 것으로 시작합니다. 이는 이전 질문에서 수정한 내용에 해당합니다.

bggray 이스케이프 문자가 텍스트 옆에 있고 후행 공백으로 밑줄이 그어져 있지 않은지 주의해서 확인해야 합니다. 예를 들어,

enscript -fCourierBold12 -e@ -p- | ...
@bggray{0.01}underlined text@bggray{1} normal text

다음 이미지를 생성합니다. 여기에 이미지 설명을 입력하세요.

관련 정보