aboutsummaryrefslogtreecommitdiff
path: root/Lib/fontTools/pens/reportLabPen.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/fontTools/pens/reportLabPen.py')
-rw-r--r--Lib/fontTools/pens/reportLabPen.py135
1 files changed, 71 insertions, 64 deletions
diff --git a/Lib/fontTools/pens/reportLabPen.py b/Lib/fontTools/pens/reportLabPen.py
index 43217d42..2cb89c8b 100644
--- a/Lib/fontTools/pens/reportLabPen.py
+++ b/Lib/fontTools/pens/reportLabPen.py
@@ -7,67 +7,74 @@ __all__ = ["ReportLabPen"]
class ReportLabPen(BasePen):
- """A pen for drawing onto a ``reportlab.graphics.shapes.Path`` object."""
-
- def __init__(self, glyphSet, path=None):
- BasePen.__init__(self, glyphSet)
- if path is None:
- path = Path()
- self.path = path
-
- def _moveTo(self, p):
- (x,y) = p
- self.path.moveTo(x,y)
-
- def _lineTo(self, p):
- (x,y) = p
- self.path.lineTo(x,y)
-
- def _curveToOne(self, p1, p2, p3):
- (x1,y1) = p1
- (x2,y2) = p2
- (x3,y3) = p3
- self.path.curveTo(x1, y1, x2, y2, x3, y3)
-
- def _closePath(self):
- self.path.closePath()
-
-
-if __name__=="__main__":
- import sys
- if len(sys.argv) < 3:
- print("Usage: reportLabPen.py <OTF/TTF font> <glyphname> [<image file to create>]")
- print(" If no image file name is created, by default <glyphname>.png is created.")
- print(" example: reportLabPen.py Arial.TTF R test.png")
- print(" (The file format will be PNG, regardless of the image file name supplied)")
- sys.exit(0)
-
- from fontTools.ttLib import TTFont
- from reportlab.lib import colors
-
- path = sys.argv[1]
- glyphName = sys.argv[2]
- if (len(sys.argv) > 3):
- imageFile = sys.argv[3]
- else:
- imageFile = "%s.png" % glyphName
-
- font = TTFont(path) # it would work just as well with fontTools.t1Lib.T1Font
- gs = font.getGlyphSet()
- pen = ReportLabPen(gs, Path(fillColor=colors.red, strokeWidth=5))
- g = gs[glyphName]
- g.draw(pen)
-
- w, h = g.width, 1000
- from reportlab.graphics import renderPM
- from reportlab.graphics.shapes import Group, Drawing, scale
-
- # Everything is wrapped in a group to allow transformations.
- g = Group(pen.path)
- g.translate(0, 200)
- g.scale(0.3, 0.3)
-
- d = Drawing(w, h)
- d.add(g)
-
- renderPM.drawToFile(d, imageFile, fmt="PNG")
+ """A pen for drawing onto a ``reportlab.graphics.shapes.Path`` object."""
+
+ def __init__(self, glyphSet, path=None):
+ BasePen.__init__(self, glyphSet)
+ if path is None:
+ path = Path()
+ self.path = path
+
+ def _moveTo(self, p):
+ (x, y) = p
+ self.path.moveTo(x, y)
+
+ def _lineTo(self, p):
+ (x, y) = p
+ self.path.lineTo(x, y)
+
+ def _curveToOne(self, p1, p2, p3):
+ (x1, y1) = p1
+ (x2, y2) = p2
+ (x3, y3) = p3
+ self.path.curveTo(x1, y1, x2, y2, x3, y3)
+
+ def _closePath(self):
+ self.path.closePath()
+
+
+if __name__ == "__main__":
+ import sys
+
+ if len(sys.argv) < 3:
+ print(
+ "Usage: reportLabPen.py <OTF/TTF font> <glyphname> [<image file to create>]"
+ )
+ print(
+ " If no image file name is created, by default <glyphname>.png is created."
+ )
+ print(" example: reportLabPen.py Arial.TTF R test.png")
+ print(
+ " (The file format will be PNG, regardless of the image file name supplied)"
+ )
+ sys.exit(0)
+
+ from fontTools.ttLib import TTFont
+ from reportlab.lib import colors
+
+ path = sys.argv[1]
+ glyphName = sys.argv[2]
+ if len(sys.argv) > 3:
+ imageFile = sys.argv[3]
+ else:
+ imageFile = "%s.png" % glyphName
+
+ font = TTFont(path) # it would work just as well with fontTools.t1Lib.T1Font
+ gs = font.getGlyphSet()
+ pen = ReportLabPen(gs, Path(fillColor=colors.red, strokeWidth=5))
+ g = gs[glyphName]
+ g.draw(pen)
+
+ w, h = g.width, 1000
+ from reportlab.graphics import renderPM
+ from reportlab.graphics.shapes import Group, Drawing, scale
+
+ # Everything is wrapped in a group to allow transformations.
+ g = Group(pen.path)
+ g.translate(0, 200)
+ g.scale(0.3, 0.3)
+
+ d = Drawing(w, h)
+ d.add(g)
+
+ renderPM.drawToFile(d, imageFile, fmt="PNG")