2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 надо отредактировать ps-файл
Сообщение30.07.2013, 14:01 


11/04/08
632
Марс
есть файл PostScript и только он. Но при конвертации в pdf получаются слишком большие поля - не удобно для печати. Можно ли уменьшить ширину полей? Где-то это должно быть. (я только нашел, где размер шрифта можно поменять). Может кто-то сталкивался с этим?

Вот начало файла:

Код:
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
%%Title: moctitle_neu.dvi
%%Pages: 151
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -o CoMoChaT.ps moctitle_neu.dvi
%DVIPSParameters: dpi=600, compressed
%DVIPSSource:  TeX output 2001.02.21:1243
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{A length product length le{A length product exch 0
exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end

%%EndProcSet
TeXDict begin 29158280 45380996 400 400 400 (moctitle_neu.dvi)
@start
%DVIPSBitmapFont: Fa eufm7 7 2
/Fa 2 52 df<EA1FFFA2EA01FEEA007E133EB3A290383F01C0B6FCA21A1B7B9A23>49
D<EB1F80EBFFE04813F0EA0707380C03F8EA00011300A314F0A2EB01E0EB03C0EB0780EB
0E001378EA07FF14E038000FF8EB01FC1300147EA2143FA6143E147E147C14FC14F8EB01
F038C007E038F81F80383FFF00EA0FF818277B9B23>51 D E
%EndDVIPSBitmapFont

 Профиль  
                  
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 14:53 
Аватара пользователя


07/01/13
261
NJ
Попробуйте поиграться цифрами в этой строке - это прямоугольник, в котором все рисуется:

%%BoundingBox: 0 0 596 842

зы. если широкие поля слева или сверху - можно попробовать вместо нулей поставить отрицательные смещения.

 Профиль  
                  
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 15:00 


11/04/08
632
Марс
Corund в сообщении #750437 писал(а):
Попробуйте поиграться цифрами в этой строке - это прямоугольник, в котором все рисуется:

%%BoundingBox: 0 0 596 842

зы. если широкие поля слева или сверху - можно попробовать вместо нулей поставить отрицательные смещения.

неа, изменений не наблюдается. мне кажется, это комментарий просто

 Профиль  
                  
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 15:11 
Аватара пользователя


07/01/13
261
NJ
Посмотрел - да - это заголовок для просмотрщиков документа, чтобы заранее знали размер страницы для отрисовки...

Как вариант - вставить команду сдвига начальных координат - типа такой (сдвиг придется подбирать):
100 100 translate

Либо искать "pdf-принтер", в котором можно настраивать ширину полей.

 Профиль  
                  
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 15:55 


11/04/08
632
Марс
Corund в сообщении #750447 писал(а):
Как вариант - вставить команду сдвига начальных координат - типа такой (сдвиг придется подбирать):
100 100 translate

похоже для каждой страницы придется вставлять... ну ладно, раз нету простого решения, может и так сойдёт.

 Профиль  
                  
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 16:49 
Аватара пользователя


20/10/12
308
Нужен весь файл, а не только начало.
Размер страницы определяется коммандой setpagedevice. Там его и надо менять.
Начальную CTM можно изменить с помощью аттрибута /StartPage .
Длина файла зависит от многих причин -- надо смотреть ваш файл.

 Профиль  
                  
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 17:22 


11/04/08
632
Марс
Sphinx Pinastri в сообщении #750480 писал(а):
Размер страницы определяется коммандой setpagedevice. Там его и надо менять.

к сожалению там такой команды не нашел.
весь файл CoMoChaT.ps здесь лежит http://www.math.rwth-aachen.de/~MOC/CoMoChaT/

-- Вт июл 30, 2013 18:32:34 --

было б также неплохо, если б можно было конвертнуть ps (или dvi) в djvu, так как там проще распечатать, или найти аналог WinDjView для pdf-файлов...

 Профиль  
                  
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 18:10 
Аватара пользователя


20/10/12
308
Если нет, то надо добавить следующий фрагмент в начало файда.

Код:
<< /PageSize [370 550]
   /BeginPage {
     currentpagedevice /PageCount get
     dup 0 eq {
       pop
       -140 -190    % 1st page shift
     } {
       1 and 1 eq {
         -140 -190   % odd page shift
       } {
         -100  -190  % even page shift
       } ifelse
     } ifelse
     translate
  } bind
>> setpagedevice


Для удобства просмотра и переносимости PS нужно преобразовать в PDF
командой ps2pdf SRC.PS DST.PDF
djvu -- растровый формат. Скорее всего, он вам не нужен.

 Профиль  
                  
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 18:46 


11/04/08
632
Марс
Sphinx Pinastri в сообщении #750516 писал(а):
Если нет, то надо добавить следующий фрагмент в начало файда.


прямо в самое начало так?
Код:
<< /PageSize [370 550]
   /BeginPage {
     currentpagedevice /PageCount get
     dup 0 eq {
       pop
       -140 -190    % 1st page shift
     } {
       1 and 1 eq {
         -140 -190   % odd page shift
       } {
         -100  -190  % even page shift
       } ifelse
     } ifelse
     translate
  } bind
>> setpagedevice
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
%%Title: moctitle_neu.dvi
%%Pages: 151
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -o CoMoChaT.ps moctitle_neu.dvi
%DVIPSParameters: dpi=600, compressed
%DVIPSSource:  TeX output 2001.02.21:1243
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict

не получается. конвертирую в pdf через texmaker, получается на выходе pdf, но пустой - без текста.

Я уже попробывал в djvu конвертнуть и распечать. Получилось вполно нормально. Текст менее четкий чем в pdf, но зато с полями проблем нет.

 Профиль  
                  
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 19:03 
Аватара пользователя


20/10/12
308
Возьмите готовый PDF здесь:
http://www.coscript.biz/files/CoMoChaT2.pdf

Можно и в начало. DSC conformance обычно не нужно.

 Профиль  
                  
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 20:25 


11/04/08
632
Марс
Sphinx Pinastri в сообщении #750544 писал(а):
Возьмите готовый PDF здесь: http://www.coscript.biz/files/CoMoChaT2.pdf

отлично. спасибо!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group