Otoceni strany o 90 stupnu v psotscriptu
Petr Sojka
sojka na daeron.fi.muni.cz
Čtvrtek Listopad 7 21:24:38 CET 1996
Jeste k otaceni v postscriptu pro ty, kdo jeste pamatuji
FORTRAN. POuziti je vsak patrne omezeno na vystup z dvips.
Petr Sojka
F77 source code:
PROGRAM A4COL2
C
C this program converts a PS-file to produce output
C in twocolumn-landscape format
C
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
CHARACTER LINE*80,LCOL*(*),RCOL*(*),EOC*(*)
LOGICAL EVEN,IMPORT
PARAMETER(IINF=5,IOUT=6)
PARAMETER(
$ EOC='/eoc{SI restore userdict /eop-hook known{eop-hook}if}N',
$ LCOL='90 rotate 0 -600 translate 0.707 0.707 scale',
$ RCOL='550 0 translate')
10 READ(IINF,'(A72)',END=999) LINE
DO 20 LSPACE=72,1,-1
20 IF (LINE(LSPACE:LSPACE).NE.' ') GOTO 30
30 CONTINUE
IF (LINE(1:8).EQ.'%%Pages:') THEN
READ(LINE(9:),'(I)') NPAGES
WRITE(IOUT,'(A,I)') '%%Pages: ',(NPAGES-1)/2+1
WRITE(IOUT,'(A)') '%%Modified A4-> A5'
ELSEIF(LINE(LSPACE-12:LSPACE).EQ.'restore}B end') THEN
WRITE(IOUT,'(A)') LINE(1:LSPACE-4)
WRITE(IOUT,'(A)') EOC//' end'
ELSEIF (LINE(1:LSPACE).EQ.'%%EndSetup') THEN
WRITE(IOUT,'(A)') LINE(1:LSPACE)
WRITE(IOUT,'(A)') LCOL
GOTO 31
ELSE
WRITE(IOUT,'(A)') LINE(1:LSPACE)
ENDIF
GOTO 10
31 CONTINUE
NPAGE=0
EVEN=.FALSE.
IMPORT=.FALSE.
40 READ(IINF,'(A72)',END=999) LINE
DO 50 LSPACE=72,1,-1
50 IF (LINE(LSPACE:LSPACE).NE.' ') GOTO 60
60 CONTINUE
c skip modification of imported postscript-files
IF (LINE(1:15).EQ.'%%BeginDocument') THEN
IMPORT=.TRUE.
ELSEIF (LINE(1:13).EQ.'%%EndDocument') THEN
IMPORT=.FALSE.
ENDIF
IF (LINE(LSPACE-2:LSPACE).EQ.'eop'.AND..NOT.IMPORT) THEN
IF(.NOT.EVEN.AND.NPAGE.NE.NPAGES) LINE(LSPACE-2:LSPACE)='eoc'
WRITE(IOUT,'(A)') LINE(1:LSPACE)
IF(NPAGE.EQ.NPAGES) GOTO 40
IF(.NOT.EVEN) WRITE(IOUT,'(A)') RCOL
IF(EVEN) WRITE(IOUT,'(A)') LCOL
ELSEIF (LINE(1:7).EQ.'%%Page:'.AND..NOT.IMPORT) THEN
NPAGE=NPAGE+1
EVEN=.FALSE.
IF ((NPAGE/2)*2.EQ.NPAGE) THEN
EVEN=.TRUE.
ELSE
WRITE(IOUT,'(A,2I4,L)') LINE(1:7),NPAGE/2+1,NPAGE/2+1
ENDIF
ELSE
WRITE(IOUT,'(A)') LINE(1:LSPACE)
ENDIF
GOTO 40
999 CONTINUE
END
--
A.C.Steenbrink na wbmt.tudelft.nl
Sander Steenbrink
Laboratory of Engineering Mechanics
Delft University of Technology
P.O. Box 5033, 2600 GA Delft
the Netherlands
phone + 31 15 2786506 Personal Home Page:
fax + 31 15 2782150 http://www-tm.wbmt.tudelft.nl/~stbrink
Další informace o konferenci Linux