Jeg har en PDF-fil på 72,9 MB som jeg må krympe til under 500 KB.
Filen var et JPEG-bilde som jeg hadde skannet og deretter konvertert til pdf.
Her er et skript for omskriving av skannede pdf-filer:
#!/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
Du kan tilpasse det litt for å gjøre det mer gjenbrukbart, men hvis du bare har én pdf, kan du bare erstatte $1
med pdf-filnavnet ditt og legge det inn i en terminal.
Jeg bruker vanligvis ps2pdf for å gjøre dette (enklere syntaks), noe som dette:
ps2pdf -dPDFSETTINGS=/ebook BiggerPdf SmallerPDF
Jeg bruker følgende python-skript for å redusere størrelsen på alle pdf-filene i en dir på en produksjonsserver (8.04). Så det burde fungere.
#!/usr/bin/python
import os
for fich in os.listdir('.'):
if fich[-3:]=="pdf":
os.system("ps2pdf -dPDFSETTINGS=/ebook %s reduc/%s" % (fich,fich))
Hvis konvertering til djvu også ville være ok, og hvis ingen farger er involvert, kan du prøve følgende:
Konverter pdf-filene til jpg-filer ved hjelp av pdfimages -j
.
Hvis du får pbm-filer i stedet, bør du gjøre mellomtrinnet:
for FILENAME in $(ls *.pbm); do convert $FILENAME ${FILENAME%.*}.jpg ;done
.
Konverteringskommandoen er fra imagemagick-pakken.
Bruk deretter scantailor for å lage tif' er ut av det.
I et siste trinn går du til scantailors ut-katalogen (der tif-filene ligger) og bruker djvubind på den katalogen.
Dette bør redusere filstørrelsen drastisk uten stort tap av kvalitet på teksten. Hvis du ønsker finere kontroll over ocr-backend, kan du prøve djvubind --no-ocr
og bruke ocrodjvu for å legge til ocr-laget etterpå.
Hvis du har farger i dokumentet ditt, blir ting litt mer komplisert. I stedet for djvubind kan du bruke didjvu og i scantailor må du endre til blandet modus og velge noen ganger fargebilder manuelt.