Hand-coded PostScript logo; semi-automated svg logo

This commit is contained in:
Jay Berkenbilt 2018-02-17 21:46:21 -05:00
parent 83d82a85d0
commit 356e715228
2 changed files with 131 additions and 0 deletions

124
logo/qpdf.ps Normal file
View File

@ -0,0 +1,124 @@
%!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

7
logo/qpdf.svg Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="512pt" height="420pt" viewBox="0 0 512 420" version="1.1">
<g id="surface1">
<path style="fill:none;stroke-width:100;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 350 50 L 4770 50 C 4935.664062 50 5070 184.296875 5070 350 L 5070 3850 C 5070 4015.664062 4935.664062 4150 4770 4150 L 350 4150 C 184.296875 4150 50 4015.664062 50 3850 L 50 350 C 50 184.296875 184.296875 50 350 50 Z M 350 50 " transform="matrix(0.1,0,0,-0.1,0,420)"/>
<path style="fill:none;stroke-width:100;stroke-linecap:round;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 1213.984375 2500 C 1213.984375 2720.898438 1034.921875 2900 813.984375 2900 C 593.085938 2900 413.984375 2720.898438 413.984375 2500 C 413.984375 2279.101562 593.085938 2100 813.984375 2100 C 1034.921875 2100 1213.984375 2279.101562 1213.984375 2500 L 1213.984375 800 C 1213.984375 634.296875 1348.320312 500 1513.984375 500 L 4406.015625 500 C 4571.679688 500 4706.015625 634.296875 4706.015625 800 L 4706.015625 2400 M 2407.109375 2500 C 2407.109375 2720.898438 2228.046875 2900 2007.109375 2900 C 1786.210938 2900 1607.109375 2720.898438 1607.109375 2500 C 1607.109375 2279.101562 1786.210938 2100 2007.109375 2100 C 2228.046875 2100 2407.109375 2279.101562 2407.109375 2500 M 1607.109375 2500 L 1607.109375 1300 M 3512.890625 2500 C 3512.890625 2720.898438 3333.789062 2900 3112.890625 2900 C 2891.953125 2900 2712.890625 2720.898438 2712.890625 2500 C 2712.890625 2279.101562 2891.953125 2100 3112.890625 2100 C 3333.789062 2100 3512.890625 2279.101562 3512.890625 2500 L 3512.890625 3700 M 3906.015625 2100 L 3906.015625 3400 C 3906.015625 3565.664062 4040.3125 3700 4206.015625 3700 L 4406.015625 3700 C 4571.679688 3700 4706.015625 3565.664062 4706.015625 3400 M 3906.015625 2850 L 4546.015625 2850 " transform="matrix(0.1,0,0,-0.1,0,420)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB