示例#1
0
文件: views.py 项目: HEG-Arc/voices
def print_poster_A4(request, qr_id):
    qrcode = QRcode.objects.get(pk=int(qr_id))
    response = HttpResponse(mimetype='application/pdf')
    response['Content-Disposition'] = 'attachment; filename="posterA4-%s.pdf"; size=A4' % (str(qrcode.room.room_number))

    p = canvas.Canvas(response)
    p.drawImage('/home/cgaspoz/Dev/voices/static/templates/talk_to_us_A4.jpg', 0, 0, width=210*mm, height=297*mm)

    qr_size = 90.5*mm
    qr_x = 60*mm
    qr_y = 63*mm

    qrw = QrCodeWidget(settings.HTTP_URL + "qr/" + str(qrcode.qr) + "/")
    qrw.barHeight = qr_size
    qrw.barWidth = qr_size
    qrw.barLevel = 'Q'  # M, L, H, Q
    qrw.barBorder = 0

    d = Drawing(qr_size, qr_size)
    d.add(qrw)
    d.add(Rect(5.6*mm, 5.6*mm, 8*mm, 8*mm, strokeColor=colors.CMYKColor(1, 0, 0, 0), fillColor=colors.CMYKColor(1, 0, 0, 0)))
    d.add(Rect(76.9*mm, 76.9*mm, 8*mm, 8*mm, strokeColor=colors.CMYKColor(1, 0, 0, 0), fillColor=colors.CMYKColor(1, 0, 0, 0)))
    d.add(Rect(5.6*mm, 76.9*mm, 8*mm, 8*mm, strokeColor=colors.CMYKColor(1, 0, 0, 0), fillColor=colors.CMYKColor(1, 0, 0, 0)))

    renderPDF.draw(d, p, qr_x, qr_y)

    p.showPage()

    text = p.beginText()
    text.setTextOrigin(12*mm,277*mm)
    text.setFillGray(0.5)
    text.setFont("Helvetica", 10)
    text.textLines('''
        Talk to us! @ HE-Arc
        Campus: %s
        Building: %s
        Floor: %s
        Room: %s-%s
        QR-Code: %s''' % (qrcode.room.floor.building.campus.name, qrcode.room.floor.building.name,
                          qrcode.room.floor.floor_display, qrcode.room.room_number, qrcode.room.room_name, qrcode.qr))
    p.drawText(text)

    p.showPage()

    p.save()

    return response
