Я использую MacOS Mojave на Ma c Mini, и я также использую старый Kindle Dx, который не может читать изображения jpeg2000. У него также есть проблемы со слишком большим количеством или слишком большими изображениями jpeg.
Я не могу использовать сенсорные экраны, поэтому новые электронные книги и планшеты не являются решением.
Пока что я нашел некоторые решения с ошибками -
Я могу использовать k2pdfopt Виллуса с -mode copy и -dev dx, который растрирует все. Это хорошее решение для отсканированных PDF-файлов. Если требуется больше деталей, -mode copy без -dev dx сохранит более высокое разрешение. Это что-то последнее средство для pdf -born-pdf, поскольку текст может быть уродливее и труднее для чтения, а размеры файлов могут тревожно увеличиваться.
Я также могу использовать Ghostscript с -dCompatibilityLevel = 1.4, чего нет t растеризовать все. Он конвертирует изображения jpeg2000 в изображения jpeg. Но он не работает с некоторыми слишком большими или плохо построенными изображениями, он часто создает темные прямоугольники, которые могут скрыть текст, и иногда теряет возможность поиска или выбора текста. [PS Я имею в виду, что он берет PDF-файл, в котором есть доступный для поиска PDF-файл, и выводит тот, в котором его нет. Кроме того, если я выполняю понижающую дискретизацию или удаление изображений, это иногда изменяет масштаб всего или теряет страницы.]
Я экспериментировал с параметрами сжатия изображений в Ghostscript, но с переменным успехом и с сохранением вышеуказанных ошибок. [PS Думаю, я использовал понижающую дискретизацию, да.]
По какой-то причине фильтры MacOS Quartz работают только в том случае, если они уменьшают размер изображения. Поэтому они, как правило, не работают с ошибочными изображениями.
Теперь мое идеальное решение - сохранить сам текст, желательно распутывая лигатуры, и сжать изображения, как k2pdfopt Виллуса. Но я понятия не имею, возможно ли это и как.
Короче - мне интересно, есть ли способ использовать Ghostscript для преобразования изображений jpeg2000 без появления серых прямоугольников или потери возможности поиска или выделите текст.
или если есть способ использовать кварцевые фильтры, чтобы они работали. В некоторых старых версиях MacOS они действительно работали.
или, если есть способ пакетной печати этих файлов pdf с соответствующим разрешением, очевидно, 800x1180, обрабатывая изображения в процессе.
Я не У меня мало опыта программирования. Я в основном использую homebrew для установки инструментов командной строки, очень неаккуратных bash скриптов и Automator для их запуска.
PS Для минимального примера серых прямоугольников в Ghostscript используйте бесплатный PDF-файл отсюда: https://www.peginc.com/store/test-drive-savage-worlds-the-wild-hunt/
gs -sDEVICE = pdfwrite -dNOPAUSE -dQUIET -dBATCH -o out.pdf in.pdf
замена этого pdf на in.pdf.
Для минимального примера потери текста, доступного для поиска, используйте бесплатный PDF-файл отсюда: http://datafortress2020.com/fileproject/details.php?image_id=498
тот же минимальный скрипт
Уровень совместимости
gs -sDEVICE = pdfwrite -dNOPAUSE -dQUIET -dBATCH -dCompatibilityLevel = 1.4 -o out.pdf in.pdf
Агрессивное понижение разрешения и градации серого
gs -sDEVICE = pdfwrite -dNOPAETUSE -dNOPA dBATCH -dCompatibilityLevel = 1.4 -g800x1080 -r150 -dPDFFitPage \ -dFastWebView -sColorConversionStrategy = Gray \ -dDownampleColorImages = true -dDownsampleGrayImages = true -dDownampleMonoImages = true -dColImageResol -esoImages = true -dColImageResol -esoImages = 75 -dColimageResolution = 75ResolutionResolution = 75 on = 150 -dColorImageDownsampleThreshold = 1.0 -dGrayImageDownsampleThreshold = 1.0 -dMonoImageDownsampleThreshold = 1.0 \ -o out.pdf in.pdf
PPS Я могу использовать k2pdfopt для растеризации в соответствии с моим Kindle. Если в файле есть доступный для поиска текст, он сохраняется, если нет, я могу запустить tesseract в k2 или запустить ocrmypdf впоследствии.
Но если мне нужна особенно хорошая графика или особенно четкий текст, и файл имеет сотни страниц, потребуются сотни мегабайт. Я обвинял это в растеризации текста, поэтому моим идеальным решением было сохранить текст и растеризовать изображения, но, очевидно, проблема связана с самими изображениями.