2011-11-14 14 views
0

djangoからフォームデータを含むライブサイクルフォームを作成しようとしています。今私はコードが正しく行われていると思いますが、私は生きているフォームの構造に苦労しています。現在、私はAdobe Acrobatで作成されたものではなく、ライブバイトで作成されたpdfを作成する能力を持っています。 Livecycleのファイル構造はありますか?ここでライブサイクルフォームをDjangoで塗りつぶす

は、私はPDFを埋めるために呼び出す関数である。ここでは

def print_rdba(client=None, data=None, investment_form=None): 
from django.http import HttpResponse 
from clients.models import Client 
from dateutil.parser import parse 
from settings import URL 
from datetime import date 
file = '' 
print data 
fdf = '<?xml version="1.0" encoding="UTF-8"?>\n<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">\n\t<fields>' 
fdf += fdf_val_str("primary1_lastname", data.get('lastname')) 
fdf += fdf_val_str("primary1_firstname", data.get('firstname')) 

if investment_form: 
    file = "%s%s" % (URL, investment_form.file.url) 

fdf += '''</fields> 
    <f href="%s" target="_blank"/> 
    </xfdf>''' % file 

fdf = fdf.replace('^M', '') 

response = HttpResponse(fdf.encode("ISO-8859-1"), mimetype='application/pdf') 
response['Content-Disposition'] = 'attachment; filename=form.xfdf' 
return response 

はfdf_val_strです:

def fdf_val_str(field, val): 
val = str(val).replace('&','&amp;') 
return '<field name="%s"><value>%s</value></field>\n' % (field, val) 

私のviews.pyで私のクライアントの編集機能:

@login_required 
@user_passes_test(lambda u: u.is_staff or u.rep_set.get().add_clients, login_url='/') 
def edit(request, client=None, *args, **kwargs): 
from clients.forms import ClientForm 
from entity.forms import LocationForm 
from investments.models import InvestmentForm 
from lib.tools import print_rdba 
... 
rdba_btn = InvestmentForm.objects.get(id=3) 
context = {} 
... 
if request.POST.has_key('submit-%s' % rdba_btn.code): 
      request.user.message_set.create(message='Generating PDF form') 
      return print_rdba(client=client, data=form.data, investment_form=rdba_btn) 

どんな助けも大いにありがとうございます

答えて

-1

LiveCycle Formsがインストールされていますか?その後、ジャンゴとXMLデータを生成して、LiveCycleに送信するPDFフォーム

編集レンダリングすることができます: をそして、あなたは、LiveCycle DesignerはXFDF

からの応答を
+0

おかげで異なるXFAベースのフォームを生成気付くはずです。私はXFAベースのフォームに関するヘルプを探します – TheLifeOfSteve

+0

あなたはそれがどのように行われたか説明できますか? Livecycleが自動的にこれを行うことはできません。 – kefeizhou

+0

LiveCycleサーバーへのアクセス権がある場合は動作します。 LiveCycle Designerとは別のソリューションです。 – azathoth