다음을 사용하여 문자열에서 고정 크기 PDF 파일(A4)을 생성하는 작은 쉘 함수를 작성했습니다.gs
:
make_stamp() {
file=$1
string=$2
tmp=${file}-small.pdf
gs -o "$tmp" -sDEVICE=pdfwrite -g500x200 \
-c "/Helvetica findfont 12 scalefont setfont" \
-c "0 1 0 0 setcmykcolor" \
-c "0 5 moveto" \
-c "(${string}) show" \
-c "showpage"
gs -o "$file" -sDEVICE=pdfwrite -g5950x8420 \
-c "<</PageOffset [510 20]>> setpagedevice" \
-f "$tmp"
}
그러나 개선하고 싶은 몇 가지 사항이 있습니다.
- 만들 때 단색 배경을 설정하는 방법은 무엇입니까
$tmp
? - 을 만들 때
$tmp
텍스트 주위에 꼭 맞도록 크기를 자동으로 계산할 수 있습니까? 일부는pt
패딩으로 사용할 수 있습니까? - 이 함수를 한 번만 호출하도록 재정의할 수 있나요
gs
?
또는
- 직접 작동하지 않는 다른 방법이 있습니까
gs
? 임프린트 파일은 텍스트여야 하며, 렌더링된 이미지는 좋지 않습니다.
$stamp
관심 있는 분들을 위해 다음과 같은 호출에서 이 함수의 출력을 사용합니다 pdftk
.
pdftk original.pdf stamp $stamp output stamped.pdf
답변1
저는 최근 PDF "Bates-stamping" 스크립트를 작성한 법적 문제에 연루되었습니다 pdfBatesStamp.sh
.
사용법 발췌
# "Bates-stamp" a PDF file with text (only; images aren't supported). Uses
# ghostscript (ps2pdf) and pdftk.
#
# The output (Bates-stamped) file is put in the same directory, with "_BATES"
# appended to its name, thusly:
# pdfBatesStamp.sh <FILE>.pdf ==> <FILE>_BATES.pdf
#
# Usage:
# pdfBatesStamp.sh <FILE>.pdf [PREFIX(def=<FILE>)] [STARTNUM(def=1)]
# pdfBatesStamp.sh <FILE>.pdf BATESCONFIG=<bates_config_filename>
#
# The <FILE>.pdf name must end in ".pdf". You can make many more settings
# inline below (you can also set PREFIX and STARTNUM there too if you want).
# The first invocation format above is for the most common case (e.g., for legal
# use). In the second invocation format, the <bates_config_filename> file can
# contain any of the inline user-settings (below, from PREFIX to EXTRAS,
# inclusive), and they will overwrite the inline settings. In this way, you can
# write/store special config file settings for special PDFs, without needing to
# modify the inline settings each time. Runs at ~3 pages/sec.
전체 스크립트는 Pastebin에서 다운로드할 수 있습니다.pdfBatesStamp.sh.