File: eposeps.m

package info (click to toggle)
octave-epstk 1.6-2
  • links: PTS
  • area: main
  • in suites: potato
  • size: 6,540 kB
  • ctags: 57
  • sloc: makefile: 34
file content (53 lines) | stat: -rw-r--r-- 1,388 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
%%NAME
%%  einceps  -  include eps-file 
%%
%%SYNOPSIS
%%  einceps(xPos,yPos,epsFileName,[,scaleX[,scaleY[,rotation]]])
%%
%%PARAMETER(S)
%%  xPos          x position
%%  yPos          y position
%%  epsFileName   name of eps-file 
%%  scaleX        scale factor in x-direction
%%  scaleY        scale factor in y-direction
% written by Stefan Mueller stefan.mueller@fgan.de

function einceps(xPos,yPos,epsFileName,scaleX,scaleY,rotation)
  if nargin<3 |nargin>6
    usage('eposeps(xPos,yPos,epsFileName,[,scaleX[,scaleY[,rotation]]])');
  end
  if nargin<6
    rotation=0;
  end
  if nargin<5
    scaleY=1;
  end
  if nargin<4
    scaleX=1;
  end
  eglobpar;
  fprintf(eFile,'gsave %1.2f %1.2f translate\n',xPos*eFac,yPos*eFac);
  fprintf(eFile,'%1.2f rotate\n',rotation);
  fprintf(eFile,'%1.2f %1.2f scale\n',scaleX,scaleY);
  epsFile=fopen(epsFileName,'r');

  if epsFile>1
    % get file length
    fseek(epsFile,0,1); 
    epsFileLength=ftell(epsFile)
    fclose(epsFile);
    bufferSize=100000;
    epsFile=fopen(epsFileName,'r');
    nBuffer=fix(epsFileLength/bufferSize);
    tail=rem(epsFileLength,bufferSize);
    for i=1:nBuffer
      buffer=fread(epsFile,bufferSize,'char');
      fwrite(eFile,buffer,'char');
    end
    if tail>0 
      buffer=fread(epsFile,tail,'char');
      fwrite(eFile,buffer,'char');
    end
    fclose(epsFile);
  end
  fprintf(eFile,'grestore\n');