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

السؤال

نشر

مرحباً ان جربت مكتبه @react-pdf/renderer لكن لا تدعم  عربي 

import {
  Document,
  Page,
  renderToStream,
  StyleSheet,
  Text
} from '@react-pdf/renderer';
import { NextResponse } from "next/server";

// Register font
// Font.register({
//   family: "Cairo",
//   src: "http://fonts.gstatic.com/s/cairo/v1/uOhP6W00Hd6dR_axcPy22Q.ttf",
// });

// Define styles
const styles = StyleSheet.create({
  rtlText: {
    fontFamily: "Cairo",
    backgroundColor: "red",
    direction: "rtl",
    textAlign: "center",
  },
});

// Define the PDF document
const Invoice = () => (
  <Document>
    <Page>
      <Text style={styles.rtlText}>مرحبًا بك في @r</Text>
    </Page>
  </Document>
);

// API route handler
export async function GET(request) {
  try {
    const pdfStream = await renderToStream(<Invoice />);
    return new NextResponse(pdfStream, {
      headers: {
        "Content-Type": "application/pdf",
        "Content-Disposition": `inline; filename="invoice.pdf"`,
      },
    });
  } catch (e) {
    return new NextResponse("Failed to generate PDF", { status: 500 });
  }
}

 

Recommended Posts

  • 1
نشر

توجد مكتبات مثل jsPDF وpdfmake توفر دعما أفضل للغات التي تكتب من اليمين إلى اليسار كالعربية، وهذه المكتبات تسمح بتسجيل الخطوط العربية وضبط اتجاه الكتابة بسهولة يمكنك محاولة تحسين استخدام @react-pdf/renderer عن طريق تسجيل الخطوط العربية بشكل صحيح واستخدام خصائص CSS مثل writingMode: 'rtl' لتحسين عرض النص العربي ففي بعض الحالات، قد تحتاج إلى استخدام مكتبات إضافية مثل bidi-js لمعالجة النص قبل عرضه في PDF فقد لا تجد مكتبة شاملة وكاملة لذا قد يتعين التعديل للتحسين من العرض.

  • 1
نشر

نعم يوجد الكثير من المكتبات التي تدعم اللغة العربية في ملفات ال pdf :

  1. pdf-lib: مكتبة قوية ومفيدة لإنشاء وتعديل ملفات PDF يمكنها التعامل مع النصوص باللغة العربية ولكنك قد تحتاج إلى ضبط الخطوط بشكل صحيح لدعم الكتابة من اليمين لليسار (RTL) وهذا رابط المكتبة على github
  2. jspdf: مكتبة شائعة لإنشاء ملفات PDF من اكواد HTML . توفر إستخدام العديد من اللغات بما في ذلك اللغة العربية، لكنك قد تحتاج إلى استخدام خطوط خاصة باللغة العربية ووهذا رابط المكتبة على github

  3. pdfmake: مكتبة جيدة لإنشاء ملفات PDF. تدعم الكتابة من اليمين لليسار وتوفر دعم للغة العربية وهذا هو رابط المكتبة على github

  • 1
نشر
بتاريخ 9 ساعة قال Mansour Hussen:

عندي فكره حبيت أطرحها لنقاش وهل تعتبر ممارسة ممتازة ام لا 

ناوي اعمل سكربت بايثون مع Flask يستقبل معلومات ويصدر pdf ويحمل file 

اضمن انه بتشغل معي في اي اطار استخدمه سوء لارفل او next

نعم تعتبر هذ الفكرة جيدة وخصوصا إذا تريد إستخدام تصدير الملفات ك PDF في أكثر من مشروع بأكثر من لغه . لذلك إذا وجدت بايثون تساعدك في تلك المهمة فيمكنك إنشاء خادم بإستخدام flask كما تريد و جعله يستقبل الطلبات ويقوم بتصدير المعلومات في ملف PDF وتقوم بإرسال الطلبات ك API من خلال أى مشروع أخر .

ولكن هنا سيتوجب عليك رفع مشروع flask على خادم مع المشروع الآخر و هنا سيتطلب عملا إضافيا لتشغيل الخوادم معا أو رفع كل مشروع على خادم منفصل . وأيضا سيتوجب تأمين مشروع flask جيدا ومنع الوصول له من أى شخص أخر سواك . 

ولكن  من وجهة نظرى إن تصدير الملفات ك PDF ليست بالصعوبة تلك حيث php توجد بها العديد من المكتبات التي تدعم PDF و اللغة العربية و الأمر بسيط سيحتاج ملف سكريبت واحد فقط و أيضا في next . لذلك الأفضل هو إنشاء ملف لكل منهما وفي كل مشروع تريد تنفيذ خاصية تصدير الملفات تقوم بوضع ذلك الملف في المشروع وسيعمل معك . 

  • 0
نشر (معدل)
بتاريخ On 16‏/9‏/2024 at 19:12 قال محمد عاطف17:

نعم يوجد الكثير من المكتبات التي تدعم اللغة العربية في ملفات ال pdf :

  1. pdf-lib: مكتبة قوية ومفيدة لإنشاء وتعديل ملفات PDF يمكنها التعامل مع النصوص باللغة العربية ولكنك قد تحتاج إلى ضبط الخطوط بشكل صحيح لدعم الكتابة من اليمين لليسار (RTL) وهذا رابط المكتبة على github
  2. jspdf: مكتبة شائعة لإنشاء ملفات PDF من اكواد HTML . توفر إستخدام العديد من اللغات بما في ذلك اللغة العربية، لكنك قد تحتاج إلى استخدام خطوط خاصة باللغة العربية ووهذا رابط المكتبة على github

  3. pdfmake: مكتبة جيدة لإنشاء ملفات PDF. تدعم الكتابة من اليمين لليسار وتوفر دعم للغة العربية وهذا هو رابط المكتبة على github

عندي فكره حبيت أطرحها لنقاش وهل تعتبر ممارسة ممتازة ام لا 

ناوي اعمل سكربت بايثون مع Flask يستقبل معلومات ويصدر pdf ويحمل file 

اضمن انه بتشغل معي في اي اطار استخدمه سوء لارفل او next

تم التعديل في بواسطة Mansour Hussen

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...