رفتن به مطلب

استفاده از فونت های فارسی در فاکتور PDF + کمک برای رفع مشکلات


پست های پیشنهاد شده

سلام دوستان

 

من چند مدته دنبال راهی برای استفاده از فونت های فارسی توی خروجی PDF پرستاشاپ میگردم.

 

دو راه وجود داره که هردو مشکلاتی داره که اینجا هر دو را مطرح میکنم تا با کمک دوستان بتونیم حلشون کنیم ان شا الله...

 

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

 

1- از اونجا که پرستا شاپ از کتابخانه TCPDF استفاده میکنه و درون توماتوشاپ هم از همین کتابخانه استفاده میشه یک راه پیشنهادی یکی از دوستان توماتو کار در لینک زیر پیشنهاد داده که با افزودن فونت های ایشون به کتابخانه TCPDF در پرستاشاپ میشه جواب گرفت. فقط مشکل این روش این هست که بعضی کاراکتر ها با فاصله چاپ میشن و خروجی یه کم به هم ریخته میشه

لینک دانلود فونت ها:

http://forum.tomatoshop.ir/Thread-%D9%81%D8%A7%DA%A9%D8%AA%D9%88%D8%B1-%D8%A8%D8%A7-%D8%AF%D9%88-%D9%81%D9%88%D9%86%D8%AA-%DB%8C%D8%A7%D9%82%D9%88%D8%AA-%D9%88-%D9%86%D8%A7%D8%B2%D9%86%DB%8C%D9%86

 

بعد از دانلود فونت ها اونها را در پوشه زیر کپی کنید:

prestashop/tools/tcpdf/fonts

و بعد فایل PDFGenerator.php را از آدرس زیر باز کرده و تغییراتی که در ادامه میگم را توش اعمال کنید:

مسیر:

prestashop/classes/pdf/PDFGenerator.php

یک آرایه درونش هست که مربوط به فونت های پیش فرض برای زبانهای مختلف هست که باید درون آرایه مقابل fa نام یکی از فونت های دانلود شده را بنویسید.

'fa' => 'dejavusans',

را تغییر بدید به

'fa' => 'nazaninb',

با این کار خروجی فاکتور شما با فونت نازنین میشه اما همونطور که گفتم یکسری مشکلاتی داره.

 

راه حل دوم

2- راه حل دوم اینکه باید با خود کتابخانه TCPDF یک فونت فارسی .ttf را به فونت استاندارد TCPDF دربیارید. برای این کار از کد زیر استفاده میکنیم:

$pdf->addTTFfont('E:\Fonts\Font irani\BYEKAN.TTF', 'TrueTypeUnicode', '', 32);

(فونت تبدیل شده در پیوست مطلب هست، فایل های را منتقل کنید به پوشه فونت tcpdf در پرستاشاپ)

متد addTTFfont میاد و فونت را از آدرس مربوطه میخونه و به سه فایل مورد نیاز TCPDF تبدیل میکنه و خودش اون را درون پوشه فونت این کتابخانه یعنی prestashop/tcpdf/fonts میریزه.

 

حالا باید دوتا تغییر درون فایل PDFGenerator.pdf بدید

اول: باید فونت را برای فارسی تغییر بدید. یعنی

'fa' => 'dejavusans',

را تغییر بدید به

'fa' => 'byekan',

دوم: باید متد معرفی فونت را در همین فایل پیدا کنید و تغییر بدید یعنی:

$this->setFont($this->font);

را تغییر دهید به

$this->setFont($this->font, '', 16,'',FALSE);

با این کار فونت فارسی به درستی جواب میده و تمامی کاراکتر ها را بدون فاصله و بدون مشکل میاره اما مشکل اصلی این روش این هست که کاراکاترهای انگلیسی درون فاکتور را به جاشون یک مربع میذاره

 

از دوستان خواهش دارم هر دو روش را روی نسخه های آزمایشی که نصب دارند تست کنند تا با هم دنبال راهی بگردیم برای حل کامل این مشکل.

 

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

سلام

ممنون از شما

البته قبلا چند فونت برای این منظور درست کرده بودم که در تاپیک دیگه ای گذاشتم ولی مشکل اصلی همونه که فونت های فارسی با کلمات انگلیسی مشکل دارند. بقیه موارد رو میشه یه کاریش کرد

 

