یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دوره‌ها

استفاده از تخفیف‌ها
ثانیه
دقیقه
ساعت
روز
مصطفی
1 ماه پیش توسط مصطفی مطرح شد
1 پاسخ

طراحی فرم کاغذی با جنگو

سلام، میخواستم توی پروژه جنگوم، اطلاعاتی از کاربر بگیرم و در قالبی که میخوام پرینتشون بگیرم، به عبارت دیگه کاربر اینپوت هامو پر کنه منم بچینمشچن توی یه برگه آچار و پرینتش کنم بدم ببره... کتابخونه ای چیزی...
مشکلی هم که دارم اینه که اصلا توی سرچ هرچی میزنم اصل ساخت فرم های جنگو رو میاره نه کتابخونه ای چیزی که بشه باهاش فرم کاغذی برای چاپ ساخت... خیلی ممنون واقعا پیشاپیش...


ثبت پرسش جدید
حمد علی حسام
تخصص : کارمند گارانتی
@alihesam111 4 هفته پیش مطرح شد
0

برای ساختن فرم‌های کاغذی و پرینت گرفتن از داده‌های ورودی در پروژه‌های Django، شما می‌توانید از ابزارهایی استفاده کنید که برای تولید PDF یا ساخت صفحات HTML برای پرینت مناسب هستند. این کار معمولاً شامل مراحل زیر است:

  1. استفاده از 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)
  1. استفاده از 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

استفاده در Django:

در ابتدا، باید یک 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 فرم شما باشد و سپس از داده‌های کاربر در آن استفاده کنید.

مثال از قالب 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 به شما کمک کند.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام