2014 dxdy logo

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

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




 
 надо отредактировать ps-файл
Сообщение30.07.2013, 14:01 
есть файл 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 
Аватара пользователя
Попробуйте поиграться цифрами в этой строке - это прямоугольник, в котором все рисуется:

%%BoundingBox: 0 0 596 842

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

 
 
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 15:00 
Corund в сообщении #750437 писал(а):
Попробуйте поиграться цифрами в этой строке - это прямоугольник, в котором все рисуется:

%%BoundingBox: 0 0 596 842

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

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

 
 
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 15:11 
Аватара пользователя
Посмотрел - да - это заголовок для просмотрщиков документа, чтобы заранее знали размер страницы для отрисовки...

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

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

 
 
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 15:55 
Corund в сообщении #750447 писал(а):
Как вариант - вставить команду сдвига начальных координат - типа такой (сдвиг придется подбирать):
100 100 translate

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

 
 
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 16:49 
Аватара пользователя
Нужен весь файл, а не только начало.
Размер страницы определяется коммандой setpagedevice. Там его и надо менять.
Начальную CTM можно изменить с помощью аттрибута /StartPage .
Длина файла зависит от многих причин -- надо смотреть ваш файл.

 
 
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 17:22 
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 
Аватара пользователя
Если нет, то надо добавить следующий фрагмент в начало файда.

Код:
<< /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 
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 
Аватара пользователя
Возьмите готовый PDF здесь:
http://www.coscript.biz/files/CoMoChaT2.pdf

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

 
 
 
 Re: надо отредактировать ps-файл
Сообщение30.07.2013, 20:25 
Sphinx Pinastri в сообщении #750544 писал(а):
Возьмите готовый PDF здесь: http://www.coscript.biz/files/CoMoChaT2.pdf

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

 
 
 [ Сообщений: 11 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group