使用Django和PIL/Django Photologue动态创建和保存图像

使用Django和PIL/Django Photologue动态创建和保存图像,django,image-processing,python-imaging-library,photologue,Django,Image Processing,Python Imaging Library,Photologue,我想生成一个包含动态内容的html页面,然后将结果保存为图像,并将页面显示给用户。所以,用户注册参加会议,并给出他们的姓名和组织。这些数据与html/css元素相结合,以显示他们的会议id徽章的外观(他们的名称和组织位于我们的会议徽标背景之上),以供预览。经批准后,该页面将以图像格式(PNG、PDF或JPG)保存在服务器上,以便管理员稍后将其打印到物理徽章上。我使用的是由PIL提供动力的Django和Django photologue 视图可能是这样的 # app/views.py def b

我想生成一个包含动态内容的html页面,然后将结果保存为图像,并将页面显示给用户。所以,用户注册参加会议,并给出他们的姓名和组织。这些数据与html/css元素相结合,以显示他们的会议id徽章的外观(他们的名称和组织位于我们的会议徽标背景之上),以供预览。经批准后,该页面将以图像格式(PNG、PDF或JPG)保存在服务器上,以便管理员稍后将其打印到物理徽章上。我使用的是由PIL提供动力的Django和Django photologue

视图可能是这样的

# app/views.py

def badgepreview(request, attendee_id):
    u = User.objects.get(id=attendee_id)
    name = u.name
    org = u.org

    return render_to_response('app/badgepreview.html',
        {'name':name,'org':org,},
        context_instance = RequestContext(request),
    )
{# templates/app/badgepreview.html #}
{% extends "base.html" %}
{% block page_body %}
    <div style='background:url(/site_media/img/logo_bg.png) no-repeat;'>
        <h4>{{ name }}</h4>
        <h4>{{ org }}</h4>
    </div>
{% endblock %}
模板可以如下所示

# app/views.py

def badgepreview(request, attendee_id):
    u = User.objects.get(id=attendee_id)
    name = u.name
    org = u.org

    return render_to_response('app/badgepreview.html',
        {'name':name,'org':org,},
        context_instance = RequestContext(request),
    )
{# templates/app/badgepreview.html #}
{% extends "base.html" %}
{% block page_body %}
    <div style='background:url(/site_media/img/logo_bg.png) no-repeat;'>
        <h4>{{ name }}</h4>
        <h4>{{ org }}</h4>
    </div>
{% endblock %}
{#templates/app/badgepreview.html}
{%extends“base.html”%}
{%block page_body%}
{{name}}
{{org}
{%endblock%}

简单,但如何保存结果?还是有更好的方法来完成这项工作?

我唯一能想到的是分两步完成:

a) 用于将HTML转换为PDF

b) 使用类似的方法将PDF转换为图像

我无法想象这样做会很快


您最好只是转换并允许他们下载PDF(即使用上面的步骤a)或尝试直接生成徽章,而不使用HTML中间步骤。

您是否考虑过使用PIL动态生成图像?