내가 사용 pdftk를 다음 명령 줄을 사용하여 PDF 파일을 압축
pdftk file1.pdf output file2.pdf compress
내 파일의 무게가 감소함에 따라 작동합니다.
압축을 변경하는 [옵션]이 있습니까 ???
아니면 내 파일을 압축하는 다른 솔루션일까요? 일부 그래픽에는 포인트 가 많기 때문에 무겁습니다 . 예를 들어 이러한 그래프를 jpg로 변환하고 압축을 적용하는 방법이 있습니까?
내가 사용 pdftk를 다음 명령 줄을 사용하여 PDF 파일을 압축
pdftk file1.pdf output file2.pdf compress
내 파일의 무게가 감소함에 따라 작동합니다.
압축을 변경하는 [옵션]이 있습니까 ???
아니면 내 파일을 압축하는 다른 솔루션일까요? 일부 그래픽에는 포인트 가 많기 때문에 무겁습니다 . 예를 들어 이러한 그래프를 jpg로 변환하고 압축을 적용하는 방법이 있습니까?
답변:
나는 같은 문제가 있었고 두 가지 다른 해결책을 찾았습니다 ( 자세한 내용 은이 스레드 참조). 둘 다 압축되지 않은 PDF의 크기를 크게 줄였습니다.
픽셀 화 (손실) :
convert input.pdf -compress Zip output.pdf
픽셀 화되지 않음 (무손실이지만 약간 다르게 표시 될 수 있음) :
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH -dQUIET -sOutputFile=output.pdf input.pdf
편집 : 불쾌한 gs 명령을 피하는 다른 옵션 (무손실 압축)을 발견했습니다. qpdf 는 PDF (압축 / 압축 해제, 암호화 / 복호화)를 변환하는 깔끔한 도구이며 gs 명령보다 훨씬 빠릅니다.
qpdf --linearize input.pdf output.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
gs
대답 의 명령은 포함 된 JPG의 해상도와 품질을 낮추기 때문에 정확히 무손실이 아닙니다. 그러나 그것은 무손실 re입니다. 텍스트로 유지하면서 convert
명령은 래스터 그래픽으로 변환합니다.
-dPDFSETTINGS=
을로 설정 /ebook
하면 매우 멋진 출력 을 얻을 수 있습니다. 물론 압축되어 있고 일부 jpg 아티팩트가 표시되지만 합리적인 크기로 완전히 읽을 수 있습니다. 감사!
이 절차는 꽤 잘 작동합니다
pdf2ps large.pdf very_large.ps
ps2pdf very_large.ps small.pdf
시도 해봐.
tiff2pdf
Zip / Deflate로 압축을 사용하여 PackBits 압축을 사용하여 400ppi tiff (대부분 8 비트, 24 비트)로 만든 PDF를 압축하려고 합니다. 이러한 모든 방법에 대해 한 가지 문제가있었습니다. 위의 방법 중 어느 것도 Acrobat Pro X에서 수작업으로 수작업으로 만든 책갈피 목차를 보존하지 못했습니다 .에 대한 권장 ebook
설정 도 아닙니다 gs
. 물론, TOC를 그대로 유지 한 상태로 원본의 복사본을 열고 작업을 수행 할 수는 Replace pages
있지만 안타깝게도 이러한 방법 중 어느 것도 시작하기에 만족스러운 작업을 수행하지 못했습니다. 크기를 너무 줄여서 품질이 용납 할 수 없을 정도로 픽셀 화되었거나, 크기를 전혀 줄이지 않았고, 품질 손실에도 불구하고 실제로 크기를 늘 렸습니다.
pdftk compress
:
no change in size
bookmarks TOC are gone
gs screen
:
takes a ridiculously long time and 100% CPU
errors:
sfopen: gs_parse_file_name failed. ?
| ./base/gsicc_manage.c:1651: gsicc_set_device_profile(): cannot find device profile
74.8MB-->10.2MB hideously pixellated
bookmarks TOC are gone
gs printer
:
takes a ridiculously long time and 100% CPU
no errors
74.8MB-->66.1MB
light blue background on pages 1-4
bookmarks TOC are gone
gs ebook
:
errors:
sfopen: gs_parse_file_name failed.
./base/gsicc_manage.c:1050: gsicc_open_search(): Could not find default_rgb.ic
| ./base/gsicc_manage.c:1651: gsicc_set_device_profile(): cannot find device profile
74.8MB-->32.2MB
badly pixellated
bookmarks TOC are gone
qpdf --linearize
:
very fast, a few seconds
no size change
bookmarks TOC are gone
pdf2ps
:
took very long time
output_pdf2ps.ps 74.8MB-->331.6MB
ps2pdf
:
pretty fast
74.8MB-->79MB
very slightly degraded with sl. bluish background
bookmarks TOC are gone
파일 크기가 여전히 너무 큰 경우 ps2pdf를 사용하여 생성 된 pdf 파일의 해상도를 낮추는 데 도움이 될 수 있습니다.
pdf2ps input.pdf tmp.ps
ps2pdf -dPDFSETTINGS=/screen -dDownsampleColorImages=true -dColorImageResolution=200 -dColorImageDownsampleType=/Bicubic tmp.ps output.pdf
-dColorImageResolution 옵션 의 값을 조정 하여 필요에 맞는 결과를 얻습니다 (값은 DPI 단위의 이미지 해상도를 설명 함). 입력 파일이 회색조 인 경우 회색을 통해 색상 을 바꾸 거나 위 명령에서 두 옵션을 모두 사용하는 것도 도움이 될 수 있습니다. -dPDFSETTINGS 옵션을 / default 또는 / printer 로 변경하여 추가 미세 조정이 가능합니다 . 가능한 모든 옵션에 대한 설명은 ps2pdf 설명서를 참조하십시오 .
nullglob이 제안한 대로 gpdf를 시도한 후 cups-pdf 프린터를 사용하여 동일한 압축 결과 (~ 900mb 파일 ~ 30mb까지)를 얻었습니다. 이미 문서를보고 있고 하나 또는 두 개의 문서 만 압축해야하는 경우이 방법이 더 쉬울 수 있습니다.
Ubuntu 12.04에서는 다음과 같이 설치할 수 있습니다.
sudo apt-get install cups-pdf
설치 후 시스템 도구 > 관리 > 인쇄 > 'PDF'를 마우스 오른쪽 버튼으로 클릭하고 '사용'으로 설정하십시오.
기본적으로 출력은 홈 디렉토리의 PDF 폴더에 저장됩니다 .
한 줄 pdf2ps 옵션 (Lee)은 실제로 pdf 크기를 늘 렸습니다. 그러나 두 단계가 더 좋았습니다. &에서 표준 입력 / 출력 및 파이프로의 리디렉션을 사용하여 단일 항목으로 결합 할 수 있습니다.
pdf2ps large.pdf-| ps2pdf-small.pdf
xsane에서 생성 한 PDF를 18 Mo에서 630 ko로 줄였습니다!
링크가 손실되지만 현재 예제에서는 문제가되지 않으며 원하는 결과를 얻는 가장 쉬운 방법이었습니다.
pdf2ps large.pdf small.pdf
두 단계 대신 충분합니다.
pdf2ps large.pdf very_large.ps
ps2pdf very_large.ps small.pdf
그러나 ps2pdf large.pdf small.pdf
더 나은 선택입니다.
ps2pdf
훨씬 빠르다pdf2ps
때때로 더 큰 파일이 생성됩니다.out.pdf
, 그것은 PS 파일이되었다 ( mimetype out.pdf
말한다 out.pdf: application/postscript
).
mimetype small.pdf
있습니까?
mimetype small.pdf
입니다 small.pdf: application/pdf
. 접미사에 따라 자동으로 파일 유형을 결정할 수 있다고 생각합니다.
ps2pdf
더 나은.
qpdf를 사용하여 파일 크기가 크게 줄어들지 않았습니다. 내가 찾은 가장 좋은 방법은 pdftk가 완료된 후 ghostscript를 사용하여 pdf를 포스트 스크립트로 변환 한 다음 다시 pdf로 변환하는 것입니다. PHP에서는 exec를 사용합니다.
$ps = $save_path.'/psfile.ps';
exec('ps2ps2 ' . $pdf . ' ' . $ps);
unlink($pdf);
exec('ps2pdf ' .$ps . ' ' . $pdf);
unlink($ps);
몇 분 전에 이것을 사용하여 490k에서 71k로 pdftk 출력을 가져 왔습니다.
나는 같은 문제가 있었고이 기능을 사용하여 개별 페이지를 압축하여 파일 크기가 원래 크기의 최대 1/3까지 압축되었습니다.
for (int i = 1; i <= theDoc.PageCount; i++)
{
theDoc.PageNumber = i;
theDoc.Flatten();
}
선택 가능한 텍스트가 많이 포함 된 PDF를 압축하려는 경우 Windows에서 NicePDF Compressor를 사용할 수 있습니다 . "Flate"옵션을 선택하십시오. 모든 것을 시도한 후 (cpdf, pdftk, gs) 마침내 1360 페이지 PDF를 500MB에서 10MB로 압축하는 데 도움이되었습니다.