500KB 미만으로 축소해야하는 72.9MB PDF 파일이 있습니다.
파일은 스캔 한 JPEG 이미지이며 pdf로 변환되었습니다.
pdfopt
간단한 구문을 가지고 있으며 iPad 시대의 로딩 및 페이지 넘김 속도를 향상시킵니다. :-)
500KB 미만으로 축소해야하는 72.9MB PDF 파일이 있습니다.
파일은 스캔 한 JPEG 이미지이며 pdf로 변환되었습니다.
pdfopt
간단한 구문을 가지고 있으며 iPad 시대의 로딩 및 페이지 넘김 속도를 향상시킵니다. :-)
답변:
aking1012가 옳습니다. 임베드 된 이미지, 하이퍼 링크 등에 대한 자세한 정보가 있으면이 질문에 대한 답변이 훨씬 쉬워집니다!
다음은 몇 가지 스크립트 및 명령 줄 솔루션입니다. 적합하다고 생각되는대로 사용하십시오.
다음 고스트 스크립트 명령을 사용하십시오 .
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
-dPDFSETTINGS=/screen
품질이 낮고 크기가 작습니다. ( 72 dpi )-dPDFSETTINGS=/ebook
더 나은 품질을 위해, 그러나 약간 더 큰 pdf. ( 150 dpi )-dPDFSETTINGS=/prepress
Acrobat Distiller "Prepress Optimized"설정과 유사한 출력 ( 300 dpi )-dPDFSETTINGS=/printer
Acrobat Distiller "인쇄 최적화"설정과 유사한 출력을 선택합니다 ( 300 dpi ).-dPDFSETTINGS=/default
더 큰 출력 파일을 희생시키면서 다양한 용도에 유용한 출력을 선택합니다.screen
설정은 나를 위해 너무 낮은 품질했지만, ebook
3.6MB로 아래로 33MB 스캔 기반 PDF를 절단하고 가독성을 유지 잘했다. 옵션에 대한 다른 옵션은 milan.kupcevic.net/ghostscript-ps-pdf에-dPDFSETTINGS
나와 있으며이 답변에 포함시키는 것이 좋습니다.
내가 가장 좋아하는 방법은 pdf를 ps로 변환하고 다시 변환하는 것입니다. 항상 작동하지는 않지만 작동하면 결과가 좋습니다.
ps2pdf input.pdf output.pdf
이것은 주석에서 제안한 바와 같이 pdf에서도 직접 작동합니다.
일부 사용자는 다음과 같이 전자 북 설정 을 사용할 때 더 많은 성공을보고 합니다.
ps2pdf -dPDFSETTINGS=/ebook input.pdf output.pdf
ps2pdf intput.pdf output.pdf
당신이있는 경우 스캔 한 이미지와 PDF 파일을 , 당신이 사용할 수 convert
있는 PDF 만들기 위해 JPEG 압축을 (당신은 어떤 PDF 파일에이 방법을 사용할 수 있습니다,하지만 당신은 모든 텍스트 정보를 잃어 버릴 것이다).
예를 들면 다음과 같습니다.
convert -density 200x200 -quality 60 -compress jpeg input.pdf output.pdf
필요에 따라 밀도 (예 : 100x100) 및 품질 을 조정 하십시오.
입력 jpeg 압축 에 따라 압축 아티팩트로 인해 최선의 선택이 아닐 수 있습니다. 대체 압축 방법으로 BZip, 팩스, Group4, JPEG, JPEG2000, Lossless, LZW, RLE 또는 Zip 중에서 선택할 수 있습니다 (일부는 흑백 이미지 만 허용). 자세한 내용은 여기를 참조 하십시오 .
설정에 따라 스캔 / 사진 문서의 압축률을 크게 높일 수있었습니다. 문서 소스에 따라 색 농도 ( -depth
인수) 를 줄일 수 있습니다 .
pdfimages input.pdf pages
pbm 파일을 추출 하는 데 사용 하는 경우 다음과 같은 작업을 수행 할 수 있습니다 for page in *.pbm; do convert $page -compress Group4 -type bilevel TIFF:- | convert - output.pdf
. 모든 OCR이 손실되므로 일반적으로을 수행 pdfsandwich output.pdf
하면 파일 크기가 훨씬 줄어 듭니다.
gs
뒤에서 사용 합니다.
--density --quality --compress
vs 명령을 실행하는 옵션에 이중 대시를 사용해야했습니다 -density -quality -compress
.
-resize 50%
문서의 풀 컬러 스캔이 포함 된 PDF의 크기를 줄여야했습니다. 내 페이지 각각은 파일에 관한 한 풀 컬러 이미지였습니다. 텍스트와 이미지가 포함 된 페이지의 이미지이지만 이미지로 스캔하여 만들어졌습니다.
아래 고스트 스크립트 명령과 다른 스레드의 명령을 조합하여 사용했습니다.
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true \
-dColorImageResolution=150 -dNOPAUSE -dBATCH -sOutputFile=output.pdf input.pdf
이렇게하면 이미지 해상도가 150dpi로 줄어들어 파일 크기가 반으로 줄었습니다. 문서를 살펴보면 이미지 품질이 거의 눈에 띄지 않았습니다. 내 2012 Nexus7에서 텍스트를 계속 읽을 수 있습니다.
스캔 한 PDF를 다시 작성 하는 스크립트는 다음과 같습니다 .
#!/bin/sh
gs -q -dNOPAUSE -dBATCH -dSAFER \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.3 \
-dPDFSETTINGS=/screen \
-dEmbedAllFonts=true \
-dSubsetFonts=true \
-dColorImageDownsampleType=/Bicubic \
-dColorImageResolution=72 \
-dGrayImageDownsampleType=/Bicubic \
-dGrayImageResolution=72 \
-dMonoImageDownsampleType=/Bicubic \
-dMonoImageResolution=72 \
-sOutputFile=out.pdf \
$1
재사용 성을 높이기 위해 약간 사용자 정의 할 수 있지만 하나의 pdf 만 있으면 $1
pdf 파일 이름으로 바꾸고 터미널에 넣을 수 있습니다 .
나는 일반적으로 ps2pdf를 사용하여 다음과 같이 (더 쉬운 구문)을 수행합니다
ps2pdf -dPDFSETTINGS=/ebook BiggerPdf SmallerPDF
다음 파이썬 스크립트를 사용하여 프로덕션 서버 (8.04)의 디렉토리에있는 모든 pdf 파일의 크기를 줄입니다. 그래서 작동해야합니다.
#!/usr/bin/python
import os
for fich in os.listdir('.'):
if fich[-3:]=="pdf":
os.system("ps2pdf -dPDFSETTINGS=/ebook %s reduc/%s" % (fich,fich))
나를 위해 최고였다
convert -compress Zip -density 150x150 input.pdf output.pdf
다른 방법들:
#### gs
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf $INPUTFILE
### pdf2ps && ps2pdf
pdf2ps input.pdf output.ps && ps2pdf output.ps output.pdf
### Webservice
http://compress.smallpdf.com/de
문안 인사
pdf2ps input.pdf temp.ps && ps2pdf14 temp.ps output.pdf && rm temp.ps
방금이 문제가 발생했습니다. 단순 스캔을 사용하는 경우 저해상도 스캔을 위해 텍스트 모드를 선택하면 명령 줄에 대해 걱정할 필요가 없습니다. 그냥 말하면
압축 품질을 제어하십시오.
#!/bin/sh
INPUT=$1; shift
OUTPUT=$1; shift
GS_BIN=/usr/bin/gs
QFACTOR="0.40"
# Image Compression Quality
#
# Quality HSamples VSamples QFactor
# Minimum [2 1 1 2] [2 1 1 2] 2.40
# Low [2 1 1 2] [2 1 1 2] 1.30
# Medium [2 1 1 2] [2 1 1 2] 0.76
# High [1 1 1 1] [1 1 1 1] 0.40
# Maximum [1 1 1 1] [1 1 1 1] 0.15
${GS_BIN} -dBATCH -dSAFER -DNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=${OUTPUT} -c "<< /ColorImageDict << /QFactor ${QFACTOR} /Blend 1 /HSample [1 1 1 1] /VSample [1 1 1 1] >> >> setdistillerparams" -f ${INPUT}
shift
. 첫 번째 매개 변수는 입력 파일이고, 두 번째 매개 변수는 출력 파일이며 나머지 매개 변수는 그대로 전달됩니다 gs
.
Google에서 검색 할 때이 링크가 처음 이었으므로 한 가지 가능성을 더 추가 할 것이라고 생각했습니다. 위의 솔루션 중 Inkscape (15 mb)에서 내 보낸 PDF에서 나에게 도움이되지는 않았지만 김프에서 열고 pdf로 다시 내 보내면 1 mb로 축소 할 수 없었습니다.
가까운 또 다른 옵션 (그러나 텍스트가 약간 애매했습니다)은 ImageMagick의 변환 유틸리티였습니다.
convert -compress Zip input.pdf output.pdf
convert -compress Zip
모든 벡터를 래스터 화하는 것처럼 보였습니다.
결국 나는 이것을 해결하기 위해 내 자신의 bash 스크립트를 썼다 mogrify
. convert
그리고 그것을 사용 하고 gs
pdf 페이지를 png로 추출 하고 , 크기를 조정하고, 1 비트 bmp로 변환 한 다음 pdf로 다시 작성하십시오. 파일 크기 감소는 90 %를 초과 할 수 있습니다. http://www.timedicer.co.uk/programs/help/pdf-compress.sh.php 에서 제공됩니다 .
pdfsizeopt를 강력히 권장 합니다 .
내가 시도 그 이전 CLI 및 GUI 소프트웨어의보다 크기가 감소 (포함의 측면에서 훨씬 더 효율적이다 convert
, gs
, pdftk
비록 가능성이 느린와 -, 등) pngout
활성화 -, 그 문제의 일부 (더 크게이 없습니다 픽셀 화 된 / 저하 된 이미지, 북마크 손실 등).
이제 결과가 읽을 수없는 수준으로 저하되는 등의 결과에 관계없이 특정 크기를 달성해야하는 경우, 필요한 도구는 아니지만 항상 작동하는 솔루션으로 불필요한 큰 크기를 줄입니다. 가독성, 정보 및 수용 가능한 이미지 품질을 잃지 않고 PDF에서 가장 좋은 옵션이라고 생각합니다. (참고 : 일부 스캔 한 텍스트 문서에 큰 크기의 영향을 줄 수있는 Adobe Acrobat (이전에는 "CleanScan"이라고하는 기능)에서 벡터화 OCR을 수행 한 후에 사용하는 경향이 있습니다.)
나는 일반적인 유닉스 설치를 추천한다 :
필요한 모든 종속성을 설치하십시오.
실행 파일을 다운로드하여 설치하십시오.
curl -L -o https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
cp pdfsizeopt.single /usr/local/bin/pdfsizeopt
용법:
pdfsizeopt original.pdf [compressed.pdf]
이 게시물을 찾는 Mac 사용자 (또는 Linuxbrew 사용자)를 위한 참고 사항 : Homebrew 설치 공식이 있습니다.
brew install --HEAD pts/utils/pdfsizeopt
나는 같은 문제에 직면하고 있었고이 실을 발견하게되어 기뻤습니다. 특히 스캔 한 이미지에서 pdf 파일을 생성했으며 바이트 크기를 6 배로 줄여야했습니다.
불행히도, 위의 해결책 중 어느 것도 효과가 없었습니다. 그러나 pdf의 크기는
identify -verbose doc_orig.pdf | grep "Print size"
Print size: 35.4167x48.7222
필자는 결과적으로 하나의 압축 단계와 크기 조정을 모두 수행 한 "convert"명령을 사용하여 원하는 결과를 얻었습니다.
convert -density 135x135 -quality 70 -compress jpeg -resize 22.588% doc_orig.pdf doc_lowres.pdf
doc_orig의 밀도는 72x72dpi입니다.
djvu로 변환해도 문제가없고 색상이 포함되지 않으면 다음을 시도해보십시오.
를 사용하여 pdf를 jpg 파일로 변환 pdfimages -j
대신 pbm 파일을 얻는 경우 중간 단계를 수행해야합니다.
for FILENAME in $(ls *.pbm); do convert $FILENAME ${FILENAME%.*}.jpg ;done
convert 명령은 imagemagick 패키지에 있습니다.
그런 다음 scantailor 를 사용 하여 tif를 제거하십시오.
마지막 단계에서는 tif가있는 direcory 를 스캔 하여 djvubind 를 해당 디렉토리에 적용 합니다.
이렇게하면 텍스트 품질이 크게 저하되지 않으면 서 파일 크기가 크게 줄어 듭니다. ocr-backend를보다 세밀하게 제어 djvubind --no-ocr
하려면 나중에 ocrodjvu를 사용하여 ocr 레이어를 추가 할 수 있습니다 .
문서에 색상이 있으면 조금 더 복잡해집니다. 대신에 djvubind 당신은 사용할 수 didjvu을 하고 scantailor에 당신은 혼합 모드로 변경하고 수동으로 때로는 컬러 이미지를 선택해야합니다.
슈퍼 간단한 PDF 압축 도구 : GitHub 페이지.
우분투 설치 :
sudo add-apt-repository ppa:jfswitz/released
sudo apt-get update
sudo apt-get install pdf-compressor
고스트 스크립트를 사용합니다.
당신은 이것을 시도 할 수 있습니다 :
$ time pdftk myFile.pdf output myFile__SMALLER.pdf compress
GC Warning: Repeated allocation of very large block (appr. size 16764928):
May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 8384512):
May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 11837440):
May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 8384512):
May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 33525760):
May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 7254016):
May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 34041856):
May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 33525760):
May lead to memory leak and poor performance.
real 0m23.677s
user 0m23.142s
sys 0m0.540s
$ du myFile*.pdf
108M myFile.pdf
74M myFile__SMALLER.pdf
gs
이 경우 107.5MiB 입력 파일의 경우 보다 빠르지 만 최대 30 %까지 압축합니다.
나에게 gs screen
옵션이 너무 나빴고 ebook
너무 큰 옵션이었습니다 .
원본 문서에는 페이지에 따라 컬러 및 흑백 이미지로 텍스트가 포함되어 있습니다.
내가 찾은 가장 좋은 해결책은 다음과 같습니다.
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true -dDownsampleGrayImages=true -dDownsampleMonoImages=true -dColorImageResolution=130 -dGrayImageResolution=130 -dMonoImageResolution=130 -r130 -dNOPAUSE -dBATCH -sOutputFile=output_lr.pdf input.pdf
압축 수준은 선형이 아닙니다. 135를 지정하면 압축되지 않았으므로 130은 압축을 달성하는 최대 해상도 인 것으로 나타났습니다.
아래 명령을 사용했지만 pdf 파일을 크게 압축하지 않았습니다. 압축 후 부분의 일부가 검게 변하는 경우가 있습니다.
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf $INPUTFILE
"ps2pdf -dPDFSETTINGS=/ebook %s %s" % (input_file_path, out_file_path)
웹을 너무 많이 방황 한 후 올바른 압축 라이브러리를 찾을 수 없었습니다. 나는 건너왔다 pdfcompressor.com
. 이것은 멋진 웹 사이트입니다. pdf를 95 % (15Mb 파일) 압축합니다. 그래서 나는 셀레늄과 Tor를 사용하여 압축을 자동화했습니다. 내 Github Repository를 확인하십시오. [GITHUB] ( https://github.com/gugli28/PdfCompressor )