SimpleDocTemplate
numaralı bir rapora sahibim ve bunu dinamik bir PDF olarak döndürüyorum. Bazı Django model meta verilerine dayanarak içerik oluşturuyorum. Kolayca Story
listesine Entry
modelinden metinsel meta ekleyebilir Mevcut PDF'yi akışkanlar aracılığıyla yeni ReportLab PDF'ye birleştirme
buff = StringIO()
doc = SimpleDocTemplate(buff, pagesize=letter,
rightMargin=72,leftMargin=72,
topMargin=72,bottomMargin=18)
Story = []
inşa edilecek sonradan: İşte benim şablon düzmece
ptext = '<font size=20>%s</font>' % entry.title.title()
paragraph = Paragraph(ptext, custom_styles["Custom"])
Story.append(paragraph)
Sonra PDF tarafından yanıt olarak iade edilecek üretmek SimpleDocTemplate
üzerine build
arayarak:
doc.build(Story, onFirstPage=entry_page_template, onLaterPages=entry_page_template)
pdf = buff.getvalue()
resp = HttpResponse(mimetype='application/x-download')
resp['Content-Disposition'] = 'attachment;filename=logbook.pdf'
resp.write(pdf)
return resp
bir meta veri modeline bir dosya attachm olduğunu ent. Bu dosya ekleri PDF'ler olduğunda, bunları oluşturduğum öyküye dahil etmek isterim; IE, rapor edilebilir "akıcı" tipte bir PDF anlamına gelir.
pdfrw
'u kullanmayı denedim, ancak hiç şansınız olmadı.
from pdfrw import PdfReader
pdf = pPdfReader(entry.document.file.path)
Story.append(pdf)
ve yukarıda belirtildiği gibi mevcut Story listeye pdf nihai belgenin nesil dahil edilecek ekleyin: İdeal Sadece arayıp isteriz.
Herhangi bir fikri olan var mı? Ben bu örneği takip etmeye çalışıyorum, pdf oluşturmak için pagexobj kullanarak benzer bir şey denedim:
http://code.google.com/p/pdfrw/source/browse/trunk/examples/rl1/subset.py
from pdfrw.buildxobj import pagexobj
from pdfrw.toreportlab import makerl
pdf = pagexobj(PdfReader(entry.document.file.path))
Ama her iki herhangi şans yoktu. Birisi mevcut bir PDF dosyasını akıcı bir rapor dosyasına birleştirmenin en iyi yolunu açıklayabilir mi? Bu şeylerle pek iyi değilim ve günler için kafamı pdf-jenerasyonunda becermeye başladım. :) Herhangi bir yön büyük takdir!
Bunu, ReportLab'ın ücretli sürümü ile yapabileceğinizi düşünüyorum. –
Ugh, maalesef ReportLab'ın ücretli sürümü benim için bir seçenek değil. :(Herhangi bir alternatif var mı? – kyleturner