Printing & Document Templates

سوالات متداول: محتوای قالب

سوالات متداول درباره متغیرها، قالب‌بندی، بارکدها و ویژگی‌های پیشرفته قالب.

۲۰ سرطان ۱۴۰۵

س: تفاوت بین متغیر و تابع کمکی در قالب‌ها چیست؟

ج: متغیر جایگزین‌شی است که داده از سند را درج می‌کند (مثلاً {{invoice.number}}). کمک‌دهنده تابعی است که داده را تبدیل یا قالب‌بندی می‌کند (مثلاً {{date_jalali invoice.date}} تاریخ را به فرمت هجری شمسی تبدیل می‌کند، {{currency total_amount}} عدد را با جداکننده‌های هزارگانی قالب‌بندی می‌کند). متغیرها فقط داده را نمایش می‌دهند؛ توابع کمکی منطق یا قالب‌بندی اعمال می‌کنند.


س: قالب من فاصله‌های خالی را نشان می‌دهد جایی که متغیرها باید باشند. چرا؟

ج: متغیر یا وجود ندارد، یا نام‌شناسی اشتباه است، یا در سند مقدار ندارد. نام متغیر را با راهنمای متغیرها مقایسه کنید. برای مثال، اگر مشتری شماره تلفن وارد نکرده است، {{customer.phone}} خالی خواهد بود. از کمک‌دهنده {{#if}} برای پنهان کردن فیلدهای خالی استفاده کنید: {{#if customer.phone}}<p>تلفن: {{customer.phone}}</p>{{/if}}.


س: آیا می‌توانم منطق شرطی (if/else) را به قالب‌ها اضافه کنم؟

ج: بله. برای نشان دادن یا پنهان کردن محتوا بر اساس شرط از نحوی Handlebars {{#if}}...{{/if}} استفاده کنید:

{{#if discount_amount}}
  <p>تخفیف: {{currency discount_amount}}</p>
{{/if}}

این پاراگراف تخفیف را فقط در صورتی نمایش می‌دهد که مقدار تخفیف وجود داشته باشد. می‌توانید همچنین {{#unless}} را برای عکس استفاده کنید: {{#unless is_paid}}<p>این فاکتور پرداخت نشده است.</p>{{/unless}}.


س: چگونه می‌توانم آرم شرکت را به هر سند اضافه کنم؟

ج: برچسب <img> را با مسیر آرم شما اضافه کنید:

<img src="https://example.com/logo.png" alt="آرم شرکت" style="max-width: 150px;" />

یا از قالب کوچک (بخش قابل استفاده مجدد) برای درج آرم در قالب‌های متعدد استفاده کنید. سرصفحه و پاصفحه قابل استفاده مجدد را ببینید.


س: آیا می‌توانم اقلام خطی (خط‌های فاکتور، خط‌های بل) را در قالب خود درج کنم؟

ج: بله، برای تکرار اقلام خطی از حلقه {{#each}} استفاده کنید:

{{#each line_items}}
  <tr>
    <td>{{item.description}}</td>
    <td>{{item.quantity}}</td>
    <td>{{currency item.unit_price}}</td>
    <td>{{currency item.total}}</td>
  </tr>
{{/each}}

این بلوک <tr> را برای هر مورد خطی در سند تکرار می‌کند.


س: آیا بارکدها یا کدهای QR چاپ را کند می‌کنند؟

ج: نه. بارکدها و کدهای QR در زمان render قالب تولید می‌شوند و به عنوان تصویر در PDF یا خروجی چاپ تعبیه می‌شوند. آنها تأثیر کارایی ناچیز دارند. با این حال، اطمینان حاصل کنید که داده کد QR (مثلاً URL) طول معقول است (~100–2000 کاراکتر)؛ داده فوق‌العاده طولانی ممکن است تولید را کمی کند.


س: کمک‌دهنده {{currency}} چه اسعاری را پشتیبانی می‌کند؟

ج: کمک‌دهنده {{currency}} به‌طور خودکار اعداد را بر اساس تنظیم اسعار سند قالب‌بندی می‌کند. اگر سند به AFN (افغانی) است، مبالغ با قالب‌بندی AFN نمایش داده می‌شوند (مثلاً "5,000.00 AFN"). اگر سند به USD است، به فرمت USD نمایش داده می‌شود. نیازی برای مشخص کردن اسعار در کمک‌دهنده نیست؛ از اسعار فعال سند استفاده می‌کند.


س: آیا می‌توانم متن قالب را به زبان‌های متعدد ترجمه کنم؟

ج: بله. از کمک‌دهنده ترجمه {{t "key"}} استفاده کنید:

<h1>{{t "invoice.title"}}</h1>
<p>{{t "invoice.due_date"}}</p>

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


س: چگونه می‌توانم سرصفحه یا پاصفحه را در هر صفحه از سند طولانی تکرار کنم؟

ج: بیشتر سیستم‌های چاپ (مبدل‌های HTML به PDF) قوانین CSS @page را پشتیبانی می‌کنند. این را به بلوک <style> خود اضافه کنید:

@page {
  margin-top: 20mm;
  margin-bottom: 20mm;
}
@page :first {
  margin-top: 50mm; /* فاصله اضافی در صفحه اول برای عنوان */
}

سپس از برچسب‌های <header> و <footer> (یا عناصر <div> قرار‌گرفته‌ی position: fixed) برای قرار دادن محتوایی که تکرار می‌شود استفاده کنید. با اسناد چندصفحه‌ای واقعی تست کنید تا رفتار را تأیید کنید.


س: آیا می‌توانم فونت‌های سفارشی را در قالب‌ها استفاده کنم؟

ج: بیشتر قالب‌ها فونت‌های web-safe را پشتیبانی می‌کنند (Arial، Times New Roman، Verdana و غیره). برخی از سیستم‌ها به شما اجازه می‌دهند فونت‌های سفارشی را با استفاده از @font-face در CSS خود تعبیه کنید:

@font-face {
  font-family: 'MyCustomFont';
  src: url('https://example.com/font.woff2') format('woff2');
}
body { font-family: 'MyCustomFont', Arial, sans-serif; }

با این حال، فونت‌های تعبیه‌شده ممکن است در تمام چاپگرها کار نکنند. مگر اینکه بدانید سیستم چاپ شما فونت‌های سفارشی را پشتیبانی می‌کند، از فونت‌های استاندارد استفاده کنید. اگر مطمئن نیستید، با ادمین تماس بگیرید.

آیا این مطلب مفید بود؟

موارد مشابه