syncfusion / flutter-widgets

Syncfusion Flutter widgets libraries include high quality UI widgets and file-format packages to help you create rich, high-quality applications for iOS, Android, and web from a single code base.
1.54k stars 744 forks source link

Add RTL support to PdfPageLayoutMode.single #1975

Open Mordtimer opened 1 month ago

Mordtimer commented 1 month ago

Use case

Documentation says that we should be able to get rtl mode by using rtl localization or by wrapping it into Directionality https://help.syncfusion.com/flutter/pdf-viewer/right-to-left

But when we do this with PdfPageLayoutMode.single none of proposed action helps. https://help.syncfusion.com/flutter/pdf-viewer/page-layout-and-scroll-direction

Proposal

 Directionality(
        textDirection: TextDirection.rtl,
        child: SfPdfViewer.asset(path),
        pageLayoutMode: PdfPageLayoutMode.single,
 )

Above code should result in rtl document with given layout mode, meanwhile we can only receive ltr version of it.

immankumarsync commented 1 month ago

Hi @Mordtimer,

At present, syncfusion_flutter_pdfviewer does not support scrolling pages in the RTL direction in single-page layout mode.

In continuous page layout mode with horizontal scroll direction, wrapping the SfPdfViewer widget in the Directionality widget with text direction set to TextDirection.rtl allows the pages to be scrolled in the RTL direction. We have provided reverse scrolling support in this mode.

Due to page rendering issues in single-page layout mode and the pages are laid separately, we restrict RTL scrolling in that mode.

We do not have any immediate plans to implement this feature. At the planning stage for every release cycle, we review all open features and identify features for implementation based on specific parameters including product vision, technological feasibility, and customer interest.

As an alternative, you can rearrange the pages in the PDF document to simulate RTL scrolling.

Mordtimer commented 1 month ago

@immankumarsync thank you for fast response.

In my opinion, if you do not have any plans to implement this feature, you should at least update documentation. Current one is misleading and suggest that rtl is fully supported by your plugin. https://help.syncfusion.com/flutter/pdf-viewer/right-to-left

The SfPdfViewer supports right-to-left rendering. All the user interface elements will be rendered based on LTR and RTL direction, and the functionalities like text search and copying text also support RTL languages.

immankumarsync commented 2 weeks ago

@Mordtimer, thank you for identifying the missing section in the documentation. We will revise the content to clarify the RTL support and will notify you once the updates have been made