السلام عليكم اعمل على اتطبيق 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;
التعليقات