السلام عليكم اعمل على اتطبيق react native expo
اقوم بطباعة ملف pdf لكن المشكلة هى ان اقوم بطباعة اراى داخل الملف
في هذه الحالة يمكنك القيام بنفس الأمر و لكن بهذا الكود الجديد:
اول شيء نقوم بتنسيق المحتوى بكود HTML و يمكنك تغيير الإعدادات على حسب رغبتك:
import React from 'react'; import { PDFViewer, Page, Text, View, Document, StyleSheet } from '@react-pdf/renderer'; const MyDocument = ({ dataArray }) => { return ( <Document> <Page size="A4" style={styles.page}> <View style={styles.section}> <Text>المحتوى في الملف PDF:</Text> {dataArray.map((item, index) => ( <Text key={index}>{`${index + 1}. ${item}`}</Text> ))} </View> </Page> </Document> ); }; const styles = StyleSheet.create({ page: { flexDirection: 'row', backgroundColor: 'white', }, section: { margin: 10, padding: 10, flexGrow: 1, }, }); export default MyDocument;
بعدها يمكنك استيراد مكون MyDocument الذي تم إنشاؤه في الخطوة السابقة واستخدامه لإنشاء الملف PDF وطباعته.
import React from 'react'; import { Button } from 'react-native'; import * as Print from 'expo-print'; import MyDocument from './MyDocument'; const PrintPDF = ({ dataArray }) => { const handlePrintPDF = async () => { const html = MyDocument({ dataArray }).toBlob(); await Print.printToFileAsync({ html }); }; return ( <Button title="طباعة ملف PDF" onPress={handlePrintPDF} /> ); }; export default PrintPDF;
التعليقات