Автор Гілка: Маштабування *.ps  (Прочитано 2423 раз)

Відсутній cadca

  • Письменник
  • *****
  • дописів: 955
  • Карма: +0/-0
  • free like beer
Маштабування *.ps
« : 2008-01-26 01:17:47 »
Суть проблеми: є постскріпт файл, який утворений під офтопіком при друку на віртуальний ghostscript-принтер із ворда :-X. Проблема полягає в тому, що цей файл без попередньої обробки не можливо змасштабувати. Та що там змасштабувати, його навіть прочитати увесь без fixwfwps чи fixps неможливо. Масштабувати пробував і psresize, і psnup - результат один - файл знову перестає бути читабельним. Правда працює спосіб ps->pdf->ps (ps2pdf, pdf2ps) - результат можна масштабувати, але під час перетворень втрачається якість малюнків (навіть при доданні опції -r600) та з'являються гігантські за розміром файли :'(
Ubuntu 20.04/18.04; CentOS 7.x

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Маштабування *.ps
« Відповідей #1 : 2008-01-26 19:57:22 »
Ну та відредагуйте PS вручну. Там треба тільки доставити один оператор "0.7 0.8 scale" на початку кожної сторінки. 0.7, 0.8 - це коефіцієнти маштабування по x і по y відповідно..
[Fedora Linux]

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Маштабування *.ps
« Відповідей #2 : 2008-01-26 20:02:09 »
Тут навіть є приклад програми на Перлі, яка робить маштабування:

http://chaos.fiz.uni-lj.si/~horvat/publishing/postscript/PostScript/europe-a4.ps.gz
[Fedora Linux]

Відсутній cadca

  • Письменник
  • *****
  • дописів: 955
  • Карма: +0/-0
  • free like beer
Re: Маштабування *.ps
« Відповідей #3 : 2008-01-27 00:17:25 »
Ну та відредагуйте PS вручну. Там треба тільки доставити один оператор "0.7 0.8 scale" на початку кожної сторінки. 0.7, 0.8 - це коефіцієнти маштабування по x і по y відповідно..
Дякую [smiley=10.gif] Доставляти вручну було ліньки :), доручив цю справу sed'у:sed 's/\%\%PageBoundingBox\:/0\.7071\ 0\.7071\ scale\n&/g' input.ps | sed 's/BoundingBox\:\ 0\ 0\ 595\ 842/BoundingBox\:\ 0\ 0\ 421\ 595/g' | sed 's/PageSize\ \[595\ 842\]/PageSize\ \[421\ 595\]/g' > output_scaled.ps
Ubuntu 20.04/18.04; CentOS 7.x