یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دورهها
استفاده از تخفیفهاسلام، میخواستم توی پروژه جنگوم، اطلاعاتی از کاربر بگیرم و در قالبی که میخوام پرینتشون بگیرم، به عبارت دیگه کاربر اینپوت هامو پر کنه منم بچینمشچن توی یه برگه آچار و پرینتش کنم بدم ببره... کتابخونه ای چیزی...
مشکلی هم که دارم اینه که اصلا توی سرچ هرچی میزنم اصل ساخت فرم های جنگو رو میاره نه کتابخونه ای چیزی که بشه باهاش فرم کاغذی برای چاپ ساخت... خیلی ممنون واقعا پیشاپیش...
برای ساختن فرمهای کاغذی و پرینت گرفتن از دادههای ورودی در پروژههای Django، شما میتوانید از ابزارهایی استفاده کنید که برای تولید PDF یا ساخت صفحات HTML برای پرینت مناسب هستند. این کار معمولاً شامل مراحل زیر است:
استفاده از ReportLab
برای ساخت PDF:
ReportLab
یک کتابخانه قدرتمند برای تولید فایلهای PDF در پایتون است. با استفاده از این کتابخانه، میتوانید فرمها یا اطلاعات کاربر را دریافت کرده و سپس آنها را در قالب PDF و به صورت دلخواه نمایش دهید تا برای پرینت آماده باشد.
نصب:
برای استفاده از ReportLab
، ابتدا باید آن را نصب کنید:
pip install reportlab
در ادامه یک نمونه ساده برای ایجاد فایل PDF آورده شده است که اطلاعات کاربر را از فرم گرفته و در قالب جدول در فایل PDF نمایش میدهد:
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
def create_pdf(data):
c = canvas.Canvas("user_data_form.pdf", pagesize=letter)
width, height = letter
# تنظیمات برای نوشتن روی صفحه
c.setFont("Helvetica", 12)
# نمایش اطلاعات کاربر
y_position = height - 50 # شروع از بالای صفحه
for key, value in data.items():
c.drawString(50, y_position, f"{key}: {value}")
y_position -= 20 # فاصله خطها
# ذخیره PDF
c.save()
# نمونه دادهها از فرم
user_data = {
"نام": "محمد علی",
"سن": "33",
"شهر": "تهران",
}
create_pdf(user_data)
استفاده از WeasyPrint
برای تولید فایل PDF از HTML:
اگر بخواهید یک قالب HTML طراحی کنید و از آن برای چاپ استفاده کنید، میتوانید از WeasyPrint
استفاده کنید که HTML را به PDF تبدیل میکند.
نصب:
pip install weasyprint
ابتدا یک قالب HTML برای فرم خود بسازید و سپس آن را به PDF تبدیل کنید:
from weasyprint import HTML
def generate_pdf_from_html(html_content):
HTML(string=html_content).write_pdf("output_form.pdf")
# قالب HTML برای فرم
html_content = """
<html>
<head><title>Form</title></head>
<body>
<h1>فرم اطلاعات کاربر</h1>
<p><strong>نام:</strong> محمد علی</p>
<p><strong>سن:</strong> 33</p>
<p><strong>شهر:</strong> تهران</p>
</body>
</html>
"""
generate_pdf_from_html(html_content)
3.استفاده از django-xhtml2pdf
برای تولید PDF در Django**:
در صورتی که بخواهید از قالبهای HTML در Django استفاده کنید و آنها را به PDF تبدیل کنید، میتوانید از کتابخانه django-xhtml2pdf
استفاده کنید.
pip install xhtml2pdf
در ابتدا، باید یک view بسازید که اطلاعات کاربر را گرفته و آنها را در قالب HTML نمایش دهد، سپس HTML را به PDF تبدیل کند.
from xhtml2pdf import pisa
from django.http import HttpResponse
from django.template.loader import render_to_string
def generate_pdf_view(request):
user_data = {
"نام": "محمد علی",
"سن": "33",
"شهر": "تهران",
}
# استفاده از قالب HTML برای ساخت PDF
html_string = render_to_string('pdf_template.html', {'user_data': user_data})
# تولید PDF
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="user_form.pdf"'
pisa_status = pisa.CreatePDF(html_string, dest=response)
if pisa_status.err:
return HttpResponse('Error generating PDF')
return response
در اینجا، شما باید یک فایل pdf_template.html
داشته باشید که قالب HTML فرم شما باشد و سپس از دادههای کاربر در آن استفاده کنید.
pdf_template.html
):<html>
<head><title>فرم اطلاعات</title></head>
<body>
<h1>فرم اطلاعات کاربر</h1>
<p><strong>نام:</strong> {{ user_data.نام }}</p>
<p><strong>سن:</strong> {{ user_data.سن }}</p>
<p><strong>شهر:</strong> {{ user_data.شهر }}</p>
</body>
</html>
با استفاده از این ابزارها، میتوانید به راحتی فرمهایی با دادههای ورودی کاربر ایجاد کنید و آنها را به قالبهای قابل چاپ مانند PDF تبدیل کنید. ReportLab
و WeasyPrint
برای تبدیل به PDF از HTML یا دادهها استفاده میشوند و django-xhtml2pdf
میتواند مستقیماً در Django به شما کمک کند.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