Làm cách nào để giảm kích thước tệp của tệp PDF được quét?


372

Tôi có một tệp PDF 72,9 MB mà tôi cần thu nhỏ lại dưới 500KB.

Tệp này là hình ảnh JPEG mà tôi đã quét và sau đó được chuyển đổi thành pdf.


1
nó phụ thuộc vào những gì tiêu thụ không gian ... cần nhiều thông tin hơn. nén không gian hình ảnh có thể giúp ích, nhưng nếu bạn đang thử một tập tin heap file lớn, điều đó sẽ không hiệu quả. nghiêm túc cần thêm thông tin.
RobotHumans

1
chuyển đổi nó thành DjVu, thay vào đó cố gắng giảm xuống thành PDF có kích thước không thể (theo nguồn)
zetah

tập tin là hình ảnh jpeg mà tôi đã quét và sau đó được chuyển đổi thành pdf.
tamimym

Nó chỉ có vẻ giúp tập tin hóa một chút, nhưng pdfoptcó một cú pháp đơn giản và cải thiện tốc độ tải và chuyển trang trong kỷ nguyên iPad. :-)
Ari B. Friedman

1
PDF sang PS không hiệu quả trong tệp PDF được quét, tôi cố gắng chuyển đổi 56 MB pdf thành tệp ps nhưng tệp ps chuyển đổi thành 1,3 GB và một lần nữa ps2pdf được chuyển đổi thành tệp 45 MB

Câu trả lời:


145

aking1012 là đúng. Với nhiều thông tin liên quan đến hình ảnh nhúng có thể, siêu liên kết, v.v. sẽ dễ dàng hơn nhiều để trả lời câu hỏi này!

Dưới đây là một vài giải pháp về kịch bản và dòng lệnh. Sử dụng khi bạn thấy phù hợp.


15
Cảm ơn bạn rất nhiều vì những gợi ý của bạn, shell ghostscript đã làm việc kỳ diệu và thu nhỏ nó xuống còn
460KB

Điều đó chưa hẳn đã đúng. Nếu nội dung chuyển từ hình ảnh sang văn bản, điều đó còn hơn cả khả thi. [Đó là giả sử rằng văn bản được đánh số chính xác]
monksy

2
Tôi khuyên bạn nên sử dụng tập lệnh shrpdf.sh, bạn có thể tùy chỉnh mã để sử dụng giá trị ppi bạn muốn (72 theo mặc định) và đạt chính xác kích thước tệp bạn cần để hy sinh chất lượng thấp nhất. Điều này khiến tôi có thể tải lên một tài liệu được quét với dung lượng tối đa 11 MB. kích thước 3 MB mà không mất nhiều chất lượng.
Severo Raz

4
shrpdf hoạt động tuyệt vời!
AmanicA

2
Đâu là shell ghostscript mà OP đang đề cập đến askubfox.com/questions/113544/ trên ?
dùng13107

521

Sử dụng lệnh ghostscript sau :

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
  • -dPDFSETTINGS=/screenchất lượng thấp hơn, kích thước nhỏ hơn. ( 72 dpi )
  • -dPDFSETTINGS=/ebookcho chất lượng tốt hơn, nhưng pdf lớn hơn một chút. ( 150 dpi )
  • -dPDFSETTINGS=/prepressđầu ra tương tự như cài đặt "Prepress Optimized" của Acrobat Distiller ( 300 dpi )
  • -dPDFSETTINGS=/printerchọn đầu ra tương tự như cài đặt "Tối ưu hóa in" của Acrobat Distiller ( 300 dpi )
  • -dPDFSETTINGS=/default chọn đầu ra dự định sẽ hữu ích trong nhiều mục đích sử dụng khác nhau, có thể bằng chi phí của một tệp đầu ra lớn hơn

5
Đây phải là câu trả lời được chấp nhận. ghostscript là bản triển khai PDF, XPS và PS cho các đơn vị và về cơ bản có thể làm mọi thứ mang lại chất lượng tốt nhất ...
dom0

