Używam Mac OS X Snow Leopard. Mam plik PDF z polami formularza, adnotacjami i pieczęciami. Chciałbym zamrozić (lub „spłaszczyć”) ten plik PDF, aby pola formularza nie mogły zostać zmienione, a adnotacje / znaczki nie były już edytowalne. Ponieważ faktycznie mam wiele z tych plików PDF, chcę to zrobić automatycznie w wierszu polecenia.
Niektóre rzeczy, które próbowałem / rozważałem, z ich stopniem sukcesu:
- Otwórz w Podglądzie i Drukuj do pliku. To tworzy całkowicie płaski plik PDF bez zmiany rozmiaru pliku. Jedynym sposobem na automatyzację wydaje się napisanie nieprecyzyjnego AppleScript opartego na interfejsie użytkownika , którego starałem się unikać.
- Otwórz w Acrobat Pro i użyj funkcji JavaScript, aby spłaszczyć . Ponownie nie wiem, jak zautomatyzować to w wierszu polecenia.
- Użyj
pdftk
zflatten
opcją. Ale to tylko spłaszcza formularze, a nie znaczki i inne adnotacje. - Użyj,
cupsfilter
aby utworzyć plik PDF z wielu formatów plików. Wpdftk
ten sposób spłaszczono tylko pola formularza. - Użyj,
cups-pdf
aby podłączyć się do serwera wydruku komputera Mac i zapisać plik PDF zamiast wydrukować. Użyłem wersji DarwinPorts . Wynikowy plik jest płaski, ale ogromny. Próbowałem tego na pliku 8 MB; spłaszczony plik PDF miał 358 MB! Być może można to połączyć z wywołaniem ghostscript, jak w Ubuntu Wskazówka: Jak zmniejszyć rozmiar pliku PDF z wiersza poleceń .
Wszelkie inne sugestie będą mile widziane.
Odpowiedzi:
Spróbuj użyć
pdf2ps
ips2pdf
po kolei. To trochę kłopotliwe, ale pomogło mi zredukować mój dokument 30 MB do 17 MB. Nie tak bardzo, jak bym chciał, ale i tak lepiej. Ten pomysł dostałem od znajomego, który użył tej metody, aby pozbyć się uprawnień do hasła na pdf.Mam nadzieję, że to pomaga!
źródło
pdf2ps file.pdf - | ps2pdf - file_flat.pdf
. Plik zmienił się z 300 KB na 500 KB, co jest dużym procentowym wzrostem, ale nic podobnego do wzrostu o 4400%cups-pdf
uzyskanego metodą.pdf2ps -q -sOutputFile=- file.pdf | ps2pdf - file_flat.pdf
.brew install ghostscript
.Właśnie tego ostatnio używałem. Myślę, że funkcjonalnie robi to samo
pdf2ps file.pdf - | ps2pdf - file_flat.pdf
, ale wydawało mi się, że działa lepiej.źródło
Może to być opcjonalne, ale czy zastanawiałeś się nad łańcuchem kubków-pdf za pomocą pdftk lub pucharów? Jak już wspomniałeś, cups-pdf wygeneruje płaski plik pdf, a następnie przekaże go przez pdftk lub cupsfilter, aby uzyskać odpowiedni rozmiar?
Alternatywnie spójrz na
/System/Library/Printers/Libraries/convert
powinieneś być w stanie zrobić coś takiegoźródło
/System/Library/Printers/Libraries/convert
. Próbowałemcupsfilter
. Podczas konwersji z pliku PDF na plik PDF nie wprowadzono żadnych zmian. Adnotacje zostały utracone podczas konwersji z formatu PDF na PS, a następnie na PDF.OSTRZEŻENIE: gs i pdf2ps | ps2pdf NIE spłaszczaj plików PDF!
Użycie gs lub pdf2ps, a następnie ps2pdf da wielowarstwowy plik PDF z zawartością pod adnotacjami w oryginalnej formie . Możesz sprawdzić tę lukę w Podglądzie, używając Wybierz wszystko, a następnie Kopiuj, a następnie Wklej do okna TextEdit (w trybie tekstu sformatowanego). Na przykład zobaczysz tekst lub grafikę pod adnotacjami redakcji. Jest to oczywiście bardzo złe, jeśli prawnie potrzebujesz, aby ta zawartość zniknęła z wyników.
Działające rozwiązanie
ImageMagick może tworzyć konfigurowalny, wielostronicowy, jednowarstwowy spłaszczony plik PDF z rastrami każdej strony za pomocą następującego polecenia:
To polecenie rasteryzuje document_original.pdf, tworząc pikselowy obraz każdej strony, przy 150 DPI, i wyświetla wynik w postaci document_flat.pdf.
Uwaga na temat jakości obrazu
Ze względu na rasteryzację tworzy nieskalowalny (powiększenie, a tekst lub oryginalne obrazy wektorowe zostają pikselowane) w formacie PDF. Prawdopodobnie będzie miał większy rozmiar pliku, chyba że oryginał ma bardzo złożoną zawartość wektorową, taką jak wykresy rozproszenia o milionach punktów.
Zmieniając gęstość , możesz handlować większymi rozmiarami plików w celu uzyskania wyższej rozdzielczości.
Cały tekst zostanie przekonwertowany na nieprzetworzone piksele na każdym obrazie strony. Najbardziej ucierpiały diagramy tekstowe i wektorowe, więc eksperymentuj z DPI, aż uzyskasz użyteczne pliki wyjściowe.
źródło
Applescript jest prawdopodobnie najlepszym / najszybszym sposobem na przejście do wiersza poleceń. Po uruchomieniu możesz zapisać go jako aplikację i utworzyć alias w powłoce poleceń, aby go uruchomić. Następnie wystarczy wpisać swój alias w wierszu polecenia.
źródło