اذهب إلى المحتوى
  • 0

كيفية إظهار view معينة بصيغة pdf ومن ثم عمل طباعة لها في لارافيل 7

Hafsa Aly

السؤال

Recommended Posts

  • 1

يمكنك إستعمال حزمة barryvdh/laravel-dompdf لذلك ، إذ توفر هاته الحزمة إمكانية تحويل ملف عرض view بسيط إلى ملف PDF و تحميله . 

نحتاج في ذلك تطبيق الخطوات التالية : 

  • تثبيت الحزمة و إعدادها . 

تثبيت الحزمة يتم عن طريق تشغيل الأمر :

composer require barryvdh/laravel-dompdf

سنحتاج بعد ذلك إضافة مزود خدمة الحزمة إلى مصفوفة providers في ملف config/app.php :  

'providers' => [
  Barryvdh\DomPDF\ServiceProvider::class,
],

يفضل أيضا تعريف اختصار للوصول السهل إلى واجهة الحزمة : 

'aliases' => [
  'PDF' => Barryvdh\DomPDF\Facade::class,
]

 

  • توفير رابط لطباعة ملف العرض بشكل PDF : 

في ملف العرض ، نحتاج توفير زر تصدير للصفحة المعروضة بشكل PDF . يكون ذلك بشكل مشابه : 

<div class="d-flex justify-content-end mb-4">
   <a class="btn btn-primary" href="{{ route('pdf_export') }}">PDF تصدير إلى </a>
</div>

و بالطبع سنحتاج تعريف هذا المسار في ملف routes/web.php : 

<?
use App\Http\Controllers\PDFController;


Route::get('/pdf_export' ,[PDFController::class , 'export'])->name('pdf_export');
  • إستعمال توابع الحزمة لتصدير الملف .  

ليكن التابع export للمتحكم PDFController كالتالي : 

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use PDF;

class PDFController extends Controller {

    public function export() {
      
      $pdf = PDF::loadView('target_view', $someData);

      return $pdf->download('file_name.pdf');
    }
}

بحيث أن : 

  •  target_view : يعبر عن ملف العرض المستهدف ، يمكنك إستبداله باسم ملف العرض المناسب الذي تريد تصديره . 
  • file_name.pdf : يعبر عن اسم الملف المصدر ، يمكنك تغييره بحسب حاجتك أو حاجة عميلك .  
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك تنفيذ ذلك ببساطة بإستخدام الhtml عبر وضع العنصر a وإعطائه مسار الملف كما بالشكل التالي

<a href= "مسار الملف.pdf">click to preview</a>

عند النقر على كلمة click to preview سيتم نقل المُستخدم إلى صفحة الملف ويمكنه من خلالها قراءة الملف وطباعته أو تحميله كما يشاء

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...