示例#2
0
def users_passwords_to_pdf(pdf):
    """
    Create access data sheets for all users as PDF
    """
    users_pdf_wlan_ssid = config["users_pdf_wlan_ssid"] or "-"
    users_pdf_wlan_password = config["users_pdf_wlan_password"] or "-"
    users_pdf_wlan_encryption = config["users_pdf_wlan_encryption"] or "-"
    users_pdf_url = config["users_pdf_url"] or "-"
    users_pdf_welcometitle = config["users_pdf_welcometitle"]
    users_pdf_welcometext = config["users_pdf_welcometext"]
    if config['users_sort_users_by_first_name']:
        sort = 'first_name'
    else:
        sort = 'last_name'
    qrcode_size = 2 * cm
    # qrcode for system url
    qrcode_url = QrCodeWidget(users_pdf_url)
    qrcode_url.barHeight = qrcode_size
    qrcode_url.barWidth = qrcode_size
    qrcode_url.barBorder = 0
    qrcode_url_draw = Drawing(45, 45)
    qrcode_url_draw.add(qrcode_url)
    # qrcode for wlan
    text = "WIFI:S:%s;T:%s;P:%s;;" % (users_pdf_wlan_ssid,
                                      users_pdf_wlan_encryption,
                                      users_pdf_wlan_password)
    qrcode_wlan = QrCodeWidget(text)
    qrcode_wlan.barHeight = qrcode_size
    qrcode_wlan.barWidth = qrcode_size
    qrcode_wlan.barBorder = 0
    qrcode_wlan_draw = Drawing(45, 45)
    qrcode_wlan_draw.add(qrcode_wlan)

    for user in User.objects.all().order_by(sort):
        pdf.append(Paragraph(escape(user), stylesheet['h1']))
        pdf.append(Spacer(0, 1 * cm))
        data = []
        # WLAN access data
        cell = []
        cell.append(Paragraph(_("WLAN access data"), stylesheet['h2']))
        cell.append(
            Paragraph("%s:" % _("WLAN name (SSID)"), stylesheet['formfield']))
        cell.append(
            Paragraph(escape(users_pdf_wlan_ssid),
                      stylesheet['formfield_value']))
        cell.append(
            Paragraph("%s:" % _("WLAN password"), stylesheet['formfield']))
        cell.append(
            Paragraph(escape(users_pdf_wlan_password),
                      stylesheet['formfield_value']))
        cell.append(
            Paragraph("%s:" % _("WLAN encryption"), stylesheet['formfield']))
        cell.append(
            Paragraph(escape(users_pdf_wlan_encryption),
                      stylesheet['formfield_value']))
        cell.append(Spacer(0, 0.5 * cm))
        # OpenSlides access data
        cell2 = []
        cell2.append(Paragraph(_("OpenSlides access data"), stylesheet['h2']))
        cell2.append(Paragraph("%s:" % _("Username"), stylesheet['formfield']))
        cell2.append(
            Paragraph(escape(user.username), stylesheet['formfield_value']))
        cell2.append(Paragraph("%s:" % _("Password"), stylesheet['formfield']))
        cell2.append(
            Paragraph(escape(user.default_password),
                      stylesheet['formfield_value']))
        cell2.append(Paragraph("URL:", stylesheet['formfield']))
        cell2.append(
            Paragraph(escape(users_pdf_url), stylesheet['formfield_value']))
        data.append([cell, cell2])
        # QRCodes
        cell = []
        if users_pdf_wlan_ssid != "-" and users_pdf_wlan_encryption != "-":
            cell.append(qrcode_wlan_draw)
            cell.append(
                Paragraph(_("Scan this QRCode to connect WLAN."),
                          stylesheet['qrcode_comment']))
        cell2 = []
        if users_pdf_url != "-":
            cell2.append(qrcode_url_draw)
            cell2.append(
                Paragraph(_("Scan this QRCode to open URL."),
                          stylesheet['qrcode_comment']))
        data.append([cell, cell2])
        # build table
        table = Table(data)
        table._argW[0] = 8 * cm
        table._argW[1] = 8 * cm
        table.setStyle(TableStyle([('VALIGN', (0, 0), (-1, -1), 'TOP')]))
        pdf.append(table)
        pdf.append(Spacer(0, 2 * cm))

        # welcome title and text
        pdf.append(Paragraph(escape(users_pdf_welcometitle), stylesheet['h2']))
        pdf.append(
            Paragraph(
                escape(users_pdf_welcometext).replace('\r\n', '<br/>'),
                stylesheet['Paragraph12']))
        pdf.append(PageBreak())
    return pdf
