페이지당 4페이지인 PDF를 페이지당 1페이지인 문서로 복원/실행 취소하려고 합니다.
취소하려는 이유는 인쇄된 문서를 거의 읽을 수 없기 때문입니다. 원본 파일은 있는 그대로 제공되었으며 편한 형식으로 인쇄할 생각은 없습니다.
"PDF 유인물" 및 "PDF 다중 페이지"를 검색하여 찾은 거의 모든 주제는 여러 페이지를 단일 시트로 정리하는 기능을 제공합니다. 저는 정반대의 방법으로 하려고 합니다.
시트는 다음과 같이 배열됩니다.
+----------------+
| Page 1 Page 2 |
| Page 3 Page 4 |
+----------------+
나는 그것들을 다음과 같이 바꾸고 싶습니다 :
+--------+
| Page 1 |
+--------+
| Page 2 |
+--------+
| Page 3 |
+--------+
| Page 4 |
+--------+
어떤 아이디어나 제안이 있나요?
귀하의 도움에 감사드립니다 :-)
답변1
드디어 이전글을 찾았네요(감사합니다크리스 힐) 다음 스크립트를 작성하는 데 도움이 되었습니다. 이것은 내 질문에 대한 답변입니다 :-)
#!/bin/bash
#
# Usage ./<script name>.sh <source file>.pdf
#
# Slices each page from the <source> into 4 pages; then,
# Reassemble the slices into output.pdf; and, finally,
# Clean up the mess
#
echo "Working directory creation ..."
mkdir -p tmp
echo "... done!"
echo
# Split source into multiple files
echo "Splitting source ..."
cd tmp
pdftk "$1" burst
echo "... done!"
echo
# Slice each page into multiple files
echo "Reading doc_data.txt ..."
pw=`cat doc_data.txt | grep PageMediaDimensions | head -1 | awk '{print int($2)}'`
ph=`cat doc_data.txt | grep PageMediaDimensions | head -1 | awk '{print int($3)}'`
w2=$(( pw / 2 ))
h2=$(( ph / 2 ))
w2px=$(( w2*10 ))
h2px=$(( h2*10 ))
echo "... done!"
echo
for f in pg_[0-9]*.pdf ; do
echo "Slicing file: ${f} ..."
# Name outputs so that they can be reassembled in order
ulf="$( echo "$f" | cut -f 1 -d '.')_1.pdf"
urf="$( echo "$f" | cut -f 1 -d '.')_2.pdf"
dlf="$( echo "$f" | cut -f 1 -d '.')_3.pdf"
drf="$( echo "$f" | cut -f 1 -d '.')_4.pdf"
# Up-Left page
echo "... into page ${ulf}"
gs -o ${ulf} -sDEVICE=pdfwrite -g${w2px}x${h2px} -c "<</PageOffset [0 -${h2}]>> setpagedevice" -f ${f}
# Up-Right page
echo "... into page ${urf}"
gs -o ${urf} -sDEVICE=pdfwrite -g${w2px}x${h2px} -c "<</PageOffset [-${w2} -${h2}]>> setpagedevice" -f ${f}
# Down-Left page
echo "... into page ${dlf}"
gs -o ${dlf} -sDEVICE=pdfwrite -g${w2px}x${h2px} -c "<</PageOffset [0 0]>> setpagedevice" -f ${f}
# Down-Right page
echo "... into page ${drf}"
gs -o ${drf} -sDEVICE=pdfwrite -g${w2px}x${h2px} -c "<</PageOffset [-${w2} 0]>> setpagedevice" -f ${f}
echo "... done!"
echo
done
# Merging sliced page into a single PDF file
echo "Reassembling the PDF file ..."
ls -1 pg_[0-9]*_[1-4].pdf > fl
pdftk $( cat fl ) cat output output.pdf
echo "... done!"
echo
# Cleaning up
echo "Cleaning up ..."
mv output.pdf ..
cd ..
rm -fr tmp
echo "... done!"
echo
echo "It's all done ... you lucky man!"