Vraag Hoe kan ik de bestandsgrootte van een gescand PDF-bestand verkleinen?


Ik heb een 72,9MB PDF-bestand dat ik moet inkrimpen tot minder dan 500 KB.

Het bestand was een JPEG-afbeelding die ik had gescand en vervolgens geconverteerd naar pdf.


294
2018-03-16 17:12


oorsprong


het hangt af van wat de ruimte verbruikt ... veel meer informatie nodig. het comprimeren van de afbeeldingsruimte zou kunnen helpen, maar als je een grote sproeikop probeert, zal dat niet werken. serieus meer informatie nodig. - RobotHumans
converteer het naar DjVu, in plaats daarvan probeer je te verkleinen naar onmogelijk formaat PDF (volgens bron) - zetah
het bestand was een jpeg-afbeelding die ik had gescand en vervolgens geconverteerd naar pdf. - tamimym
Het lijkt alleen maar een klein beetje mee te werken, maar pdfopt heeft een eenvoudige syntaxis en verbetert de laad- en pagina-draaisnelheid in het iPad-tijdperk. :-) - Ari B. Friedman
PDF naar PS werkt niet in gescande PDF-bestanden, ik probeer 56 MB pdf naar PS-bestand om te zetten, maar ps-bestand converteert naar 1,3 GB en ps2pdf wordt opnieuw geconverteerd naar bestand van 45 MB


antwoorden:


Aking1012 heeft gelijk. Met meer informatie over mogelijk ingesloten afbeeldingen, hyperlinks, enz. Zou het veel eenvoudiger zijn om deze vraag te beantwoorden!

Hier zijn een aantal script- en opdrachtregeloplossingen. Gebruik zoals u wilt.


119
2018-03-16 17:28



Heel erg bedankt voor je suggesties, de ghostscript-shell heeft wonderen verricht en het verlaagd tot 460KB :) - tamimym
Dat is niet noodzakelijk waar. Als de inhoud van een afbeelding naar een tekst is gegaan, is dat meer dan haalbaar. [Dat veronderstelt dat de tekst nauwkeurig is ingevuld] - monksy
Ik raad je aan om het script shrinkpdf.sh te gebruiken, je kunt de code aanpassen om de gewenste ppi-waarde te gebruiken (standaard 72) en precies de bestandsgrootte bereiken die je nodig hebt om de minste kwaliteit op te offeren. Dit maakte het voor mij mogelijk om een ​​gescand document van maximaal 11 MB te uploaden. grootte van 3 MB zonder veel kwaliteit te verliezen. - Severo Raz
shrinkpdf werkt geweldig! - AmanicA
Eerste koppeling, met instelling "/ ebook", verminderde een 19 MB gescand bestand naar 4,2 MB en de gescande tekst blijft leesbaar. - dremodaris


Gebruik het volgende ghostscript opdracht:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
  • -dPDFSETTINGS=/screen lagere kwaliteit, kleiner formaat. (72 dpi)
  • -dPDFSETTINGS=/ebook voor betere kwaliteit, maar iets grotere pdf's. (150 dpi)
  • -dPDFSETTINGS=/prepress uitvoer vergelijkbaar met de instelling "Prepress geoptimaliseerd" van Acrobat Distiller (300 dpi)
  • -dPDFSETTINGS=/printer selecteert uitvoer vergelijkbaar met de "Afdruk geoptimaliseerd" instelling van Acrobat Distiller (300 dpi)
  • -dPDFSETTINGS=/default selecteert output die bedoeld is om bruikbaar te zijn voor een breed scala aan toepassingen, mogelijk ten koste van een groter uitvoerbestand

406
2018-02-15 13:53



Je kunt ook een Nautilus-script maken om toegang te krijgen tot deze functie voor elk bestand. - Sina
Dit zou het geaccepteerde antwoord moeten zijn. ghostscript is de PDF-, XPS- en PS-implementatie voor unices en kan in feite alles leveren wat de beste kwaliteit oplevert ... - dom0
@Sina: Er is eigenlijk een Nautilus-script met een eenvoudige op Zenity gebaseerde GUI die dit gs-commando gebruikt met al zijn opties op kwaliteitsniveau: launchpad.net/compress-pdf - Sadi
Dit is het juiste antwoord op deze vraag (comprimeren van een pdf die meestal bitmapgegevens is). Ik vond dat de screen omgeving was voor mij te laag, maar ebook werkte goed, het knippen van een 33-bits scan-gebaseerde PDF naar 3,6 Mb, en hield het zeer leesbaar. Andere opties voor de -dPDFSETTINGS optie worden hier weergegeven: milan.kupcevic.net/ghostscript-ps-pdfen het kan een goed idee zijn om ze in dit antwoord op te nemen. - naught101
gs beschikbare configuratieparameters: ghostscript.com/doc/current/Ps2pdf.htm - Antonios Hadjigeorgalis


