2015-08-02 1 views
0

Я исследователь, и мне нужно читать исследовательские работы. К сожалению, персонажи не достаточно темные, поэтому бумаги трудно читать при печати на бумаге. Обратите внимание, что картридж принтера не имеет проблем, но символы недостаточно печатаются (текст уже черный: посмотрите на образец).Инструменты Linux: как применить фильтр к PDF-документу?

Это как персонажи выглядят, как в Photoshop:

[enter image description here]

Обратите внимание, что фон является прозрачным при импорте PDF документ в фотошопе.

Я использую это ужасное решение:

Первый, я импортировать документ PDF в Photoshop. Страницы импортируются как отдельные изображения с прозрачным фоном.

Затем для каждой страницы я сделать что-либо из этих двух методов:

  1. Способ 1: Скопируйте слой над собой несколько раз, так что изображение становится темнее
  2. Метод 2: Нанесите Min фильтр на изображение

Вот как это выглядит после преобразования (слева: Min фильтра, справа: дублирование слоя)

[This is how it looks like after conversion (left: Min filter, right: layer duplication)]

Это решает мою проблему для печати одной страницы, и я могу легко прочитать печатное содержимое. Однако, сложно конвертировать каждую страницу каждой PDF-бумаги с помощью PHOTOSHOP !!!!. Есть ли более разумное решение/инструмент/приложение ???

Вот что мне нужно: 1. Как конвертировать PDF в высококачественное изображение (либо в Linux, либо в Windows с любым инструментом). 2. Как применить фильтр Min (или любой лучший фильтр) к файлам изображений автоматически. (например, сценарий или что-то еще)

Спасибо!

+0

Действия Photoshop могут быть написаны сценарием.Поддерживаемые языки: JavaScript, AppleScript VBScript. Вы изучали скрипт фильтра Min? –

ответ

1

Это может быть сделано с помощью четырех инструментов:

  1. pdftoppm: Преобразование PDF файлов в отдельные PNG изображения
  2. octave (с открытым исходным кодом альтернатива MATLAB в): Генерация скрипта октаву, который прикладывает мин фильтр на изображений. После запуска сценария,
  3. pdflatex: Создание единого файла .tex, который импортирует все изображения, а затем скомпилировать файл .tex, чтобы получить единый PDF
  4. bash!: Баш скрипт, который автоматизирует процесс

Вот полностью автоматизированное решение как один сценарий bash:

pdftoppm -rx 300 -ry 300 -png $1 img 

# Create an octave script than applieds min-filter to all files. 
echo "#!/usr/bin/octave -qf" > script.m 
echo "pkg load image" >> script.m 
for i in `ls -1 img*.png` 
do 
    echo "i = imread('$i');" >> script.m 
    echo "i(:,:,1) = ordfilt2(i(:,:,1),1,ones(3,3));" >> script.m 
    echo "i(:,:,2) = ordfilt2(i(:,:,2),1,ones(3,3));" >> script.m 
    echo "i(:,:,3) = ordfilt2(i(:,:,3),1,ones(3,3));" >> script.m 
    echo "imwrite(i,'p$i')" >> script.m 
done 

# Running the octave script 
chmod 755 script.m 
./script.m 

# Converting png images to a single PDF 
# Create a latex file that contains all image files 

echo "\documentclass{article}" > f.tex 
echo "\usepackage[active,tightpage]{preview}" >> f.tex 
echo "\usepackage{graphicx}" >> f.tex 
echo "\PreviewMacro[{*[][]{}}]{\includegraphics}" >> f.tex 
echo "\begin{document}" >> f.tex 
echo -n "%" >> f.tex 
for i in `ls -1 pimg*.png` 
do 
    echo "\newpage" >> f.tex 
    echo "\includegraphics{"$i"}" >> f.tex 
done 
echo "\end{document}" >> f.tex 


#Compiling the latex document 
pdflatex -synctex=1 -interaction=nonstopmode f 
Смежные вопросы