示例#3
0
    def append_to_pdf(self, story):
        system_wlan_ssid = config["system_wlan_ssid"] or "-"
        system_wlan_password = config["system_wlan_password"] or "-"
        system_wlan_encryption = config["system_wlan_encryption"] or "-"
        system_url = config["system_url"] or "-"
        participant_pdf_welcometitle = config["participant_pdf_welcometitle"]
        participant_pdf_welcometext = config["participant_pdf_welcometext"]
        if config['participant_sort_users_by_first_name']:
            sort = 'first_name'
        else:
            sort = 'last_name'
        qrcode_size = 2 * cm
        # qrcode for system url
        qrcode_url = QrCodeWidget(system_url)
        qrcode_url.barHeight = qrcode_size
        qrcode_url.barWidth = qrcode_size
        qrcode_url.barBorder = 0
        qrcode_url_draw = Drawing(45, 45)
        qrcode_url_draw.add(qrcode_url)
        # qrcode for wlan
        text = "WIFI:S:%s;T:%s;P:%s;;" % (system_wlan_ssid, system_wlan_encryption, system_wlan_password)
        qrcode_wlan = QrCodeWidget(text)
        qrcode_wlan.barHeight = qrcode_size
        qrcode_wlan.barWidth = qrcode_size
        qrcode_wlan.barBorder = 0
        qrcode_wlan_draw = Drawing(45, 45)
        qrcode_wlan_draw.add(qrcode_wlan)

        for user in User.objects.all().order_by(sort):
            story.append(Paragraph(unicode(user), stylesheet['h1']))
            story.append(Spacer(0, 1 * cm))
            data = []
            # WLAN access data
            cell = []
            cell.append(Paragraph(_("WLAN access data"),
                        stylesheet['h2']))
            cell.append(Paragraph("%s:" % _("WLAN name (SSID)"),
                        stylesheet['formfield']))
            cell.append(Paragraph(system_wlan_ssid,
                        stylesheet['formfield_value']))
            cell.append(Paragraph("%s:" % _("WLAN password"),
                        stylesheet['formfield']))
            cell.append(Paragraph(system_wlan_password,
                        stylesheet['formfield_value']))
            cell.append(Paragraph("%s:" % _("WLAN encryption"),
                        stylesheet['formfield']))
            cell.append(Paragraph(system_wlan_encryption,
                        stylesheet['formfield_value']))
            cell.append(Spacer(0, 0.5 * cm))
            # OpenSlides access data
            cell2 = []
            cell2.append(Paragraph(_("OpenSlides access data"),
                         stylesheet['h2']))
            cell2.append(Paragraph("%s:" % _("Username"),
                         stylesheet['formfield']))
            cell2.append(Paragraph(user.username,
                         stylesheet['formfield_value']))
            cell2.append(Paragraph("%s:" % _("Password"),
                         stylesheet['formfield']))
            cell2.append(Paragraph(user.default_password,
                         stylesheet['formfield_value']))
            cell2.append(Paragraph("URL:",
                         stylesheet['formfield']))
            cell2.append(Paragraph(system_url,
                         stylesheet['formfield_value']))
            data.append([cell, cell2])
            # QRCodes
            cell = []
            if system_wlan_ssid != "-" and system_wlan_encryption != "-":
                cell.append(qrcode_wlan_draw)
                cell.append(Paragraph(_("Scan this QRCode to connect WLAN."),
                            stylesheet['qrcode_comment']))
            cell2 = []
            if system_url != "-":
                cell2.append(qrcode_url_draw)
                cell2.append(Paragraph(_("Scan this QRCode to open URL."),
                             stylesheet['qrcode_comment']))
            data.append([cell, cell2])
            # build table
            table = Table(data)
            table._argW[0] = 8 * cm
            table._argW[1] = 8 * cm
            table.setStyle(TableStyle([('VALIGN', (0, 0), (-1, -1), 'TOP')]))
            story.append(table)
            story.append(Spacer(0, 2 * cm))

            # welcome title and text
            story.append(Paragraph(participant_pdf_welcometitle,
                         stylesheet['h2']))
            story.append(Paragraph(participant_pdf_welcometext.replace('\r\n', '<br/>'),
                         stylesheet['Paragraph12']))
            story.append(PageBreak())
