aboutsummaryrefslogtreecommitdiffstats
path: root/logo/qpdf.ps
blob: 98bea8a55159b5efd218cb7c4bce7d7aeb2f8aa5 (plain) (blame)
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
%!PS-Adobe-2.0 EPSF-2.0
%%Creator: Jay Berkenbilt
%%Title: qpdf logo
%%BoundingBox: 0 0 128 105
%%Pages: 0
%%EndComments

%
% 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 when adjusted by the scale factor.

/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 128 105

.25 dup scale
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