Έχω ένα αρχείο PDF 72,9MB που πρέπει να συρρικνώσω σε λιγότερο από 500KB.
Το αρχείο ήταν μια εικόνα JPEG που είχα σαρώσει και στη συνέχεια μετατρέψει σε pdf.
Εδώ είναι ένα σενάριο για την επανεγγραφή σαρωμένων 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
Χρησιμοποιώ το παρακάτω python script για να μειώσω το μέγεθος όλων των αρχείων pdf σε ένα directory σε έναν production server (8.04). Οπότε θα πρέπει να δουλέψει.
#!/usr/bin/python
import os
for fich in os.listdir('.'):
if fich[-3:]=="pdf":
os.system("ps2pdf -dPDFSETTINGS=/ebook %s reduc/%s" % (fich,fich))
Αν η μετατροπή σε djvu είναι επίσης εντάξει και αν δεν εμπλέκονται χρώματα, μπορείτε να δοκιμάσετε τα εξής:
Μετατρέψτε το pdf σε αρχεία jpg χρησιμοποιώντας το pdfimages -j
.
Αν αντ' αυτού λάβετε αρχεία pbm, θα πρέπει να κάνετε το ενδιάμεσο βήμα:
do convert $FILENAME ${FILENAME%.*}.jpg ;done`
Η εντολή convert προέρχεται από το πακέτο imagemagick.
Στη συνέχεια χρησιμοποιήστε το scantailor για να φτιάξετε tif's από αυτό.
Σε ένα τελευταίο βήμα πηγαίνετε στο scantailors out direcory (όπου βρίσκονται τα tif's) και εφαρμόζετε την djvubind σε αυτόν τον κατάλογο.
Αυτό θα πρέπει να μειώσει το μέγεθος του αρχείου δραστικά χωρίς μεγάλη απώλεια ποιότητας του κειμένου. Αν θέλετε λεπτότερο έλεγχο του ocr-backend, μπορείτε να δοκιμάσετε το djvubind --no-ocr
και να χρησιμοποιήσετε το ocrodjvu για να προσθέσετε το επίπεδο ocr στη συνέχεια.
Εάν έχετε χρώμα'ς στο έγγραφό σας, τα πράγματα περιπλέκονται λίγο περισσότερο. Αντί του djvubind θα μπορούσατε να χρησιμοποιήσετε το didjvu και στο scantailor θα πρέπει να αλλάξετε σε mixed mode και να επιλέξετε μερικές φορές έγχρωμες εικόνες με το χέρι.