如何减小扫描的PDF文件的文件大小?

我有一个72.9MB的PDF文件,我需要缩小到500KB以下。

该文件是我扫描过的JPEG图像,然后转换为pdf。

aking1012是对的。 有关可能的嵌入图像,超链接等的更多信息..回答这个问题要容易得多!

这里有几个脚本和命令行解决方案。 根据需要使用。

  • 减少PDF的文件大小Linux的
  • shrinkpdf
  • 压缩-A-PDF与- PDFTK
  • pdfcompress

使用以下ghostscript命令:

 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“Print Optimized”设置的输出( 300 dpi
  • -dPDFSETTINGS=/default选择旨在用于各种用途的输出,可能以更大的输出文件为代价

我最喜欢的方法是将pdf转换为ps并返回。 但它并不总是有效,但是当它工作时结果很好:

 ps2pdf input.pdf output.pdf 

这也直接适用于pdf,正如评论中所建议的那样。

如果你有一个带有扫描图像pdf ,你可以使用convert来创建一个带有jpeg压缩的pdf(你可以在任何pdf上使用这个方法,但是你会丢失所有文本信息)。

例如:

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

根据您的需要调整密度 (例如100×100)和质量

根据您的输入,由于压缩失真,jpeg 压缩可能不是最佳选择。 您可以选择BZip,Fax,Group4,JPEG,JPEG2000,Lossless,LZW,RLE或Zip作为替代压缩方法(有些只允许黑白图像)。 详情请见此处 。

我能够为扫描/拍摄的文档获得很高的压缩比(取决于设置)。 根据文档源,您可能希望减小颜色深度( -depth参数)。

我需要缩小包含文档全彩色扫描的PDF。 就文件而言,我的每个页面都是一个全彩色图像。 它们是包含文本和图像的页面图像,但它们是通过扫描到图像创建的。

我使用了下面的ghostscript命令和另一个线程的组合。

 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,则可以用您的pdf文件名替换$1并在终端中将其打包。

我通常使用ps2pdf来执行此操作(更简单的语法),如下所示:

 ps2pdf -dPDFSETTINGS=/ebook BiggerPdf SmallerPDF 

我使用以下python脚本来减少生产服务器(8.04)中dir中所有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)) 
  1. 我使用LibreOffice Draw打开pdf。
  2. 然后我“导出为pdf”
  3. 并将“jpeg压缩质量”设置为50%,将“图像分辨率”设置为150 dpi

这将有一个很好的结果。

对我来说最好的是

 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 

问候

我自己刚遇到这个问题。 如果使用简单扫描,请选择文本模式进行低分辨率扫描,您无需担心命令行内容。 只是说。

由于这个链接在我在谷歌搜索时首先出现在我身上,我想我还会增加一个可能性。 以上解决方案都不适用于从Inkscape(15 mb)导出的pdf,但我最终能够通过在GIMP中打开它并将其缩小到1 mb并再次以pdf格式导出。

接近的另一个选项(但文字有点模糊)是ImageMagick的转换实用程序:

 convert -compress Zip input.pdf output.pdf 

最后我编写了自己的bash脚本来解决这个问题,它使用mogrifyconvertgs将pdf页面提取为png,调整它们大小,将它们转换为1位bmp,然后将它们重建为pdf。 文件大小减少可超过90%。 可在http://www.timedicer.co.uk/programs/help/pdf-compress.sh.php获取 。

控制压缩质量:

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

如果转换为djvu也可以,如果不涉及颜色,您可以尝试以下方法:

使用pdfimages -j将pdf转换为jpg文件

如果你得到pbm文件,你应该做中间步骤:

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

convert命令来自imagemagick包。

然后用scantailor来制作它的tif。

在最后一步中,你会看到scorailors outcory(tif所在的位置)并将djvubind应用于该目录。

这样可以大大减少文件大小,而不会导致文本质量下降。 如果你想更好地控制ocr-backend,你可以尝试使用djvubind --no-ocr并使用ocrodjvu来添加ocr层。

如果你的文档中有颜色,事情会变得复杂一些。 而不是djvubind你可以使用didjvu,而在scantailor你必须改为混合模式,有时手动选择彩色图像。

将图像甚至pdf文件加载到inkscape中。

来自inkscape:以矢量格式保存(作为本机.svg)。

将矢量文件导入scribus,编辑布局并从那里导出/保存为.pdf

我遇到了同样的问题,很高兴找到这个post。 具体来说,我有一个从扫描图像生成的pdf,并需要将其字节大小减少6倍。

不幸的是,上面的解决方案都没有工作:(。然后我意识到在扫描仪的某个地方 – > jpeg-> pdf过程中,页面的大小已经膨胀了4倍。我扫描的文件都是Letter大小的,但是pdf的大小是

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

我最后通过“转换”命令获得了所需的结果,该命令同时调整了压缩步骤和压缩步骤:

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

请注意,doc_orig的密度为72×72 dpi。

超级简单的PDF压缩工具: GitHub页面。

在Ubuntu上安装:

 sudo add-apt-repository ppa:jfswitz/released sudo apt-get update sudo apt-get install pdf-compressor 

它使用ghostscript。

我最近发现并强烈推荐pdfsizeopt

它比我以前尝试过的任何一个CLI和GUI软件(包括convertgspdftk等)都高效得多 – 尽管pngout激活可能会更慢 – 并且没有一些问题(没有严重的像素化/降级图像,不丢失书签等)。

我推荐通用Unix安装 :

  1. 安装所有必需的依赖项:

    • Ghostscript的
    • JBIG2
    • PNGOUT
    • png22pnm
    • 程序sam2p
  2. 下载并安装可执行文件:

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

用法:

 pdfsizeopt original.pdf [compressed.pdf] 

你可以试试这个:

 $ 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快,但在这种情况下压缩高达30%的107.5MiB输入文件。

我使用下面的命令,但它没有大大压缩我的PDF文件。 有些时候,一些部分在压缩后变黑了。

  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)

在网上徘徊太多之后,我找不到合适的压缩库。 我遇到了pdfcompressor.com 。 这只是一个很棒的网站。 它将pdf压缩了95%(15Mb的文件)。 所以我用selenium和Tor来自动压缩。 检查我的Github存储库。 [GITHUB]( https://github.com/gugli28/PdfCompressor