diff options
Diffstat (limited to 'fedora_business_cards')
-rw-r--r-- | fedora_business_cards/frontend/cmdline.py | 9 | ||||
-rw-r--r-- | fedora_business_cards/generate.py | 23 |
2 files changed, 28 insertions, 4 deletions
diff --git a/fedora_business_cards/frontend/cmdline.py b/fedora_business_cards/frontend/cmdline.py index 958aa33..b14fe3a 100644 --- a/fedora_business_cards/frontend/cmdline.py +++ b/fedora_business_cards/frontend/cmdline.py @@ -58,6 +58,10 @@ def main(): parser.add_option("-u", "--username", dest="username", default="", help="If set, use a different name than the one logged"+\ " in with to fill out business card information") + parser.add_option("-x", "--width", dest="width", default="", + help="If set, use a different height") + parser.add_option("-y", "--height", dest="height", default="", + help="If set, use a different width") parser.add_option("--pdf", dest="output", default="png", const="pdf", action="store_const", help="Export as PDF") parser.add_option("--png", dest="output", default="png", const="png", @@ -149,7 +153,8 @@ def main(): # generate front of business card print "Generating front...", sys.stdout.flush() - xml = generate.gen_front(name, title, lines, frontloc) + xml = generate.gen_front(name, title, lines, frontloc, + options.width, options.height) if options.output == "svg": export.svg_to_file(xml, options.username+'-front.'+options.output) elif options.output == "cmyk_pdf": @@ -160,7 +165,7 @@ def main(): # generate back of business card print "Generating back...", sys.stdout.flush() - xml = generate.gen_back(backloc) + xml = generate.gen_back(backloc, options.width, options.height) if options.output == "svg": export.svg_to_file(xml, options.username+'-back.'+options.output) elif options.output == "cmyk_pdf": diff --git a/fedora_business_cards/generate.py b/fedora_business_cards/generate.py index 91f1e14..cf2b4e1 100644 --- a/fedora_business_cards/generate.py +++ b/fedora_business_cards/generate.py @@ -37,24 +37,43 @@ def find_node(doc_node, tag_name, attribute_name, attribute_value): return element -def gen_front(name, title, lines, template_loc): +def gen_front(name, title, lines, template_loc, width=None, height=None): """ Generates the front of the business card. """ dom = minidom.parse(template_loc) + namenode = find_node(dom, 'text', 'id', 'fullname') namenode.appendChild(dom.createTextNode(name)) titlenode = find_node(dom, 'text', 'id', 'title') titlenode.appendChild(dom.createTextNode(title)) + if width or height: + svg = find_node(dom, 'svg', 'id', 'svg') + svg.setAttribute('width', width) + svg.setAttribute('height', height) + svg.setAttribute('viewBox', '0 0 '+width+' '+height) + whiteness = find_node(dom, 'rect', 'id', 'whiteness') + whiteness.setAttribute('height', height) + blueband = find_node(dom, 'rect', 'id', 'blueband') + blueband.setAttribute('height', height) + blueband.setAttribute('width', width) for i in range(6): node = find_node(dom, 'tspan', 'id', 'line%d' % (i+1)) node.appendChild(dom.createTextNode(lines[i])) return dom.toxml() -def gen_back(template_loc): +def gen_back(template_loc, width=None, height=None): """ Generates the back of the business card. """ dom = minidom.parse(template_loc) + if width or height: + svg = find_node(dom, 'svg', 'id', 'svg') + svg.setAttribute('width', width) + svg.setAttribute('height', height) + svg.setAttribute('viewBox', '0 0 '+width+' '+height) + background = find_node(dom, 'rect', 'id', 'background') + background.setAttribute('width', width) + background.setAttribute('height', height) return dom.toxml() |