qpdf.ps 3.07 KB
%!PS-Adobe-2.0 EPSF-2.0
%%Creator: E. Jay Berkenbilt
%%Title: qpdf logo
%%CreationDate: $Date: 2000/02/11 03:25:50 $
%%Orientation: Portrait
%%BoundingBox: 0 0 512 420
%%Pages: 0
%%EndComments
%
% $Id: postscript,v 1.4 2000/02/11 03:25:50 ejb Exp $
% $Source: /home/ejb/templates/RCS/postscript,v $
% $Author: ejb $
%

%
% To generate svg:
% * Use ps2pdf to convert to pdf
% * Edit the mediabox of the page in the pdf to match the bounding box
% * Use pdf2svg to generate the svg file
%

%%BeginProlog

% Bounding box and page bounding box must match fullwidth and fullheight.
/fullheight 420 def % must be { outerheight linewidth add }
/fullwidth 512 def

/linewidth 10 def
/outerwidth fullwidth linewidth sub def
/radius 30 def
/letterwidth 80 def
/fudge .08 def
/letterheight letterwidth 2 mul def
/outerheight letterheight 2 mul radius 3 mul add def
/space outerwidth letterwidth 4 mul sub 5 div def
/margin space def

% radius drawOuter
/drawOuter {
  gsave
    newpath
      linewidth setlinewidth
      radius 0 moveto
      outerwidth 0 outerwidth radius radius arcto
      outerwidth outerheight outerheight radius sub outerheight radius arcto
      0 outerheight 0 outerheight radius sub radius arcto
      0 0 radius 0 radius arcto
      closepath
    stroke
  grestore
} def

% r draw-circle -- draw circle centered at current point
/draw-circle {
  1 dict begin
    /r exch def
    currentpoint exch r sub exch r 0 360 arc
  end
} def

%%EndProlog

%%Page: 1 1
%%PageBoundingBox: 0 0 512 420

linewidth 2 div fullheight outerheight sub 2 div translate
drawOuter
gsave
  linewidth setlinewidth
  1 setlinecap
  newpath
    % position to left of q
    margin outerheight 2 div moveto
    % draw q
    letterwidth letterwidth 2 div rmoveto
    letterwidth 2 div draw-circle
    0 letterheight letterwidth 2 div add radius sub neg rlineto
    currentpoint radius sub % x1 y1
      2 copy exch letterwidth add exch % x2 y2
      radius arcto
    letterwidth 3 mul space 3 mul add radius 2 mul sub 0 rlineto
    currentpoint exch radius add exch
      2 copy radius add
      radius arcto
    0 letterheight rlineto

    % position to left of p
    margin letterwidth space add add outerheight 2 div moveto
    space fudge mul 0 rmoveto
    letterwidth letterwidth 2 div rmoveto
    letterwidth 2 div draw-circle
    letterwidth neg 0 rmoveto
    0 letterheight letterwidth 2 div sub neg rlineto

    % position to left of d
    margin letterwidth space add 2 mul add outerheight 2 div moveto
    space fudge mul neg 0 rmoveto
    letterwidth letterwidth 2 div rmoveto
    letterwidth 2 div draw-circle
    0 letterheight letterwidth 2 div sub rlineto

    % position to left of f
    margin letterwidth space add 3 mul add outerheight 2 div moveto
    % draw f
    currentpoint letterheight add
      2 copy exch radius add exch
      radius arcto
    currentpoint exch radius sub letterwidth add exch
      2 copy radius sub
      radius arcto
    letterwidth neg letterheight
      letterwidth sub radius sub
      linewidth 2 div add neg rmoveto
    letterwidth .8 mul 0 rlineto


  stroke
grestore

%%PageTrailer

%%Trailer

%%EOF