Mijn favoriete manier om dit te doen is om de pdf naar ps en terug te converteren. Het werkt echter niet altijd, maar als het werkt, zijn de resultaten goed:

ps2pdf input.pdf output.pdf

Dit werkt ook direct op pdf's, zoals in de opmerkingen wordt gesuggereerd.


123
2018-01-16 09:18



Dit is een zeer eenvoudige en effectieve manier om het te doen. Ik was verrast om te zien hoe deze methode de bestanden comprimeerde. Dank U! - Gabriel
Ondanks dat deze ene aanpak mijn favoriete oplossing werd om pdf-bestanden te comprimeren, verbreekt het de url-koppelingen die het document mogelijk heeft (wat niet gebeurt met de aanpak van @Michael D). Afgezien van dat, is awesomeness alles wat ik kan bedenken om dit fragment uit te voeren! (: - Rubens
@Rubens Ah. Wist niet van het feit dat het de url-links verbreekt. Bedankt voor het toevoegen van dat. - don.joey
Dit omzeilt wachtwoordbeveiliging ... gewoon zeggen - jojo
ps2pdf neemt pdf's als invoer, dus u kunt dit in één stap doen: ps2pdf intput.pdf output.pdf - frabjous


Als je een ... hebt pdf met gescande afbeeldingen, je kunt gebruiken convert om een ​​pdf te maken met jpeg-compressie (U kunt deze methode op elke pdf gebruiken, maar u verliest alle tekstinformatie).

Bijvoorbeeld:

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

aanpassen dichtheid (bijvoorbeeld 100x100) en kwaliteit aan uw behoeften.

Afhankelijk van uw invoerjpeg samendrukking misschien niet de beste keuze vanwege compressie-artefacten. U hebt de keuze tussen BZip, Fax, Group4, JPEG, JPEG2000, Lossless, LZW, RLE of Zip als alternatieve compressiemethoden (sommige gebruiken alleen z / w-afbeeldingen). Zie voor meer informatie hier.

Ik kon grote compressieverhoudingen bereiken voor gescande / gefotografeerde documenten (afhankelijk van de instellingen). Afhankelijk van de documentbron, kunt u de kleurdiepte verminderen (-depth argument).


105
2018-05-19 17:39



Voor een gescand document waarin de tekst is waarin u geïnteresseerd bent, zijn de afbeeldingen en de bewaardiepte geen probleem, jpeg-compressie is geen goed idee, omdat de artefacten meestal erg opvallen. Als je gebruikt pdfimages input.pdf pages om pbm-bestanden uit te pakken, dan kun je iets doen als: for page in *.pbm; do convert $page -compress Group4 -type bilevel TIFF:- | convert - output.pdf. Elke OCR gaat verloren, dus meestal doe ik dat pdfsandwich output.pdf, dat de bestandsgrootte nog verder lijkt te verkleinen. - Brian Z
@BrianZ jpeg-compressie is zeker niet altijd de beste keuze, maar voor mij was dit de beste aanpak voor documenten van gemengde typen. Ik heb wat informatie over andere compressiemethoden toegevoegd aan het antwoord. - someonr
Deze methode gebruikt uiteindelijk gs Achter de schermen. - alfC
Ik moest dubbel streepje gebruiken voor de opties om het commando uit te voeren --density --quality --compress vs -density -quality -compress. - Rotareti
Als image qaulity niet de grootste zorg is (en je wilt gewoon die dang e-mailbijlage klein genoeg om verstuurd te worden) zou je kunnen toevoegen -resize 50% ook, verander percentage, afhankelijk van hoeveel DPI werd gebruikt tijdens het scannen - chrki


Ik moest een PDF verkleinen die volledige kleurenscans van een document bevatte. Elk van mijn pagina's was een volledige kleurenafbeelding wat betreft het bestand. Het waren afbeeldingen van pagina's die tekst en afbeeldingen bevatten, maar ze zijn gemaakt door naar een afbeelding te scannen.

Ik gebruikte een combinatie van de onderstaande opdracht ghostscript en een uit een andere thread.

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

Hierdoor werd de afbeeldingsresolutie verkleind tot 150 dpi, waardoor mijn bestandsgrootte werd gehalveerd. Kijkend naar het document was er bijna geen merkbaar verlies aan beeldkwaliteit. De tekst is nog steeds perfect leesbaar op mijn 2012 Nexus7.


30
2018-01-19 06:25



+1 voor het downsamplen van afbeeldingen, maar om tekst als vectoren te behouden. Een enorm verschil in kant gemaakt zonder mijn tekst korrelig te maken. - Jason O'Neil


Hier is een script voor het herschrijven van gescande pdf's:

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

Je zou het een beetje kunnen aanpassen om het herbruikbaarder te maken, maar als je maar één pdf hebt, zou je het gewoon kunnen vervangen $1 met je pdf bestandsnaam en stop hem in een terminal.


24
2017-08-31 20:29



Werkt heerlijk, bedankt Oli. Je hebt bijna alles beantwoord wat ik hier tot nu toe heb gevraagd :-D - Rob Cowell
Dit is een goed antwoord maar in mijn geval kost het in ieder geval een lot van tijd om een ​​ietwat groot (> 10Mb) PDF-bestand (meer dan een minuut) te converteren. - Gabriel
Ik weet niet zeker wat er gebeurt, maar een PDF van 30 MB resulteert in een bestand van 68 MB. In plaats van te verkleinen, wordt het groter. Dezelfde uitvoer als rechtstreeks ps2pdf wordt gebruikt zoals vermeld in het volgende antwoord. - Ed Villegas
@ EdVillegas Het enige dat ik kan bedenken (om dat soort toename uit te leggen) is dat de beelden een lagere resolutie hebben dan degenen die worden gegenereerd (72 dpi). Of op de een of andere manier het embedden van de lettertypen is aan het zuigen alle de lettertypen. - Oli♦


Ik gebruik meestal ps2pdf om dit te doen (eenvoudigere syntaxis), zoiets als dit:

ps2pdf -dPDFSETTINGS=/ebook BiggerPdf SmallerPDF

Ik gebruik het volgende pythonscript om de grootte van alle pdf-bestanden in een map in een productieserver (8.04) te verkleinen. Dus het zou moeten werken.

#!/usr/bin/python

import os

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

15
2017-09-01 07:26



Bedankt voor de alternatieve oplossing. Ik probeerde Oli's eerste en gaf me het resultaat dat ik nodig had, maar ik zal deze ook bewaren voor toekomstig gebruik. - Rob Cowell
-dPDFSETTINGS = / printer optie heeft 50% grootte. ebook heeft 90% grootte. - neouyghur


  1. ik gebruik LibreOffice Draw om de pdf te openen.
  2. Ik exporteer "als pdf"
  3. En zet "JPEG-compressiekwaliteit" op 50% en "Beeldresolutie" op 150 dpi

Dit zal een goed resultaat hebben.


13
2018-06-14 09:59



Ergste mogelijke oplossing voor het probleem! Het heeft mijn dossier totaal verprutst! - ThatIs


Het beste voor mij was

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

Andere manieren:

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

vriendelijke groeten


6
2018-04-21 11:03



goede samenvatting bedankt - Gery
Geweldige oplossing. Makkelijk te onthouden en het bracht mijn pdf van 32 naar 3,5 MB zonder verlies van leesbaarheid. - Immanuel Weihnachten


Ik ben dit probleem net zelf tegengekomen. Als u een eenvoudige scan gebruikt, selecteert u de tekstmodus voor scans met lage resolutie en hoeft u zich geen zorgen te maken over de dingen in de opdrachtregel. Gewoon zeggen.


5
2017-07-29 21:13



Dit is het enige antwoord in deze thread dat mijn probleem heeft opgelost. Ik bagatelliseerde Simplescan, maar het was echt het antwoord voor mij, in plaats van tegen Xsane te vechten in wat een eindeloze doodsstrijd leek te zijn. - versvs