موفق باشید

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

سلام

 

مشکل خود فونت فارسی هست

 

با نرم افزار FontLab Studio و با کمی حوصله میتونید کاراکترهای انگلیسی یه فونت دیگه مثل tahoma رو به فونت فارسی منتقل کنید و مشکل رو رفع کنید

 

موفق باشید

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

سلام.

تشکر ویژه از دوستمون بخاطر اشتراک این تجربشون .

بد ندونستم منم تا یه فونت مناسب برا اینکار تولید بشه تجربه خودمو از این کار بگم.

 

من قبلا با کمک فونتایی که جناب شاد ارسال کرده بودن این کارو کرده بودم و مشکل مربع نشون دادن حروف انگلیسی بود .

که بازم با راهنمایی ایشون بخش هایی که کاراکتر انگلیسی داشتن رو داخل فایل invoic به همون فونت قبلی یعنی dejavusans تغییر دادم.

اینطوری تا حدود زیادی مشکل من حل شد . چون من داخل نام کالاهام حروف لاتین نداشتم و فقط مجبور شدم چند قسمت زیر رواز طریق استایلدهی فونتشون رو غیر فارسی کنم :

 

شماره فاکتور

مرجع سفارش

مرجع یا همون کد کالاهام

 

البته به نظر من حتی اگه داخل نام کالاهاتون حروف لاتین دارید و مجبورید فونت اون بخش رو هم پیشفرض کنید خیلی بهتر از اینه که کلا تغییر ندین .

چون کلیه اعداد . آدرس مشتری . توضیحات فاکتور تیترها و... فارسی میشن و ظاهر بهتری به فاکتور هاتون میدن. ک

کافیه یکم آشنایی به html هم داشته باشد و فایل invoic داخل پوشه pdf رو ویرایش کنید و ظاهر فاکتورتون رو رسمی تر کنید .

البته اگه توی نت به انگلیسی یه جستجویی بکنید چند قالب آماده برای فاکتور pdf هست که میتونید اونا رو جایگزین قالب فعلی فاکتور کنید .

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

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

با استفاده از فونت هایی که همراه توماتوشاپ بود مشکل من حل شد.(پیوست ایمیل)

 

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

 

به این صورت که کل محتوای فایل invoice.tpl را درون تگ زیر قرار دادم

{capture assign="pageBody"}

{/capture}
{$pageBody|replace:',':''}

از کسانی که فونت فارسی نازنین را برای tcpdf آماده کردند کمال تشکر را دارم..

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

  • 9 months later...

راهی که من برای نمایش درست ارقام با فونت فارسی توماتوشاپ جدا شده با کاما پیدا کردم قراردادن یک کاراکتر فاصله &nbsp دقیقا در ابتدای کد نمایش قیمت‌ها در فایل pdf بود به شکل زیر:

 {displayPrice...
لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

  • 2 months later...

با استفاده از فونت هایی که همراه توماتوشاپ بود مشکل من حل شد.(پیوست ایمیل)

 

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

 

به این صورت که کل محتوای فایل invoice.tpl را درون تگ زیر قرار دادم

{capture assign="pageBody"}

{/capture}
{$pageBody|replace:',':''}

از کسانی که فونت فارسی نازنین را برای tcpdf آماده کردند کمال تشکر را دارم..

 

با درودو ادب

بنده هم یه همچین مشکلی دارم

مشابه فایل پیوست

وقتی از فاکتور خروجی PDF میگیرم قیمت کالا برعکس نشون میده مثلا 2,514,400 به صورت 514,400,2 نمایش داده میشه که احتمالا به خاطر کاراکتر جدا کننده (,9) باشه

ممنون میشم راهنمایی بفرمایین که چطوری اینو حل کنم

 

 

post-10618-0-54759800-1471851529_thumb.png

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

درود ، توی نسخه 1.6.1.5 که همین الان توی لوکال تست کردم به هم ریختگی مشاهده نشد /

موفق باشید

با سلام

نسخه ای که استفاده کرده ام نسخه فارسی 1.6.1.5

هست روی دامنه giysi.ir

اما موقع ساخت فاکتور قیمتی که جلوی نوع حامل میزنه از راست به چپ میاره

به نظرتون مشکل چیه؟

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

در حال بارگذاری


  • کاربران آنلاین در این صفحه

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • اضافه کردن...