
수백 페이지가 포함된 대용량 PDF 파일이 있습니다. 모든N페이지에는 동일한 특정 단어와 동일한 이미지가 포함되어 있습니다. 나는 이것을 다음과 같이 부를 것이다."특수 페이지".
이들의 입장특별 페이지예측할 수 없습니다. 즉, 내 PDF에는 예를 들어 5개의 일반 페이지가 있고 6페이지는특별 페이지그런 다음 일반 페이지 2개, 다시 한 페이지특별 페이지, 12 일반, 2특별 페이지, 기타 등등
모든 일반 페이지가 내 프린터의 용지함 1에 인쇄되도록 이러한 PDF 파일의 인쇄를 자동화하는 방법이 필요합니다.특별 페이지용지함 2에 넣습니다(일반용으로는 특정 용지가 필요하고 일반용으로는 다른 용지가 필요하기 때문입니다).특별 페이지).
전체 PDF 파일을 한 번에 인쇄하고 경로를 지정하는 방법이 있는지 아는 사람이 있습니까?특별 페이지특정 프린터 트레이에 기반
- 포함된 특정 단어에 대한 텍스트 검색
- 아니면 이미지가 있다는 사실
- 또는 페이지의 색상 수(특별 페이지이미지에는 다른 페이지보다 더 많은 색상이 포함되어 있습니다)
정기적으로(한 달에 한 번) 이 작업을 수행해야 합니다.
나는 어떤 제안이라도 환영합니다. 특정 소프트웨어, Powershell 또는 기타 프로그래밍 언어. 어떤 아이디어가 있나요?
오픈 소스 솔루션이 가장 좋습니다. Windows, Mac 또는 Linux는 모두 실행 가능한 옵션입니다.
나는 지금까지 한 가지 해결책을 찾았습니다.리코 프린트&쉐어하지만 5년 유지 관리가 포함된 단일 라이센스는 약 USD 2500입니다. 더 저렴하거나 오픈 소스 솔루션을 찾는 것이 좋을 것입니다.
답변1
확인해 보세요.QPDFPDF 파일을 조작하는 오픈 소스 도구입니다. 이를 사용하면 파일을 페이지로 분할하고, 특정 페이지를 분리한 다음, 별도의 파일을 특정 프린터로 보내기 전에 해당 페이지를 다시 결합할 수 있습니다. 또는 특정 속성(예: 이미지가 포함된 경우)이나 파일 또는 페이지 길이 등에 따라 페이지를 격리할 수 있습니다. 또한 파일 특성에 대한 JSON 표현을 생성하여 다음을 기준으로 파일을 분할하는 알고리즘을 구축할 수 있습니다. 다른 프로그램을 사용하면 이러한 특성을 알 수 있습니다.
이 도구는 Windows 또는 Linux 시스템에서 실행될 수 있습니다.
내 제안에 대한 @MrUpsidown의 의견에 대한 응답으로 여기에 입력 파일을 가져와 각 페이지의 크기(바이트)를 평가하기 위해 일시적으로 분할하는 예제 셸 스크립트를 제공합니다. 분할된 페이지는 큰 "특수 페이지"와 작은 "일반 페이지"의 페이지 목록을 생성하는 데 사용되며 그런 다음 컵 lpr 명령을 생성하여 해당 페이지를 프린터로 보냅니다. 각 페이지에서 텍스트 문자열(예: pdftotext 사용)이나 기타 고유한 속성을 검사하도록 스크립트를 수정할 수 있습니다. 어쨌든 목록 중 하나는 트레이 상단으로, 다른 하나는 트레이 하단으로 전송됩니다. 그런 다음 자체적으로 정리됩니다. 귀하의 요구 사항을 충족시키기 위해 스크립트를 조정하고 프로덕션 용도로 강화해야 하지만 제가 제안한 기본 방법의 개요를 설명해야 한다고 생각합니다.
Linux 시스템(또는 Mac)에 qpdf를 설치한 후 파일을 생성하여("splitpages"라고 함) 스크립트를 실행한 다음 를 통해 실행 가능하게 만든 다음 를 chmod 755
호출하여 스크립트를 실행합니다 splitpages filename.pdf
. 현재는 스크립트에서 "echo"를 "eval"로 대체하여 활성화할 수 있는 명령만 인쇄합니다. Samplefile.pdf에 4페이지(3개는 일반, 4번째는 특수)가 있는 스크립트를 실행하는 예는 다음
splitpages samplefile.pdf
문자열을 인쇄하는 것입니다.
lpr -o media=Upper -o page-ranges=1,2,3, samplefile.pdf
lpr -o media=Lower -o page-ranges=4, samplefile.pdf
물론 다른 것들은 필요에 맞게 조정해야 합니다.
#!/bin/bash
# print pages based on page size
# greater than minimumsize goes to tray1
# else goes to tray2
minimumsize=500000
infile=$1
if [ ! -f "$infile" ]; then
echo "no input file"
exit
fi
# location of temporary files used to identify page characteristics
outfile=/tmp/test
rm -f ${outfile}*
# split the file so we can assess lengths
qpdf $infile --split-pages $outfile
pnum=0
bigpage=
smallpage=
for page in ${outfile}*
do
((pnum++))
actualsize=$(wc -c <"$page")
if [ $actualsize -ge $minimumsize ]; then
#echo size is over $minimumsize bytes
bigpage="${bigpage}${pnum},"
else
#echo size is under $minimumsize bytes
smallpage="${smallpage}${pnum},"
fi
done
# replace the echo command with the eval command to actually execute the strings
lprc1="lpr -o media=Upper -o page-ranges=$bigpage $infile"
echo $lprc1
lprc2="lpr -o media=Lower -o page-ranges=$smallpage $infile"
echo $lprc2
rm -f ${outfile}*
답변2
Adobe Acrobat Pro와 함께 AutoSplit Pro 플러그인 ($149) 가능합니다. 자세한 내용은 기사에서 확인하세요 텍스트 검색을 사용하여 PDF 문서에서 페이지 추출.
Acrobat의 JavaScript 폴더 중 하나에 설치된 문서 수준 JavaScript를 사용하고 JavaScript를 실행하는 작업을 생성하여 이를 직접 자동화할 수도 있습니다.
예를 들어 기사를 참조하십시오. 콘텐츠를 기반으로 PDF 페이지 추출.