示例#4
0
def users_passwords_to_pdf(pdf):
    """
    Create access data sheets for all users as PDF.
    """
    users_pdf_wlan_ssid = config["users_pdf_wlan_ssid"] or "-"
    users_pdf_wlan_password = config["users_pdf_wlan_password"] or "-"
    users_pdf_wlan_encryption = config["users_pdf_wlan_encryption"] or "-"
    users_pdf_url = config["users_pdf_url"] or "-"
    users_pdf_welcometitle = config["users_pdf_welcometitle"]
    users_pdf_welcometext = config["users_pdf_welcometext"]
    if config['users_sort_users_by_first_name']:
        sort = 'first_name'
    else:
        sort = 'last_name'
    qrcode_size = 2 * cm
    # qrcode for system url
    qrcode_url = QrCodeWidget(users_pdf_url)
    qrcode_url.barHeight = qrcode_size
    qrcode_url.barWidth = qrcode_size
    qrcode_url.barBorder = 0
    qrcode_url_draw = Drawing(45, 45)
    qrcode_url_draw.add(qrcode_url)
    # qrcode for wlan
    text = "WIFI:S:%s;T:%s;P:%s;;" % (users_pdf_wlan_ssid, users_pdf_wlan_encryption, users_pdf_wlan_password)
    qrcode_wlan = QrCodeWidget(text)
    qrcode_wlan.barHeight = qrcode_size
    qrcode_wlan.barWidth = qrcode_size
    qrcode_wlan.barBorder = 0
    qrcode_wlan_draw = Drawing(45, 45)
    qrcode_wlan_draw.add(qrcode_wlan)

    for user in User.objects.all().order_by(sort):
        pdf.append(Paragraph(escape(user.get_full_name()), stylesheet['h1']))
        pdf.append(Spacer(0, 1 * cm))
        data = []
        # WLAN access data
        cell = []
        cell.append(Paragraph(_("WLAN access data"),
                    stylesheet['h2']))
        cell.append(Paragraph("%s:" % _("WLAN name (SSID)"),
                    stylesheet['formfield']))
        cell.append(Paragraph(escape(users_pdf_wlan_ssid),
                    stylesheet['formfield_value']))
        cell.append(Paragraph("%s:" % _("WLAN password"),
                    stylesheet['formfield']))
        cell.append(Paragraph(escape(users_pdf_wlan_password),
                    stylesheet['formfield_value']))
        cell.append(Paragraph("%s:" % _("WLAN encryption"),
                    stylesheet['formfield']))
        cell.append(Paragraph(escape(users_pdf_wlan_encryption),
                    stylesheet['formfield_value']))
        cell.append(Spacer(0, 0.5 * cm))
        # OpenSlides access data
        cell2 = []
        cell2.append(Paragraph(_("OpenSlides access data"),
                     stylesheet['h2']))
        cell2.append(Paragraph("%s:" % _("Username"),
                     stylesheet['formfield']))
        cell2.append(Paragraph(escape(user.username),
                     stylesheet['formfield_value']))
        cell2.append(Paragraph("%s:" % _("Password"),
                     stylesheet['formfield']))
        cell2.append(Paragraph(escape(user.default_password),
                     stylesheet['formfield_value']))
        cell2.append(Paragraph("URL:",
                     stylesheet['formfield']))
        cell2.append(Paragraph(escape(users_pdf_url),
                     stylesheet['formfield_value']))
        data.append([cell, cell2])
        # QRCodes
        cell = []
        if users_pdf_wlan_ssid != "-" and users_pdf_wlan_encryption != "-":
            cell.append(qrcode_wlan_draw)
            cell.append(Paragraph(_("Scan this QRCode to connect WLAN."),
                        stylesheet['qrcode_comment']))
        cell2 = []
        if users_pdf_url != "-":
            cell2.append(qrcode_url_draw)
            cell2.append(Paragraph(_("Scan this QRCode to open URL."),
                         stylesheet['qrcode_comment']))
        data.append([cell, cell2])
        # build table
        table = Table(data)
        table._argW[0] = 8 * cm
        table._argW[1] = 8 * cm
        table.setStyle(TableStyle([('VALIGN', (0, 0), (-1, -1), 'TOP')]))
        pdf.append(table)
        pdf.append(Spacer(0, 2 * cm))

        # welcome title and text
        pdf.append(Paragraph(escape(users_pdf_welcometitle), stylesheet['h2']))
        pdf.append(Paragraph(escape(users_pdf_welcometext).replace('\r\n', '<br/>'),
                   stylesheet['Paragraph12']))
        pdf.append(PageBreak())
    return pdf