zależy to od tego, co zajmuje miejsce ... potrzebujesz dużo więcej informacji. kompresowanie przestrzeni obrazu może pomóc, ale jeśli próbujesz rozpylić dużą stertę plików, to nie zadziała. poważnie potrzebujesz więcej informacji.
Wydaje się, że pomaga to tylko w niewielkim rozmiarze, ale pdfoptma prostą składnię i poprawia szybkość ładowania i przewracania stron w erze iPada. :-)
PDF do PS nie działa w zeskanowanym pliku PDF, próbuję przekonwertować 56 MB pdf na plik ps, ale plik ps przekonwertować na 1,3 GB i ponownie ps2pdf jest przekonwertowany na plik 45 MB
Odpowiedzi:
145
aking1012 ma rację. Więcej informacji na temat możliwych osadzonych obrazów, hiperłączy itp. Byłoby znacznie łatwiej odpowiedzieć na to pytanie!
Oto kilka rozwiązań skryptów i wiersza poleceń. Używaj według własnego uznania.
Polecam ci skrypt shrinkpdf.sh, możesz dostosować kod, aby używał żądanej wartości ppi (domyślnie 72) i osiągnąć dokładnie taki rozmiar pliku, jaki potrzebujesz, aby poświęcić najmniejszą jakość. Dzięki temu mogłem przesłać zeskanowany dokument o wielkości 11 MB z maksimum. rozmiar 3 MB bez utraty jakości.
To powinna być zaakceptowana odpowiedź. Ghostscript jest PDF, XPS i realizacja PS dla Uniksów i można zrobić w zasadzie wszystko, zapewniając najlepszą jakość ...
@Sina: W rzeczywistości istnieje Skrypt Nautilus z prostym graficznym interfejsem użytkownika opartym na Zenity, który wykorzystuje to polecenie gs ze wszystkimi opcjami jakości: launchpad.net/compress-pdf
To jest prawidłowa odpowiedź na to pytanie (kompresja pliku pdf, który jest w większości danymi bitmapowymi). Stwierdziłem, że screenustawienie było dla mnie zbyt niskiej jakości, ale ebookdziałało dobrze, zmniejszając plik PDF oparty na skanowaniu 33 Mb do 3,6 Mb i utrzymując go w bardzo dobrej czytelności. Inne opcje dla tej -dPDFSETTINGSopcji są wymienione tutaj: milan.kupcevic.net/ghostscript-ps-pdf i dobrym pomysłem może być uwzględnienie ich w tej odpowiedzi.
Pomimo tego, że to jedno podejście stało się moim ulubionym rozwiązaniem do kompresji plików pdf, rozbija linki URL, które może mieć dokument (co nie dzieje się w przypadku podejścia @Michaela D). Poza tym niesamowitą rzeczą jest wszystko, co mogę myśleć o uruchomieniu tego fragmentu! (:
Jeśli masz plik pdf ze zeskanowanymi obrazami , możesz go użyć convertdo utworzenia pliku pdf z kompresją jpeg (możesz użyć tej metody na dowolnym pliku pdf, ale utracisz wszystkie informacje tekstowe).
Dostosuj gęstość (np. 100 x 100) i jakość do swoich potrzeb.
W zależności od danych wejściowych kompresja jpeg może nie być najlepszym wyborem ze względu na artefakty kompresji. Masz do wyboru BZip, Faks, Group4, JPEG, JPEG2000, Lossless, LZW, RLE lub Zip jako alternatywne metody kompresji (niektóre dopuszczają tylko obrazy czarno-białe). Szczegółowe informacje można znaleźć tutaj .
Udało mi się osiągnąć świetne współczynniki kompresji zeskanowanych / sfotografowanych dokumentów (w zależności od ustawień). W zależności od źródła dokumentu może być konieczne zmniejszenie głębi kolorów ( -depthargument).
W przypadku zeskanowanego dokumentu, w którym interesuje Cię tekst, a nie obrazy, a zachowanie głębi nie stanowi problemu, kompresja JPEG nie jest dobrym pomysłem, ponieważ artefakty są bardzo zauważalne. Jeśli używasz pdfimages input.pdf pagesdo wyodrębniania plików PBM, to można zrobić coś takiego: for page in *.pbm; do convert $page -compress Group4 -type bilevel TIFF:- | convert - output.pdf. Wszelkie OCR zostaną utracone, więc zwykle to robię pdfsandwich output.pdf, co wydaje się jeszcze bardziej zmniejszać rozmiar pliku.
@BrianZ na pewno kompresja JPEG nie zawsze jest najlepszym wyborem, ale dla mnie było to najlepsze podejście do dokumentów mieszanych. Do odpowiedzi dodałem kilka informacji o innych metodach kompresji.
Jeśli jakość obrazu nie jest najważniejsza (a chcesz, aby ten załączony e-mail był wystarczająco mały, aby go wysłać), możesz -resize 50%również dodać , zmień procent w zależności od tego, ile DPI zostało użyte podczas skanowania
Musiałem zmniejszyć rozmiar pliku PDF, który zawierał skanowanie dokumentów w pełnym kolorze. Każda z moich stron była obrazem w pełnym kolorze, jeśli chodzi o plik. Były to obrazy stron zawierających tekst i obrazy, ale zostały utworzone przez skanowanie do obrazu.
Użyłem kombinacji poniższego polecenia ghostscript i jednego z innego wątku.
Zmniejszyło to rozdzielczość obrazu do 150 dpi, zmniejszając rozmiar mojego pliku o połowę. Patrząc na dokument, prawie nie było zauważalnej utraty jakości obrazu. Tekst jest nadal doskonale czytelny na moim Nexusie z 2012 roku.
Możesz go nieco dostosować, aby był bardziej wielokrotnego użytku, ale jeśli masz tylko jeden plik pdf, możesz po prostu zastąpić $1go nazwą pliku pdf i zatrzasnąć go w terminalu.
Nie jestem pewien, co się stanie, ale plik PDF o wielkości 30 MB daje plik o wielkości 68 MB. Zamiast zmniejszać, powiększa się. To samo wyjście, jeśli używasz bezpośrednio ps2pdf, jak podano w następnej odpowiedzi.
@EdVillegas Jedyne, co mogę wymyślić (aby wyjaśnić tego rodzaju wzrost) to to, że obrazy mają niższą rozdzielczość niż generowane (72dpi). Lub w jakiś sposób osadzanie czcionek powoduje zasysanie wszystkich czcionek.
Dzięki za alternatywne rozwiązanie. Najpierw wypróbowałem Oli i dało mi to wynik, którego potrzebowałem, ale zachowam ten również do wykorzystania w przyszłości.
Właśnie sam napotkałem ten problem. Jeśli używasz prostego skanowania, wybierz tryb tekstowy dla skanów w niskiej rozdzielczości i nie będziesz musiał się martwić o elementy wiersza poleceń. Tylko mówię.
To jest jedyna odpowiedź w tym wątku, która rozwiązała mój problem. Zlekceważyłem Simplescan, ale tak naprawdę była to dla mnie odpowiedź, zamiast walczyć z Xsane w czymś, co wydawało się nieskończoną agonią.
Myślę, że chcesz / HSample s i / VSample s , a nie / HSample i / VSample. Zobacz np. Dokumenty ps2pdf lub podręcznik języka PostScript. Warto również zauważyć, że dozwolony zakres współczynnika QFactor wynosi od 0 do 1 000 000, a niższe wartości dają wyższą jakość.
Ponieważ ten link był dla mnie pierwszy podczas wyszukiwania w Google, pomyślałem, że dodam jeszcze jedną możliwość. Żadne z powyższych rozwiązań nie działało dla mnie na pliku PDF eksportowanym z Inkscape (15 MB), ale w końcu mogłem go zmniejszyć do 1 MB, otwierając go w GIMP i ponownie eksportując jako pdf.
Inną opcją, która się zbliżyła (ale tekst był trochę niewyraźny), było narzędzie do konwersji ImageMagick:
convert -compress ZipWydaje mi się, że to właśnie rozumiesz przez „trochę zamazany”, ale dla wyjaśnienia, wydaje się, że rasteryzuje wszystkie wektory.
W końcu napisałem mój własny skrypt bash, aby rozwiązać ten, używa mogrify, converti gswyodrębnić strony PDF jako png, zmieniać ich rozmiar, przekształcają je w 1-bitowym formacie BMP, a następnie odbudować je jako pdf. Zmniejszenie rozmiaru pliku może wynosić ponad 90%. Dostępne na stronie http://www.timedicer.co.uk/programs/help/pdf-compress.sh.php .
Jest o wiele bardziej wydajny pod względem zmniejszania wielkości niż jakikolwiek poprzedni CLI i GUI oprogramowania, które próbowałem (w tym convert, gs, pdftkitp) - chociaż być może wolniej pngoutaktywna - i nie ma niektórych swoich problemów (nie ciężko obrazy pikselowe / zdegradowane, bez utraty zakładek itp.).
Teraz, jeśli chcesz osiągnąć określony rozmiar bez względu na konsekwencje (w tym degradację obrazów do punktu nieczytelności), może to nie być narzędzie, którego potrzebujesz, ale jako zawsze działające rozwiązanie, aby zmniejszyć niepotrzebne duże rozmiary w plikach PDF bez utraty czytelności, informacji i akceptowalnej jakości obrazu, myślę, że to najlepsza opcja. (Uwaga: zwykle używam go po uprzednim wykonaniu wektoryzacyjnego OCR w Adobe Acrobat [funkcja nazywała się „CleanScan”], co może mieć ogromny wpływ na rozmiar niektórych skanowanych dokumentów tekstowych.)
Miałem ten sam problem i cieszyłem się, że znalazłem ten wątek. Konkretnie miałem plik pdf wygenerowany na podstawie zeskanowanych obrazów i musiałem zmniejszyć jego rozmiar bajtu sześciokrotnie.
Niestety żadne z powyższych rozwiązań nie zadziałało :(. Wtedy zdałem sobie sprawę, że gdzieś w skanerze-> jpeg-> pdf rozmiar strony został rozdęty o współczynnik aprx 4. Wszystkie zeskanowane dokumenty miały rozmiar Letter, ale plik pdf miał rozmiar
Jeśli konwersja do djvu również będzie w porządku i jeśli nie zostaną użyte żadne kolory, możesz spróbować:
Konwertuj pdf na pliki jpg za pomocą pdfimages -j
Jeśli zamiast tego otrzymasz pliki PBM, wykonaj pośredni krok:
for FILENAME in $(ls *.pbm); do convert $FILENAME ${FILENAME%.*}.jpg ;done
Polecenie konwersji pochodzi z pakietu imagemagick.
Następnie użyj scantailor, aby zrobić z niego tif.
W ostatnim kroku przejdziesz do scantailors out direcory (gdzie znajdują się tif) i zastosujesz djvubind do tego katalogu.
Powinno to drastycznie zmniejszyć rozmiar pliku bez dużej utraty jakości tekstu. Jeśli chcesz mieć lepszą kontrolę nad backendem ocr, możesz spróbować djvubind --no-ocrużyć ocrodjvu, aby później dodać warstwę ocr.
Jeśli masz w dokumencie kolory, sprawy stają się nieco bardziej skomplikowane. Zamiast djvubind możesz użyć didjvu, aw scantailor musisz zmienić tryb mieszany i czasami ręcznie wybrać kolorowe obrazy.
$ 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
W tym przypadku jest szybszy niż, gsale kompresuje do 30% dla pliku wejściowego 107,5 Mb.
Zauważ, że poziom kompresji nie jest liniowy. Gdybym określił 135, nie był skompresowany, stwierdziłem, że 130 jest (w moim przypadku) maksymalną rozdzielczością, która osiąga kompresję.
Po zbyt dużej wędrówce po Internecie po prostu nie mogłem znaleźć odpowiedniej biblioteki kompresji. Natknąłem się pdfcompressor.com. To jest po prostu niesamowita strona internetowa. Kompresuje pdf o 95% (15 MB plików). Użyłem więc selenu i Tora do automatyzacji kompresji. Sprawdź moje repozytorium Github. [GITHUB] ( https://github.com/gugli28/PdfCompressor )
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.