当前位置: 首页>>代码示例>>Python>>正文


Python SimpleDocTemplate.pagesize方法代码示例

本文整理汇总了Python中reportlab.platypus.doctemplate.SimpleDocTemplate.pagesize方法的典型用法代码示例。如果您正苦于以下问题:Python SimpleDocTemplate.pagesize方法的具体用法?Python SimpleDocTemplate.pagesize怎么用?Python SimpleDocTemplate.pagesize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在reportlab.platypus.doctemplate.SimpleDocTemplate的用法示例。


在下文中一共展示了SimpleDocTemplate.pagesize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: print_mass_pay

# 需要导入模块: from reportlab.platypus.doctemplate import SimpleDocTemplate [as 别名]
# 或者: from reportlab.platypus.doctemplate.SimpleDocTemplate import pagesize [as 别名]
def print_mass_pay(request, year):
    """
    This function contains the required methods to create a PDF
    report. It will be merged with the salary app some time 
    later.
    """

    def sch (c):
        try:
            return c.permanent and c.permanent.organization_serving()
        except:
            return c.organization_serving()
        
    payment_codes = PaymentCode.objects.all()
    category_titles = PaymentCategoryTitle.objects.all()
    emp = Employee.objects.get(id=request.session['matched_employee_id'])
    try:
        emptype = Permanent.objects.get(parent_id=emp.id)
    except Permanent.DoesNotExist:
        try:
            emptype = NonPermanent.objects.get(parent_id=emp.id)
        except NonPermanent.DoesNotExist:
            try:
                emptype = Administrative.objects.get(parent_id=emp.id)
            except Administrative.DoesNotExist:
                emptype = 0
    except:
        raise

    emp_payments = rprts_from_user(emp.id, year, '11,12,21')

        

    u = set([x['employee_id'] for x in emp_payments])
    y = {x['employee_id']: x['year'] for x in emp_payments}
    dict_emp = {c.id: [c.lastname,
                       c.firstname,
                       c.vat_number,
                       c.fathername,
                       c.address,
                       c.tax_office,
                       u'%s' % c.profession,
                       u'%s' % c.profession.description,
                       c.telephone_number1,
                       sch(c)] for c in Employee.objects.filter(id__in=u)}
            
    elements = []
    reports = []
    for empx in u:
        r_list = calc_reports(filter(lambda s: s['employee_id'] == empx, emp_payments))
        hd = r_list[0]
        ft = [r_list[-2]] + [r_list[-1]]
        dt = r_list
        del dt[0]
        del dt[-2]
        del dt[-1]
        newlist = []
        output = dict()
        for sublist in dt:
            try:
                output[sublist[0]] = map(operator.add, output[sublist[0]], sublist[1:])
            except KeyError:
                output[sublist[0]] = sublist[1:]
        for key in output.keys():
            newlist.append([key] + output[key])
        newlist.sort(key=lambda x: x[0], reverse=True)
        r_list = [hd] + newlist + ft
        report = {}
        report['report_type'] = '1'
        report['type'] = ''
        report['year'] = y[empx]
        report['emp_type'] = 0
        report['vat_number'] = dict_emp[empx][2]
        report['lastname'] = dict_emp[empx][0]
        report['firstname'] = dict_emp[empx][1]
        report['fathername'] = dict_emp[empx][3]
        report['address'] = dict_emp[empx][4]
        report['tax_office'] = dict_emp[empx][5]
        report['profession'] = ' '.join([dict_emp[empx][6], dict_emp[empx][7]])
        report['telephone_number1'] = dict_emp[empx][8]      
        report['rank'] = None
        report['net_amount1'] = ''
        report['net_amount2'] = ''
        report['organization_serving'] = dict_emp[empx][9]
        report['payment_categories'] = r_list
        reports.append(report)


    response = HttpResponse(mimetype='application/pdf')
    response['Content-Disposition'] = 'attachment; filename=pay_report_%s.pdf' % year
    registerFont(TTFont('DroidSans', os.path.join(settings.MEDIA_ROOT,
                                                  'DroidSans.ttf')))
    registerFont(TTFont('DroidSans-Bold', os.path.join(settings.MEDIA_ROOT,
                                                       'DroidSans-Bold.ttf')))

    doc = SimpleDocTemplate(response, pagesize=A4)
    doc.topMargin = 0.5 * cm
    doc.bottomMargin = 0.5 * cm
    doc.leftMargin = 1.5 * cm
    doc.rightMargin = 1.5 * cm
#.........这里部分代码省略.........
开发者ID:nisiotis,项目名称:dideman,代码行数:103,代码来源:views.py


注:本文中的reportlab.platypus.doctemplate.SimpleDocTemplate.pagesize方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。