사용pdftk다음 명령을 사용하여 PDF에서 페이지 범위를 추출할 수 있습니다.
pdftk a.pdf cat 124-end output b.pdf dont_ask
약 500페이지, 100MB가 넘는 거대한 PDF가 여러 개 있습니다. 자동으로 최대 5MB의 청크로 분할할 수 있습니까?
답변1
나는이 Python 스크립트를 찾았습니다.smpdf이 기능으로. 스크립트는 (일부) 독일어로 작성되었지만, 그것이 수행하는 작업과 사용 방법을 쉽게 파악할 수 있습니다. 이 필요pypdf.
설치 및 설정
먼저 스크립트를 다운로드합니다.
svn checkout http://smpdf.googlecode.com/svn/trunk/ smpdf
그런 다음 PyPdf를 다운로드하여 설치하십시오.
wget http://pybrary.net/pyPdf/pyPdf-1.13.tar.gz
tar zxvf pyPdf-1.13.tar.gz
cd pyPdf-1.13
sudo python setup.py install
cd ../smpdf
다음으로 다음에서 PDF 샘플 파일을 다운로드했습니다.example5.com. 구체적으로 이문서.
smpdf 사용법:
[ERROR] Ung�ltiger Aufruf
===========================================================================
PDF Manipulator
(c) 2007 by Franz Buchinger
---------------------------------------------------------------------------
Verwendung:
pdfm split 5 file.pdf Datei file.pdf in PDFs mit jeweils 5 Seiten splitten
pdfm chunk 3 file.pdf Datei file.pdf in max. 3 MB grosse PDFs splitten
pdfm burst file.pdf Jede Einzelseite in file.pdf in ein PDF schreiben
pdfm merge f1.pdf f2.pdf f1.pdf und f2.pdf in ein PDF mergen
pdfm merge output.pdf dir mergt alle PDFs im Verzeichnis dir in die Datei output.pdf
pdfm info f1.pdf zeigt Dokumentinformationen (Groesse, Seitenzahl, Titel,..) zu f1.pdf an
우리가 다운로드한 샘플 파일은 다음과 같습니다.
$ pdfinfo chickering04a.pdf
Title: chickering04a.dvi
Creator: dvips(k) 5.94a Copyright 2003 Radical Eye Software
Producer: AFPL Ghostscript 8.0
CreationDate: Fri Oct 8 17:53:18 2004
ModDate: Fri Oct 8 17:53:18 2004
Tagged: no
Pages: 44
Encrypted: no
Page size: 612 x 792 pts (letter)
File size: 386372 bytes
Optimized: no
PDF version: 1.3
따라서 샘플 파일은 44페이지로 구성되며 크기는 386KB입니다. 다음 명령을 사용하면 PDF를 ~0.1MB(~100KB) 청크 파일로 분할할 수 있습니다.
python pdfsm.py chunk 0.1 chickering04a.pdf
다음과 같은 출력이 생성됩니다.
======== NEUES PDF ========
Seite:0, Groesse: 12696
Seite:1, Groesse: 11515
Seite:2, Groesse: 17209
Seite:3, Groesse: 17411
Seite:4, Groesse: 17060
Seite:5, Groesse: 26303
======== NEUES PDF ========
Seite:9, Groesse: 31014
Seite:10, Groesse: 27666
Seite:11, Groesse: 18548
...
...
======== NEUES PDF ========
Seite:40, Groesse: 19059
Seite:41, Groesse: 20912
Seite:42, Groesse: 17685
Seite:43, Groesse: 5362
이제 우리 디렉터리에는 다음 파일이 포함되어 있습니다.
$ ls -l
total 1220
-rw-rw-r-- 1 saml saml 74471 May 12 09:23 chickering04a-chunk001.pdf
-rw-rw-r-- 1 saml saml 78673 May 12 09:23 chickering04a-chunk002.pdf
-rw-rw-r-- 1 saml saml 89259 May 12 09:23 chickering04a-chunk003.pdf
-rw-rw-r-- 1 saml saml 92569 May 12 09:23 chickering04a-chunk004.pdf
-rw-rw-r-- 1 saml saml 96953 May 12 09:23 chickering04a-chunk005.pdf
-rw-rw-r-- 1 saml saml 86390 May 12 09:23 chickering04a-chunk006.pdf
-rw-rw-r-- 1 saml saml 90815 May 12 09:23 chickering04a-chunk007.pdf
-rw-rw-r-- 1 saml saml 92094 May 12 09:23 chickering04a-chunk008.pdf
-rw-rw-r-- 1 saml saml 78909 May 12 09:23 chickering04a-chunk009.pdf
-rw-rw-r-- 1 saml saml 386372 May 12 08:30 chickering04a.pdf
-rwxrwxr-x 1 saml saml 9324 May 12 07:41 pdfsm.py
drwxr-xr-x 4 saml saml 4096 May 12 08:25 pyPdf-1.13
-rw-rw-r-- 1 saml saml 35699 May 12 08:24 pyPdf-1.13.tar.gz
생성된 PDF 파일의 통계를 표시하기 위해 이 "해킹" 명령을 사용합니다.
$ printf "%7s%6s\n" "# pages" "size"; for i in chickering04a-chunk00*; do pdfinfo $i | egrep "File size|Pages"|cut -d":" -f2;done|sed 's/[\t ]\+/ /'|paste - -
# pages size
5 74471 bytes
3 78673 bytes
3 89259 bytes
5 92569 bytes
4 96953 bytes
3 86390 bytes
5 90815 bytes
6 92094 bytes
5 78909 bytes
답변2
pdftk
그러한 옵션은 없습니다. 그러나 전체 파일을 단일 페이지로 나누고 5Mb를 초과할 때까지 페이지를 결합할 수 있습니다.
단일 페이지 PDF는 결합된 PDF에 비해 약간의 오버헤드가 발생하므로(5Mb를 초과하기 전에 한 페이지가 더 많아질 수 있는 블록이 생성됨) 약간의 오류 여유가 있습니다. 그러나 파일당 평균 0.2M 정도는 허용될 수 있습니다.
tiff→djvu 변환에는 크기 제한이 있기 때문에 스캔한 페이지를 TIFF 파일로 병합할 때 이를 수행하는 프로그램(Python)이 있습니다.
답변3
위에서 언급했듯이 pdftk는 이러한 옵션을 제공하지 않지만 PDFSam은 다음을 제공하는 것으로 보입니다.
크기별 분할 모듈을 사용하면 PDFsam Basic에 PDF 파일을 지정된 크기의 더 작은 파일로 분할하도록 지시할 수 있습니다. 예를 들어, 10Mb PDF를 각각 크기가 4Mb, 4Mb, 2Mb인 3개의 파일로 분할합니다. PDF 파일의 특성상 항상 정확한 결과를 얻을 수 있는 것은 아닙니다.
원래 질문에는 레이블로 "명령줄"이 있으므로 도구의 실제 정확한 이름은 insteaf입니다 sejda-console
(PDFSam UI의 백엔드).