############################################################################## # # Copyright (c) 2007-2012 Zope Foundation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTLAR PURPOSE. # ############################################################################## """Testing all XML Locale functionality. """ import reportlab.platypus import reportlab.lib.styles import reportlab.graphics.widgets.markers from reportlab.graphics import renderPDF, shapes from reportlab.lib import colors from z3c.rml import attr, interfaces, SampleStyleSheet def myPreformatted(params): return reportlab.platypus.Preformatted(''' Hey, this is a long text from a plugin. Hey, this is a long text from a plugin. Hey, this is a long text from a plugin. Hey, this is a long text from a plugin. Hey, this is a long text from a plugin. Hey, this is a long text from a plugin. Hey, this is a long text from a plugin. Hey, this is a long text from a plugin. Hey, this is a long text from a plugin. Hey, this is a long text from a plugin. Hey, this is a long text from a plugin. Hey, this is a long text from a plugin. Hey, this is a long text from a plugin. Hey, this is a long text from a plugin. Hey, this is a long text from a plugin. Hey, this is a long text from a plugin.''', SampleStyleSheet['Normal']) class LinkURL(reportlab.platypus.flowables.Flowable): def __init__(self, link): self.link = link def wrap(self, *args): return (0, 0) def draw(self): self.canv.linkURL(self.link, None) def linkURL(params): params = eval(params) return ( reportlab.platypus.Paragraph( params[0], SampleStyleSheet['Normal']), LinkURL(*params)) class IMarker(interfaces.IRMLDirectiveSignature): x = attr.Measurement() y = attr.Measurement() dx = attr.Measurement() dy = attr.Measurement() size = attr.Measurement() fillColor = attr.Color(acceptNone=True, required=False) strokeColor = attr.Color(acceptNone=True, required=False) strokeWidth = attr.Measurement(required=False) arrowBarDx = attr.Measurement(required=False) arrowHeight = attr.Measurement(required=False) def symbols(canvas, params): args = eval('dict(%s)' %params) name = args.pop('name') n = args.pop('n') for key, value in args.items(): field = IMarker[key].bind(canvas.manager) args[key] = field.fromUnicode(value) m = reportlab.graphics.widgets.markers.makeMarker(name, **args) drawing = shapes.Drawing() drawing.add(m) for idx in range(n): drawing.drawOn(canvas, idx*args['dx'], idx*args['dy'])