Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

syncfusion flutter pdf is not creating pdf on arabic words in aandroid and ios #452

Closed
alihassan143 opened this issue Oct 5, 2021 · 5 comments

Comments

@alihassan143
Copy link

when i try to create pdf of arabic words then the syncfusion flutter pdf shows that error

: [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: Invalid argument (The character is not supported by the font.): 1573
: [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: Invalid argument (The character is not supported by the font.): 1573
E/flutter (26083): #0 _StandardWidthTable._returnValue
package:syncfusion_flutter_pdf/…/fonts/pdf_font_metrics.dart:106
E/flutter (26083): #1 _StandardWidthTable.[]
package:syncfusion_flutter_pdf/…/fonts/pdf_font_metrics.dart:103
E/flutter (26083): #2 PdfStandardFont._getCharWidthInternal
package:syncfusion_flutter_pdf/…/fonts/pdf_standard_font.dart:390
E/flutter (26083): #3 PdfStandardFont._getLineWidth
package:syncfusion_flutter_pdf/…/fonts/pdf_standard_font.dart:415
E/flutter (26083): #4 _PdfStringLayouter._getLineWidth
package:syncfusion_flutter_pdf/…/fonts/pdf_string_layouter.dart:249
E/flutter (26083): #5 _PdfStringLayouter._layoutLine
package:syncfusion_flutter_pdf/…/fonts/pdf_string_layouter.dart:102
E/flutter (26083): #6 _PdfStringLayouter._doLayout
package:syncfusion_flutter_pdf/…/fonts/pdf_string_layouter.dart:46
E/flutter (26083): #7 _PdfStringLayouter._layout
package:syncfusion_flutter_pdf/…/fonts/pdf_string_layouter.dart:34
E/flutter (26083): #8 PdfGridCell._measureHeight
package:syncfusion_flutter_pdf/…/grid/pdf_grid_cell.dart:696
E/flutter (26083): #9 PdfGridCell.height
package:syncfusion_flutter_pdf/…/grid/pdf_grid_cell.dart:243
E/flutter (26083): #10 PdfGridRow._measureHeight
package:syncfusion_flutter_pdf/…/grid/pdf_grid_row.dart:321
E/flutter (26083): #11 PdfGridRow.height
package:syncfusion_flutter_pdf/…/grid/pdf_grid_row.dart:251
E/flutter (26083): #12 _PdfGridLayouter._drawRow
package:syncfusion_flutter_pdf/…/layouting/pdf_grid_layouter.dart:808
E/flutter (26083): #13 _PdfGridLayouter._layoutOnPage
package:syncfusion_flutter_pdf/…/layouting/pdf_grid_layouter.dart:246
E/flutter (26083): #14 _PdfGridLayouter._layoutInternal
package:syncfusion_flutter_pdf/…/layouting/pdf_grid_layouter.dart:1453
E/flutter (26083): #15 PdfGrid._layout
package:syncfusion_flutter_pdf/…/grid/pdf_grid.dart:902
E/flutter (26083): #16 PdfLayoutElement._draw
package:syncfusion_flutter_pdf/…/base/layout_element.dart:37
E/flutter (26083): #17 PdfLayoutElement.draw
package:syncfusion_flutter_pdf/…/base/layout_element.dart:23
E/flutter (26083): #18 PdfGrid.draw
package:syncfusion_flutter_pdf/…/grid/pdf_grid.dart:866
E/flutter (26083): #19 _ManagerReportsChartState._createpdf
package:gas_station/manager/reportsCharts.dart:282
E/flutter (26083): #20 _ManagerReportsChartState.build.
package:gas_station/manager/reportsCharts.dart:232
#21 _ManagerReportsChartState.build.
package:gas_station/manager/reportsCharts.dart:231
E/flutter (26083): #22 _InkResponseState._handleTap
package:flutter/…/material/ink_well.dart:989
E/flutter (26083): #23 GestureRecognizer.invokeCallback
package:flutter/…/gestures/recognizer.dart:182
E/flutter (26083): #24 TapGestureRecognizer.handleTapUp
package:flutter/…/gestures/tap.dart:607
E/flutter (26083): #25 BaseTapGestureRecognizer._checkUp
package:flutter/…/gestures/tap.dart:296
E/flutter (26083): #26 BaseTapGestureRecognizer.handlePrimaryPointer
package:flutter/…/gestures/tap.dart:230
E/flutter (26083): #27 PrimaryPointerGestureRecognizer.handleEvent
package:flutter/…/gestures/recognizer.dart:475
E/flutter (26083): #28 PointerRouter._dispatch
package:flutter/…/gestures/pointer_router.dart:93
E/flutter (26083): #29 PointerRouter._dispatchEventToRoutes.
package:flutter/…/gestures/pointer_router.dart:138
E/flutter (26083): #30 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:397:8)
E/flutter (26083): #31 PointerRouter._dispatchEventToRoutes
package:flutter/…/gestures/pointer_router.dart:136
E/flutter (26083): #32 PointerRouter.route
package:flutter/…/gestures/pointer_router.dart:122
E/flutter (26083): #33 GestureBinding.handleEvent
package:flutter/…/gestures/binding.dart:439
E/flutter (26083): #34 GestureBinding.dispatchEvent
package:flutter/…/gestures/binding.dart:419
E/flutter (26083): #35 RendererBinding.dispatchEvent
package:flutter/…/rendering/binding.dart:287
E/flutter (26083): #36 GestureBinding._handlePointerEventImmediately
package:flutter/…/gestures/binding.dart:374
E/flutter (26083): #37 GestureBinding.handlePointerEvent
package:flutter/…/gestures/binding.dart:338
E/flutter (26083): #38 GestureBinding._flushPointerEventQueue
package:flutter/…/gestures/binding.dart:296
E/flutter (26083): #39 GestureBinding._handlePointerDataPacket
package:flutter/…/gestures/binding.dart:279
E/flutter (26083): #40 _rootRunUnary (dart:async/zone.dart:1370:13)
E/flutter (26083): #41 _CustomZone.runUnary (dart:async/zone.dart:1265:19)
E/flutter (26083): #42 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1170:7)
E/flutter (26083): #43 _invoke1 (dart:ui/hooks.dart:182:10)
E/flutter (26083): #44 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:282:7)

@Surya-3013
Copy link

<style> </style>

Hi Ali Hassan,

 

Thank you for contacting Syncfusion support.

 

We found the mentioned issue occurs due to using PdfStandardFont to render the Unicode text. The PdfStandardFont doesn't support to draw the Unicode text. So we request you to use the PdfTrueTypeFont instance with valid supported font file to overcome this issue. We have created a sample to draw the Arabic character in the PDF document and attached the sample code snippet and output document for your reference. Please try the below sample code snippet on your end and let us know the result.

 

Output: https://www.syncfusion.com/downloads/support/directtrac/344373/pd/Output-1420763306

Code snippet:

//Create a new PDF document.
final PdfDocument document = PdfDocument();
//Adds a page to the document
PdfPage page = document.pages.add();  
String text = 'مرحبا بالعالم!!!';
//Draw text using ttf font.
page.graphics.drawString(     text, PdfTrueTypeFont(File('Arial.ttf').readAsBytesSync(), 14),     brush: PdfBrushes.black,     bounds: Rect.fromLTWH(         0, 0, page.getClientSize().width, page.getClientSize().height),     format: PdfStringFormat(         textDirection: PdfTextDirection.rightToLeft,         alignment: PdfTextAlignment.right,         paragraphIndent: 35));   // Save the document.
File('Output.pdf').writeAsBytes(document.save());
// Dispose the document.
document.dispose();

 

Kindly refer the below links to get more details,

https://help.syncfusion.com/flutter/pdf/working-with-text#drawing-right-to-left-text

 

Please let us know if you need any further assistances in this.

 

Regards,

Surya V

@alihassan143
Copy link
Author

thanks for this code snippet

@alihassan143 alihassan143 reopened this Oct 18, 2021
@alihassan143
Copy link
Author

the text is not drawing in correct way in when i add column and rows

@alihassan143
Copy link
Author

I solved this issue by adding all column cells and row styling manually and providing them format on every cells row and column

@alihassan143
Copy link
Author

image
image
like this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants