GAO_A 2022-08-11 19:20 采纳率: 33.3%
浏览 12
已结题

django 用reportlab将页面转成pdf

问题遇到的现象和发生背景

django 用reportlab 把当前页面转成pdf可以下载的那种
现在网上找到的都是一个some_view()只有一个hello world。难道要一个个p.drawString()吗?教人教一半我也是服了

问题相关代码,请勿粘贴截图
import io
from app01 import models
from django import forms
from django.http import FileResponse
from django.shortcuts import redirect, render
from django.utils.safestring import mark_safe
from reportlab.pdfgen import canvas

def some_view(request):
    # Create a file-like buffer to receive PDF data.
    buffer = io.BytesIO()

    # Create the PDF object, using the buffer as its "file."
    p = canvas.Canvas(buffer)

    # Draw things on the PDF. Here's where the PDF generation happens.
    # See the ReportLab documentation for the full list of functionality.
    p.drawString(100, 100, "Hello world.")

    # Close the PDF object cleanly, and we're done.
    p.showPage()
    p.save()

    # FileResponse sets the Content-Disposition header so that browsers
    # present the option to save the file.
    buffer.seek(0)
    return FileResponse(buffer, as_attachment=True, filename="hello.pdf")


def user_list(res):
    page_str = ""
    size = 10
    d = 0
    page = int(res.GET.get("page", 1))
    if page == 1:
        start_page = 0
        end_page = size
    else:
        end_page = page * size
        start_page = end_page - size
    total_data = models.UserInfo.objects.all().count()
    data = models.UserInfo.objects.all()[start_page:end_page]
    title = [field.verbose_name for field in models.UserInfo._meta.fields]
    for i in range(1, total_data + 1, 10):
        d += 1
        if page == d:
            page_str += f"""
  • ">page={d}">{d}
  • """
    else: page_str += f"""
  • page={d}">{d}
  • """
    page_str = mark_safe(page_str) return render(res, "user_list.html", {"data": data, "title": title, "page_str": page_str})
    运行结果及报错内容

    怎样才能实现user_list视图的pdf化

    我的解答思路和尝试过的方法

    这是一个下载按钮

    img

    我想要达到的结果

    some_view视图的执行是这样的

    img

    • 写回答

    0条回答 默认 最新

      报告相同问题?

      问题事件

      • 系统已结题 8月19日
      • 创建了问题 8月11日

      悬赏问题

      • ¥300 寻抓云闪付tn组成网页付款链接
      • ¥15 请问Ubuntu要怎么安装chrome呀?
      • ¥15 视频编码 十六进制问题
      • ¥15 Xsheii7我安装这个文件的时候跳出来另一个文件已锁定文件的无一部分进程无法访问。这个该怎么解决
      • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
      • ¥15 FileNotFoundError 解决方案
      • ¥15 uniapp实现如下图的图表功能
      • ¥15 u-subsection如何修改相邻两个节点样式
      • ¥30 vs2010开发 WFP(windows filtering platform)
      • ¥15 服务端控制goose报文控制块的发布问题