Создайте tiff только с текстом и без изображений из файла postscript с помощью ghostscript - PullRequest
1 голос
/ 22 июня 2011

Можно ли создать файл TIFF из файла postscript (созданного из pdf-документа с читаемым текстом и изображениями) в файл TIFF без изображений и только текста?

Как добавитьmaxbuffer, чтобы изображения были удалены, а остался только текст?

А если бы можно было также удалить поля и строки вокруг текста, это было бы здорово.

С наилучшими пожеланиями!

Ответы [ 2 ]

3 голосов
/ 22 июня 2011

Вы можете переопределить различные операторы 'изображения', чтобы они ничего не делали:

/image {
 type /dicttype eq not { % uses up argument, only one if dict form
   pop pop pop pop   % remove the arguments for the non-dictionary form.
 } ifelse
} bind def

/imagemask {
 type /dicttype eq not { % uses up argument, only one if dict form
   pop pop pop pop   % remove the arguments for the non-dictionary form.
 } ifelse
} bind def

/colorimage {
  type /integertype eq {
    pop                  % multi
    0 1 3 -1 roll {pop} for % one for each colour component
  } {
    pop pop pop
  } ifelse
} bind def

Сохраните это как файл и добавьте файл к вашему вызову GS.

Аналогичным образом можно удалить линию, переопределив оператор удара:

/stroke {
  newpath
} bind def

Прямой удар тяжелее, я предлагаю вам прочитать PLRM, если он вам нужен.

Возможно также оператор заполнения:

/fill {
  newpath
} bind def

/eofill {
  newpath
} bind def

Осторожно! Некоторый текст не рисуется с использованием операторов отображения текста, а создается из линейной работы или рисуется как изображения. Эти методы будут побеждены, если вы переопределите операторы, как показано выше.

Обратите внимание, что интерпретатор PDF часто не позволяет переопределять операторы, поэтому вам может понадобиться сначала преобразовать файл PDF в PostScript, используя устройство ps2write, а затем запустить полученный файл через GS, чтобы получить файл TIFF.

1 голос
/ 22 июня 2011
gs -sDEVICE=bitrgbtags -o out.tags <myfile>

создаст ppm-файл с тегами - теги помечают каждый пиксель как текст, вектор, изображение и т. Д.

Затем вы можете использовать программы на C в ghostpdl / tools / GOT для обработки изображения. Звучит так, будто вы хотите написать новую программу на C, чтобы установить для каждого нетекстового пикселя цвет фона или, может быть, просто белый, что довольно просто, если в качестве руководства использовать примеры программ на C в подкаталоге GOT (если вы программист) , Тогда вы бы конвертировать ppm в TIFF. Кен предоставил другой способ сделать это, не требующий обработки пикселей.

...