Чи є спосіб вирівняти .pdf зображення з командного рядка?


19

У GIMP я можу імпортувати .pdf і використовувати графічний інтерфейс, щоб розрівняти його (якщо він зроблений з багатьма шарами), вибравши "Згладити зображення" у спадному меню "Зображення". Потім я можу експортувати .pdf з новим іменем файлу.

Я хотів би це автоматизувати. Чи є спосіб зробити це через термінал?


1
встановити imagemagick і читати людину mogrify-im6, montage-im6, display-im6, stream-im6, ідентифікувати-im6, import-im6, contre-im6, composite-im6, convert-im6, animi-im6 та порівняти-im6.
PersianGulf

Відповіді:


25

Я знайшов ці 2 методи через Google, у цій темі під назвою: Re: Вирівнювання PDF-файлів у командному рядку UNIX .

Спосіб №1 - за допомогою перетворення Imagemagick:
$ convert orig.pdf flattened.pdf 

ПРИМІТКА: Як повідомляється, якість такої підходи є такою.

Спосіб №2 - Використання pdf2ps -> ps2pdf:
$ pdf2ps orig.pdf - | ps2pdf - flattened.pdf 

ПРИМІТКА. Повідомляється, що цей метод підтримує якість зображення.


1
Краща якість, ніж GIMP на другій - дякую!
generic_user

@ACD - це добре знати. Радий, що це вирішило ваш Q.
slm

2
Метод 1 створив дуже нечітке зображення, тоді як метод 2 працював ідеально.
Северин Козак

1
На жаль, метод №2 не розширює зображення, тому, якщо ви намагаєтесь заблокувати чутливі частини, користувач може все-таки відкрити документ і видалити шари (з чимось на зразок Inkscape). Ви можете, однак, змінити дозвіл методу # 1: $ convert -density 150 {original,flattened}.pdf Якщо вам потрібно зберегти дисковий простір, ви можете використовувати -type Grayscaleабо -monochromeчи речі такого роду.
eacousineau

1
Обидва методи растровують pdf, хоча метод №2 робить це з набагато більшою роздільною здатністю. Тож жоден із цих методів не задовольняє.
Мурашка

18

Ghostscript (гс) працювали краще , ніж pdf2psта convertдля мене. Якість майже не погіршилася, а розмір файлів невеликий.

gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite \
-sColorConversionStrategy=/LeaveColorUnchanged  \
-dAutoFilterColorImages=true \
-dAutoFilterGrayImages=true \
-dDownsampleMonoImages=true \
-dDownsampleGrayImages=true \
-dDownsampleColorImages=true \
-sOutputFile=document_flat.pdf document_original.pdf

Знайдено тут: http://zeroset.mnim.org/2015/01/07/flatten-pdfs-with-ghostscript/


Цей метод чудово працює, pdf не растровано, а текст зберігається як текст
Ant

2
Я спробував це використати для видалення прозорого шару за допомогою вирівнювання, але це не спрацювало.
mikemtnbikes

Це змінило шрифт для мене, але в іншому випадку набагато краща роздільна здатність, ніж інші запропоновані методи.
ste

1

Хоча конвертування збереже той самий розмір файлу, я вважаю, що це повільно.

Метод pdf2ps ps2pdf швидший, але я помітив, що він збільшує розмір файлу.

pdftk хороший тим, що він не тільки швидко, але і зберігає аналогічний розмір файлу.

Це те, що я використовую для групового вирівнювання каталогу.

    function pdfflatten () {
        pdftk "$1" output "$2" flatten
    }
    export pdfflatten
    alias pdfflattenDIR='mkdir flattenedPDFs; for i in `seq $(ls *.pdf | wc -l)`; do a=`ls *.pdf | head -$i | tail -1`; pdfflatten "$a" flattenedPDFs/"$a"; done'

pdftk flatten не змінює зображення у форматі PDF. З документів він "об'єднує інтерактивні поля формату PDF (та їхні дані) зі сторінками PDF"
Айдан Кейн

1
Щоб було зрозуміло, такий підхід не розгладжує прозорі шари (як зазначено вище).
mikemtnbikes
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.