7
@Sina: Thực sự có Tập lệnh Nautilus với GUI dựa trên Zenity đơn giản sử dụng lệnh gs này với tất cả các tùy chọn cấp chất lượng của nó: launchpad.net/compress-pdf
Sadi

36
Đây là câu trả lời đúng cho câu hỏi này (nén pdf mà chủ yếu là dữ liệu bitmap). Tôi thấy rằng screencài đặt này có chất lượng quá thấp đối với tôi, nhưng ebookhoạt động tốt, cắt PDF dựa trên quét 33Mb xuống còn 3,6Mb và giữ cho nó rất dễ đọc. Các tùy chọn khác cho -dPDFSETTINGStùy chọn được liệt kê ở đây: milan.kupcevic.net/ghostscript-ps-pdf , và có thể nên đưa chúng vào câu trả lời này.
ness101

5
Các tham số cấu hình có sẵn của gs: ghostscript.com/doc/cản/Ps2pdf.htm
Antonios Hadjigeorgalis

3
vào ngày 17.10, nó đã tạo ra 42 mb pdf thành 127 mb :(
YaSh Chaudhary

157

Cách yêu thích của tôi để làm điều này là chuyển đổi pdf sang ps và quay lại. Tuy nhiên, không phải lúc nào nó cũng hoạt động, nhưng khi nó hoạt động thì kết quả rất tuyệt:

ps2pdf input.pdf output.pdf

Điều này cũng trực tiếp hoạt động trên pdf, như được đề xuất trong các ý kiến.

Một số người dùng cũng báo cáo thành công hơn khi sử dụng cài đặt ebook như sau:

ps2pdf -dPDFSETTINGS=/ebook input.pdf output.pdf 

4
Đây là một cách rất đơn giản và hiệu quả để làm điều đó. Tôi đã ngạc nhiên khi thấy phương pháp này nén các tập tin. Cảm ơn bạn!
Gabriel

16
Mặc dù thực tế là cách tiếp cận này đã trở thành giải pháp yêu thích của tôi để nén các tệp pdf, nhưng nó phá vỡ các liên kết url mà tài liệu có thể có (điều này không xảy ra với cách tiếp cận của @Michael D). Ngoài ra, điều tuyệt vời là tất cả những gì tôi có thể nghĩ đến khi chạy đoạn trích này! (:
Rubens

1
@Rubens À. Không biết về thực tế là nó phá vỡ các liên kết url. Cảm ơn đã thêm vào đó.
don.joey 6/12/13

3
Điều này bỏ qua việc bảo vệ mật khẩu ... chỉ cần nói '
jojo

8
ps2pdf sẽ mất file PDF như đầu vào, vì vậy bạn có thể làm điều này trong một bước:ps2pdf intput.pdf output.pdf
frabjous

127

Nếu bạn có pdf với hình ảnh được quét , bạn có thể sử dụng convertđể tạo pdf với nén jpeg (Bạn có thể sử dụng phương pháp này trên bất kỳ pdf nào, nhưng bạn sẽ mất tất cả thông tin văn bản).

Ví dụ:

convert -density 200x200 -quality 60 -compress jpeg input.pdf output.pdf

Điều chỉnh mật độ (ví dụ 100x100) và chất lượng theo nhu cầu của bạn.

Tùy thuộc vào nén jpeg đầu vào của bạn có thể không phải là lựa chọn tốt nhất do các tạo phẩm nén. Bạn có thể lựa chọn giữa BZip, Fax, Group4, JPEG, JPEG2000, Lossless, LZW, RLE hoặc Zip làm phương thức nén thay thế (một số chỉ cho phép hình ảnh b / w). Để biết chi tiết xem tại đây .

Tôi đã có thể đạt được tỷ lệ nén tuyệt vời cho các tài liệu được quét / chụp ảnh (tùy thuộc vào cài đặt). Tùy thuộc vào nguồn tài liệu, bạn có thể muốn giảm độ sâu màu ( -depthđối số).


3
Đối với một tài liệu được quét trong đó văn bản là điều bạn quan tâm hơn thì hình ảnh và độ sâu giữ nguyên không phải là vấn đề, nén jpeg không phải là một ý tưởng hay vì các tạo tác có xu hướng cực kỳ đáng chú ý. Nếu bạn sử dụng pdfimages input.pdf pagesđể giải nén các tệp pbm, thì bạn có thể làm một cái gì đó như : for page in *.pbm; do convert $page -compress Group4 -type bilevel TIFF:- | convert - output.pdf. Bất kỳ OCR nào cũng sẽ bị mất nên tôi thường làm vậy pdfsandwich output.pdf, điều này dường như làm giảm kích thước tệp hơn nữa.
Brian Z

1
@BrianZ chắc chắn nén jpeg không phải luôn luôn là lựa chọn tốt nhất, nhưng đối với tôi đó là cách tiếp cận tốt nhất cho các tài liệu loại hỗn hợp. Tôi đã thêm một số thông tin về các phương pháp nén khác vào câu trả lời.
someonr

2
Phương pháp này cuối cùng sử dụng gsđằng sau hậu trường.
alfC

2
Tôi đã phải sử dụng dấu gạch ngang đôi cho các tùy chọn để chạy lệnh --density --quality --compressvs -density -quality -compress.
Rotareti

1
Nếu qaulity hình ảnh không phải là mối quan tâm cao nhất (và bạn chỉ muốn nhận được tệp đính kèm email nguy hiểm đó đủ nhỏ để gửi), người ta cũng có thể thêm -resize 50%, thay đổi tỷ lệ phần trăm tùy thuộc vào mức độ DPI được sử dụng trong khi quét
chrki

41

Tôi cần phải thu nhỏ kích thước PDF có chứa bản quét màu đầy đủ của tài liệu. Mỗi trang của tôi là một hình ảnh đầy đủ màu sắc liên quan đến tập tin. Chúng là hình ảnh của các trang chứa văn bản và hình ảnh, nhưng chúng được tạo ra bằng cách quét vào một hình ảnh.

Tôi đã sử dụng kết hợp lệnh ghostscript dưới đây và một từ một luồng khác.

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true \
-dColorImageResolution=150 -dNOPAUSE  -dBATCH -sOutputFile=output.pdf input.pdf

Điều này làm giảm độ phân giải hình ảnh xuống 150dpi, giảm kích thước tệp của tôi xuống một nửa. Nhìn vào tài liệu, hầu như không có sự mất mát đáng chú ý nào về chất lượng hình ảnh. Văn bản vẫn hoàn toàn có thể đọc được trên Nexus7 2012 của tôi.


3
+1 để lấy mẫu hình ảnh xuống nhưng giữ văn bản dưới dạng vectơ. Tạo ra một sự khác biệt lớn ở bên mà không làm cho văn bản của tôi bị pixel.
Jason O'Neil

Thật tuyệt vời khi người ta có thể điều chỉnh độ phân giải bằng lệnh này - điều này mang lại cho tôi kết quả tốt hơn so với việc chỉ sử dụng dPDFSETTINGS = \ screen
trao đổi

29

Đây là một kịch bản để viết lại các bản pdf được quét:

#!/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

Bạn có thể tùy chỉnh nó một chút để làm cho nó có thể tái sử dụng nhiều hơn nhưng nếu bạn chỉ có một pdf, bạn chỉ có thể thay thế $1bằng tên tệp pdf của mình và bung nó trong một thiết bị đầu cuối.


1
Làm việc một điều trị, cảm ơn Oli. Bạn đã trả lời khá nhiều tất cả những gì tôi đã hỏi ở đây cho đến nay :-D
Rob Cowell

Đây là một câu trả lời tốt nhưng trong trường hợp của tôi, ít nhất phải mất rất nhiều thời gian để chuyển đổi một tệp PDF có phần lớn (> 10Mb) (hơn một phút).
Gabriel

Tôi không chắc điều gì xảy ra, nhưng tệp PDF 30 MB cho kết quả là tệp 68 MB. Thay vì giảm, nó mở rộng. Cùng một đầu ra nếu sử dụng trực tiếp ps2pdf như đã nêu trong câu trả lời tiếp theo.
Ed Villegas

@EdVillegas Điều duy nhất tôi có thể nghĩ đến (để giải thích loại tăng đó) là hình ảnh có độ phân giải thấp hơn so với hình ảnh được tạo (72dpi). Hoặc bằng cách nào đó nhúng các phông chữ đang hút tất cả các phông chữ.
Oli

21

Tôi thường sử dụng ps2pdf để làm điều này (cú pháp dễ dàng hơn), đại loại như thế này:

ps2pdf -dPDFSETTINGS=/ebook BiggerPdf SmallerPDF

Tôi sử dụng tập lệnh python sau đây để giảm kích thước của tất cả các tệp pdf trong một thư mục trong một máy chủ sản xuất (8.04). Vì vậy, nó nên làm việc.

#!/usr/bin/python

import os

for fich in os.listdir('.'):
        if fich[-3:]=="pdf":
                os.system("ps2pdf -dPDFSETTINGS=/ebook %s reduc/%s" % (fich,fich))

Cảm ơn giải pháp thay thế. Tôi đã thử Oli's trước và nó cho tôi kết quả tôi cần, nhưng tôi cũng sẽ giữ cái này để tham khảo trong tương lai.
Rob Cowell

1
-dPDFSETTINGS = / tùy chọn máy in thay đổi kích thước 50%. ebook làm thay đổi kích thước 90%.
neouyghur

17
  1. Tôi sử dụng LibreOffice Draw để mở pdf.
  2. Sau đó tôi "xuất dưới dạng pdf"
  3. Và đặt "chất lượng nén jpeg" thành 50% và "độ phân giải hình ảnh" thành 150 dpi

Điều này sẽ có một kết quả tốt.


Giải pháp tồi tệ nhất có thể cho vấn đề! Nó hoàn toàn làm hỏng tập tin của tôi!

9

Tốt nhất cho tôi là

convert -compress Zip -density 150x150 input.pdf output.pdf

Những cách khác:

#### 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

Trân trọng


Giải pháp tuyệt vời. Dễ nhớ và nó mang pdf của tôi từ 32 đến 3,5 MB mà không bị mất khả năng đọc.
Immanuel Weihnachten

Tôi thích cách thứ hai pdf2ps input.pdf temp.ps && ps2pdf14 temp.ps output.pdf && rm temp.ps
McPeppr

5

Tôi chỉ gặp phải vấn đề này bản thân mình. Nếu sử dụng quét đơn giản, hãy chọn chế độ văn bản để quét độ phân giải thấp và bạn sẽ không cần phải lo lắng về nội dung dòng lệnh. Chỉ cần nói.


1
Đây là câu trả lời duy nhất trong chủ đề này đã giải quyết vấn đề của tôi. Tôi đã hạ thấp Simplescan, nhưng đó thực sự là câu trả lời cho tôi, thay vì chiến đấu chống lại Xsane trong điều dường như là một nỗi đau đớn vô tận.
phiên bản

4

Kiểm soát chất lượng nén:

#!/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}

... vậy cả INPUT và OUTPUT đều là cùng một đối số? Bạn có thể muốn thêm hướng dẫn sử dụng.
mikewhthing

2
Lưu ý shift. Tham số đầu tiên là tệp đầu vào, thứ hai là tệp đầu ra và phần còn lại của các tham số sẽ được chuyển sang nguyên trạng gs.
Mikko Rantalainen

Tôi nghĩ rằng bạn muốn / HSample s và / VSample s , không phải / HSample và / VSample. Xem ví dụ tài liệu ps2pdf hoặc hướng dẫn tham khảo ngôn ngữ PostScript. Cũng có thể đáng lưu ý rằng phạm vi QFactor được phép là 0 đến 1.000.000 và các giá trị thấp hơn tạo ra chất lượng cao hơn.
Pont

3

Vì liên kết này là lần đầu tiên đối với tôi khi tôi tìm kiếm trong Google, tôi nghĩ rằng tôi sẽ thêm một khả năng nữa. Không có giải pháp nào ở trên hoạt động với tôi trên pdf được xuất từ ​​Inkscape (15 mb), nhưng cuối cùng tôi đã có thể thu nhỏ nó xuống còn 1 mb bằng cách mở nó trong GIMP và xuất lại dưới dạng pdf.

Một tùy chọn khác đã đến gần (nhưng văn bản hơi mờ) là tiện ích chuyển đổi của ImageMagick:

convert -compress Zip input.pdf output.pdf

Tôi đoán đây là những gì bạn có nghĩa là "hơi mờ", nhưng chỉ để làm rõ, convert -compress Zipxuất hiện để rasterise tất cả các vectơ.
Sparhawk

3

Cuối cùng tôi đã viết kịch bản bash của riêng tôi để giải quyết việc này, nó sử dụng mogrify, convertgstrích xuất các trang pdf như png, thay đổi kích thước chúng, chuyển chúng tới 1-bit bmp và sau đó xây dựng lại chúng như pdf. Giảm kích thước tập tin có thể hơn 90%. Có sẵn tại địa chỉ http://www.timedicer.co.uk/programs/help/pdf-compress.sh.php .


3

Tôi thực sự khuyên bạn nên pdfsizeopt .

Đó là hiệu quả hơn về mặt giảm kích thước so với bất kỳ CLI và giao diện phần mềm trước đó tôi đã cố gắng (bao gồm convert, gs, pdftk, vv) - mặc dù có thể chậm hơn với pngoutkích hoạt - và không có một số vấn đề của họ (không nặng nề hình ảnh pixelated / xuống cấp, không mất dấu, v.v.).

Bây giờ, nếu bạn cần đạt được một kích thước nhất định bất kể hậu quả (bao gồm các hình ảnh xuống cấp đến mức không thể đọc được), nó có thể không phải là công cụ bạn cần, nhưng là một giải pháp luôn hoạt động, để giảm kích thước lớn không cần thiết trong các tệp PDF mà không mất khả năng đọc, thông tin và chất lượng hình ảnh chấp nhận được, tôi nghĩ đó là lựa chọn tốt nhất. (Lưu ý: Tôi có xu hướng sử dụng nó sau khi lần đầu tiên thực hiện vector hóa-OCR trong Adobe Acrobat [chức năng được gọi là "CleanScan"], có thể có tác động kích thước kịch tính đối với một số tài liệu văn bản được quét.)


Tôi khuyên bạn nên cài đặt Unix chung :

  1. Cài đặt tất cả các phụ thuộc cần thiết:

  2. Tải xuống và cài đặt thực thi:

    curl -L -o https://raw.githubusercontent.com/pts/pdfsizeopt/master/pdfsizeopt.single
    cp pdfsizeopt.single /usr/local/bin/pdfsizeopt
    

Sử dụng:

pdfsizeopt original.pdf [compressed.pdf]

Lưu ý cho người dùng mac tìm thấy bài đăng này (hoặc người dùng Linuxbrew): có công thức cài đặt Homebrew:

brew install --HEAD pts/utils/pdfsizeopt

2

Tôi đã phải đối mặt với cùng một vấn đề, và rất vui khi tìm thấy chủ đề này. Cụ thể tôi đã có một pdf được tạo từ các hình ảnh được quét và cần giảm kích thước byte của nó xuống 6 lần.

Thật không may, không có giải pháp nào ở trên hoạt động cả: nhưng pdf có kích thước

identify -verbose doc_orig.pdf | grep "Print size"
 Print size: 35.4167x48.7222

Cuối cùng tôi đã nhận được kết quả mong muốn với lệnh "convert" vừa thực hiện thay đổi kích thước cũng như các bước nén trong một:

convert -density 135x135 -quality 70 -compress jpeg -resize 22.588% doc_orig.pdf doc_lowres.pdf

Lưu ý rằng doc_orig có mật độ 72x72 dpi.


1

Nếu chuyển đổi sang djvu cũng sẽ ổn và nếu không có màu sắc liên quan, bạn có thể thử như sau:

Chuyển đổi tập tin pdf sang jpg bằng cách sử dụng pdfimages -j

Nếu bạn nhận được tệp pbm thay vào đó, bạn nên thực hiện bước trung gian:

for FILENAME in $(ls *.pbm); do convert $FILENAME ${FILENAME%.*}.jpg ;done

Lệnh convert là từ gói fantemagick.

Sau đó sử dụng scantailor để làm cho nó ra khỏi nó.

Ở bước cuối cùng, bạn đi đến scantailors out direcory (nơi đặt tif's) và áp dụng djvubind vào thư mục đó.

Điều này sẽ làm giảm kích thước tập tin mạnh mẽ mà không làm mất chất lượng lớn của văn bản. Nếu bạn muốn kiểm soát tốt hơn đối với phần cuối, bạn có thể thử djvubind --no-ocrvà sử dụng ocrodjvu để thêm lớp ocr sau đó.

Nếu bạn có màu trong tài liệu của bạn, mọi thứ sẽ phức tạp hơn một chút. Thay vì djvubind, bạn có thể sử dụng didjvu và trong scantailor, bạn phải thay đổi sang chế độ hỗn hợp và chọn đôi khi hình ảnh màu thủ công.


1

tải hình ảnh hoặc thậm chí tập tin pdf vào inkscape.

Từ inkscape: Lưu ở định dạng vector (dưới dạng .svg gốc).

Nhập tệp vectơ vào scribus, chỉnh sửa bố cục và xuất / lưu dưới dạng .pdf từ đó


0

Công cụ nén PDF siêu đơn giản: trang GitHub.

Cài đặt trên Ubuntu:

sudo add-apt-repository ppa:jfswitz/released

sudo apt-get update

sudo apt-get install pdf-compressor

Nó sử dụng ghostscript.


0

Bạn có thể thử điều này:

$ 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

Nó nhanh hơn gsnhưng nén tới 30% trong trường hợp này đối với tệp đầu vào 107,5MiB.


0

Đối với tôi screentùy chọn gs là quá tệ, và ebookcái quá lớn.

Tài liệu gốc của tôi chứa văn bản dưới dạng màu và hình ảnh đen trắng (tùy thuộc vào trang).

Giải pháp tốt nhất tôi đã đưa ra là:

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

Lưu ý rằng mức nén không phải là tuyến tính .. nếu tôi chỉ định 135 thì nó không nén, tôi đã tìm thấy 130 là (trong trường hợp của tôi) độ phân giải tối đa đạt được độ nén.


-1

Tôi đã sử dụng các lệnh dưới đây nhưng nó không nén tập tin pdf của tôi. Đôi khi một số phần bị đen sau khi nén.

  1. gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf $INPUTFILE

  2. "ps2pdf -dPDFSETTINGS=/ebook %s %s" % (input_file_path, out_file_path)

Sau quá nhiều lần lang thang trên web, tôi không thể tìm thấy thư viện nén phù hợp. Tôi đi qua pdfcompressor.com. Đây chỉ là trang web tuyệt vời. Nó nén pdf 95% (15Mb tệp). Vì vậy, tôi đã sử dụng selen và Tor để tự động nén. Kiểm tra kho lưu trữ Github của tôi. [GITHUB] ( https://github.com/gugli28/PdfCompressor )

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.