سلا به همگی
من دنبال یک پکیج خوب برای خروجی گرفتن از یکی از صفحات سایتم به صورت PDF هستم
اکثر پکیج هارو امتحان کردم
بهترینشون domPDF بود که متاسفانه زبان فارسی رو پشتیبانی نمیکرد
خیلیا گفته بودن mPDF زبان فارسی ر و پشتیبانی میکنه
موقع استفاده از mPDF وقتی میخام خروجی بگیرم
یک پی دی اف خالی برام میسازه
کسی میتونه راهنماییم کنه
اگر یک پکیج خوب برای لاراول 9 میشناسید ممنون میشم بهم معرفی کنید
چند روزه درگیر این موضوع هستم ولی به نتیجه ای نرسیدم :/
طبق گفته مدیر پروژه mdpf در لینک گیت هابی که ارسال کردم، متاسفانه این پکیج (mpdf ) هنوز از نسخه ۳ پکیج psr/log نمیتونه پشتیبانی کنه و تنها راهش downgrade کردن این پکیج به نسخه ۲ هست.
اول پکیج mpdf رو حذف کنیدو بعد پکیج psr/log رو به نسخه ۲ بیارید. بعد مجددا mpdf رو نصب کنید.
ضمنا اگر از لاراول استفاده میکنید پیشنهادم استفاده از پکیج زیر هست که پشت صحنه وابسته به همون mpdf هست ولی مقداری کار کردن باهاش لذت بخشتر و راحتتره:
https://github.com/niklasravnsborg/laravel-pdf
(البته در هر دو حالت نیازمند downgrade پکیج psr/log به نسخه ۲ هستید)
سلام
بنظرم بهتر باشه بیشتر برامون توضیح بدین
مثلاً من نمیتونم بهتون بگم مشکلتون دقیقاً کجاست
چون هیچ منطقی از کاری که دارین انجام می دین ندارم
بخاطر اینکه نمی دونم چطور دارین این فایل رو می سازین
راجب کتاب خونه، کتاب خونه های متفاوتی هستش
برای مثال html2pdf tcpdfیا همون mpdf که شما ازش استفاده می کنین
اگه می خواین از متـ(ـو)ـن فارسی یا عربی در متنتون استفاده کنین یا هر زبان راستچینی باید ابتدا صفحه رو راستچین کنین
برای tcpdf اگه خواستین این لینک یه مثال هستش برای استفاده از زبان های راستچین
برای mpdf هم اگه قصد استفاده ازش رو دارین می تونین از این لینک استفاده کنین که یه مثالی هستش برای استفاده از زبانهای راستچین
و html2pdf هم کلاً زبان های راستچین رو پشتیبانی نمی کنه من فقط به عنوان یکی از کتابخونه ها بیانش کردم اما بهتره سمتش نرین
این لینک دهی ها هم بخاطر اینه که به این اشاره کرده باشم که برای اینه که از خودم نسخه ای نداده باشم
چون درکی از کاری که می کنین ندارم
انشاءالله با همین چند تا نمونه مشکلتون حل بشه
التماس دعا دارم
و من الله توفیق
@omid.sandi79
اگه می شه بهتره توضیح بدین راجب اینکه چی کار کردین و چطور ازش استفاده کردین؟ از چه توابعی از کتابخونه برای ساخت فایل pdf استفاده کردین؟
یا اینکه کدتون رو بفرستین
آیا محتوایی برای فایل به کتابخوبه دادید؟ عکسی چیزی بوده که دچار مشکل بشه و صفحه سفید برگردونه؟
اینطوری من می فهمم که چی به چیه و مشکلتون دقیقاً کجاست
الان من نمی دونم چی کارا کردین و مشکلتون دقیقاً چیه
یه دکتر هم اول علائم رو می بینه بعد نسخه می نویسه
و شاید سوالـ(ـاتـ)ـی پیرامون موضوع بپرسه
من الان نمی دونم چی کار کردین که بخوام براتون نسخه بنویسم
بخاطر همینم یکی از این دو رو ازتون درخواست می کنم و سوالاتی ازتون می پرسم
و اینکه این لینک نمونه ای بهتری باشه بنظرم اگه قصد استفاده از کتابخونه mpdf رو دارین
پکیج Mpdf قابلیت پشتیبانی از زبان فارسی رو داره و چندین سال هست که به شخصه دارم ازش استفاده میکنم.
سعی کنید برای دیباگ کردن، مراحل رو تا حد امکان ساده و کوچک کنید و بعد مرحله به مرحله جلو برید. مثلا در ابتدا سعی کنید فقط یک تک کلمه فارسی بدون هیچ تنظیمات اضافه خروجی بگیرید. اگر کار کرد بعد بخش های دیگه هم بهش اضافه کنید و اگر نکرد سرچ کنید و در فایل log دنبال گزارش خطا باشید یا نهایتا با آزمون و خطا جلو برید.
ضمنا توجه کنید که در فایل تنظیماتش در پوشه config هم طبق آموزش های موجود باید یکسری کدهایی به بخش method اضافه کنید. مطمئن هم بشید که کش کانفیگ لاراولتون بعد از تغییرات پاک بشه.
@mhyeganeh
سلام دوست عزیز
من وقتی از mpdf میخام استفاده کنم با ارور زیر برخورد میکنم
ارور بخاطر چی هست ؟
و میشه یه مقدار راهنمایی کنید منو برای استفاده از این پکیج؟
ای کاش خودتون همین متن ارور رو یکبار در گوگل سرچ میکردید. مطمئنا خیلی زودتر به نتیجه میرسیدید و کارتون راه می افتاد...
طبق issue ثبت شده در اینجا، احتمالا مشکلش عدم همخونی ورژن پکیجهای composer تون هست
طبق گفته مدیر پروژه mdpf در لینک گیت هابی که ارسال کردم، متاسفانه این پکیج (mpdf ) هنوز از نسخه ۳ پکیج psr/log نمیتونه پشتیبانی کنه و تنها راهش downgrade کردن این پکیج به نسخه ۲ هست.
اول پکیج mpdf رو حذف کنیدو بعد پکیج psr/log رو به نسخه ۲ بیارید. بعد مجددا mpdf رو نصب کنید.
ضمنا اگر از لاراول استفاده میکنید پیشنهادم استفاده از پکیج زیر هست که پشت صحنه وابسته به همون mpdf هست ولی مقداری کار کردن باهاش لذت بخشتر و راحتتره:
https://github.com/niklasravnsborg/laravel-pdf
(البته در هر دو حالت نیازمند downgrade پکیج psr/log به نسخه ۲ هستید)
@mhyeganeh
کار هایی که گفتید رو انجام دادم
طبق گیت هاب پکیج رو نصب کردم
psr/log رو هم به ورژن 2 تغییر دادم
وقتی میخام از فایل خروجی بگیرم اصلا دانلود شروع نمیشه و سایت هنگ میکنه
use \PDF کردم و
$filename = 'برنامه هفتگی شماره ' . $schedule->schedule_number . ' ' . $student->name;
$pdf = PDF::loadView('Dashboard.schedule.PDFSchedule', compact('schedule_rows', 'student', 'lessonsArray', 'schedule'));
return $pdf->save($filename);
اینکه ارور قبلی رو دیگه دریافت نمیکنید نشونه خوبیه و یعنی مشکلی برطرف شده. اما قبلا هم عرض کردم سعی کنید از ساده شروع کنید و مرحله به مرحله تکمیلش کنید تا به نتیجه مطلوب برسید.
در گام اول سعی کنید از مثالهای خود پکیج استفاده کنید یا مثلا یک کلمه ساده و تنها رو خروجی بگیرید. بعد متن کامل. بعد همراه با استایل. بعد همراه با متغیر. بعد همراه با فونت. بعد...
اینجوری وقتی به ارور می خورید راحت تر و سریع تر میتونید علتش رو پیدا کنید. درمقایسه با الان که پارامترهای خیلی زیادی درگیر هستند و میتونه هر کدومشون منشا مشکل باشند.
@mhyeganeh
سلام
ممنون ازتون
مشکلات قبلیم اوکی شد کامل
فقط میخاستم بدونم شما از چه فونتی استفاده میکنید؟
من هر custom فونتی اضافه میکنم به پکیج به صورت به هم ریخته به من نشونش میده
من از فونت «وزیرمتن» استفاده میکردم ولی فکر نمی کنم ارتباطی با خود فونت داشته باشه و احتمالا مربوط به کانفیگش باشه.
این تنظیمات فایل config/pdf.php من هست:
return [
'mode' => 'utf-8',
'format' => 'A4',
'author' => '****',
'subject' => '',
'keywords' => '',
'creator' => '****',
'display_mode' => 'fullpage',
'tempDir' => storage_path('app/public/temp/'),
'font_path' => public_path('vendor/fonts/'),
'font_data' => [
'vazirmatn' => [
'R' => 'vazirmatn/Vazirmatn-Regular.ttf',
'B' => 'vazirmatn/Vazirmatn-Bold.ttf',
'useOTL' => 0xFF,
'useKashida' => 75,
],
'fontawesome' => [
'R' => 'fa-solid-900.ttf'
],
]
];
سلام اقا این مشکل خروجی pdf و چجوری حل کردی منم وقتی میخام خروجی بگیر م کلا صفحه down میشه و سایت هنگ میکنه
ورژن php ام 8.1 هست و لاراول ام 9.2
ممنون میشم توضیح بدی
@saeiidm
مشکل من این بود که داخل تگ css از url استفاده کرده بودم و اشتباه آدرس دهی کرده بودم
باید ببینی کجای فایلت مشکل داره
من طبق این لینک
لینک
این موارد رو رفتم و مشکل دانلود درست شد تو ورژن 8 php و لاراول 9.2
ERROR :
Declaration of Mpdf\Mpdf::setLogger(Psr\Log\LoggerInterface $logger) must be compatible with Psr\Log\LoggerAwareInterface::setLogger(Psr\Log\LoggerInterface $logger): void
SOLUTION:
composer remove niklasravnsborg/laravel-pdf
composer remove mpdf/mpdf
composer remove psr/log
composer require psr/log=v2.*
composer require mpdf/mpdf v8.0.17
composer require niklasravnsborg/laravel-pdf
و حتی فایل کانفیگ هم درست رفتم
<?php
return [
'mode' => 'utf-8',
'format' => 'A4', /* 'A5-L' */
'author' => 'example.com',
'subject' => '',
'keywords' => '',
'creator' => 'Laravel Pdf',
'display_mode' => 'fullpage',
'tempDir' => storage_path('app/public/temp/'),
'font_path' => storage_path('app/public/fonts/'),
'font_data' => [
'myfont' => [
'R' => 'IRANSans-web.ttf', // regular font
'B' => 'IRANSans-web.ttf', // regular font
//'B' => 'IRANSans-Bold-web.ttf', // optional: bold font
// 'I' => 'ExampleFont-Italic.ttf', // optional: italic font
//'BI' => 'ExampleFont-Bold-Italic.ttf' // optional: bold-italic font
'useOTL' => 0xFF, // required for complicated langs like Persian, Arabic and Chinese
'useKashida' => 75, // required for complicated langs like Persian, Arabic and Chinese
]
]
];
اینم کنترلم
public function pdf()
{
$pdf = PDF::loadView('pdf.print');
return $pdf->stream('document.pdf');
}
به همراه فونت فارسی و تو خود صفحه بلید هم فقط یه کلمه سلام
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
</head>
<body>
<div>سلام</div>
</body>
</html>
ولی بعد دانلود pdf وقتی بازش میکنم میبینم همه نوشته های فارسی بصورت مربع هست!!!!!
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