Describe the bug
Unhandled Exception: FileSystemException: Cannot open file, path = 'Hacen_Tunisia.ttf' (OS Error: No such file or directory, errno = 2)
So iam trying to save pdf file in arabic font but it being saved with reversing words
dummy ex: "hello" will be "olleh" but in arabic words so i've found that i must use the Uint8List but the file can't read the font !!
To Reproduce
final Uint8List fontData = File('Hacen_Tunisia.ttf').readAsBytesSync();
tried
final Uint8List fontData = File('fonts/Hacen_Tunisia.ttf').readAsBytesSync();
tried
final Uint8List fontData = File('../fonts/Hacen_Tunisia.ttf').readAsBytesSync();
full code
import 'dart:io';
import 'package:path_provider/path_provider.dart';
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart';
import 'dart:typed_data';
import 'package:open_file/open_file.dart';
Future savePdf() async {
final Document pdf = Document(title: 'نتيجة الأختبار');
final Uint8List fontData = File('Hacen_Tunisia.ttf').readAsBytesSync();
final ttf = Font.ttf(fontData.buffer.asByteData());
print(fontData.toString());
pdf.addPage(MultiPage(
pageFormat:
PdfPageFormat.letter.copyWith(marginBottom: 1.5 * PdfPageFormat.cm),
crossAxisAlignment: CrossAxisAlignment.start,
header: (Context context) {
if (context.pageNumber == 1) {
return null;
}
return Container(
alignment: Alignment.centerRight,
margin: const EdgeInsets.only(bottom: 3.0 * PdfPageFormat.mm),
padding: const EdgeInsets.only(bottom: 3.0 * PdfPageFormat.mm),
decoration: const BoxDecoration(
border:
BoxBorder(bottom: true, width: 0.5, color: PdfColors.grey)),
child: Text('Portable Document Format',
style: Theme.of(context)
.defaultTextStyle
.copyWith(color: PdfColors.grey)));
},
footer: (Context context) {
return Container(
alignment: Alignment.centerRight,
margin: const EdgeInsets.only(top: 1.0 * PdfPageFormat.cm),
child: Text('Page ${context.pageNumber} of ${context.pagesCount}',
style: Theme.of(context)
.defaultTextStyle
.copyWith(color: PdfColors.grey)));
},
build: (Context context) => <Widget>[
Text(
"أنشطة لدعم الذكاء اللفظي\nيعد الذكاء اللفظي/ اللغوي هو القدرة على استخدام اللغة للتعبير، والتواصل، الإقناع، التحفيز، طرح معلومات وأفكار... ويتضمن الذكاء اللغوي ليس فقط إنتاج اللغة، ولكن حساسية عالية للفروق الطفيفة بينالكلمات، وترتيب وسجع الكلمات.",
style: TextStyle(font: ttf)),
]));
final output = await getExternalStorageDirectory();
final file = File("${output.path}/rrr.pdf");
await file.writeAsBytes(pdf.save());
print(output.path.toString());
OpenFile.open("${output.path}/rrr.pdf", type: "application/pdf");
}
and here is were the font is:
https://ibb.co/tB0BJvQ
i can't find the problem cause iam using that font in all of the application!!
full error
E/flutter ( 6366): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: FileSystemException: Cannot open file, path = 'Hacen_Tunisia.ttf' (OS Error: No such file or directory, errno = 2)
E/flutter ( 6366): #0 _File.throwIfError (dart:io/file_impl.dart:643:7)
E/flutter ( 6366): #1 _File.openSync (dart:io/file_impl.dart:487:5)
E/flutter ( 6366): #2 _File.readAsBytesSync (dart:io/file_impl.dart:547:18)
E/flutter ( 6366): #3 savePdf (package:child_iq/data/savePdf.dart:11:56)
E/flutter ( 6366): <asynchronous suspension>
E/flutter ( 6366): #4 QuizResult.build.<anonymous closure> (package:child_iq/screens/quizResult.dart:145:1)
E/flutter ( 6366): #5 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
E/flutter ( 6366): #6 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:365:11)
E/flutter ( 6366): #7 TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:275:7)
E/flutter ( 6366): #8 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:455:9)
E/flutter ( 6366): #9 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:75:13)
E/flutter ( 6366): #10 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:102:11)
E/flutter ( 6366): #11 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:218:19)
E/flutter ( 6366): #12 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
E/flutter ( 6366): #13 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
E/flutter ( 6366): #14 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
E/flutter ( 6366): #15 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
E/flutter ( 6366): #16 _rootRunUnary (dart:async/zone.dart:1136:13)
E/flutter ( 6366): #17 _CustomZone.runUnary (dart:async/zone.dart:1029:19)
E/flutter ( 6366): #18 _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)
E/flutter ( 6366): #19 _invoke1 (dart:ui/hooks.dart:252:10)
E/flutter ( 6366): #20 _dispatchPointerDataPacket (dart:ui/hooks.dart:161:5)
E/flutter ( 6366):
enhancement help wanted