From 6cea0fa1238e1a771d6b9e8ec7e495210673c5de Mon Sep 17 00:00:00 2001 From: Rajavignesh Bala Sankar Date: Thu, 8 Dec 2022 19:45:31 +0530 Subject: [PATCH] WPF-62236 Need to update arm pdfium details in UG documentation --- wpf/Pdf-Viewer/pdf-rendering-engines.md | 7 +++++-- .../wpf-pdf-viewer-folder-structure.png | Bin 8580 -> 7828 bytes 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/wpf/Pdf-Viewer/pdf-rendering-engines.md b/wpf/Pdf-Viewer/pdf-rendering-engines.md index d4f1a79877..bdd90e3463 100644 --- a/wpf/Pdf-Viewer/pdf-rendering-engines.md +++ b/wpf/Pdf-Viewer/pdf-rendering-engines.md @@ -20,13 +20,14 @@ PDFium is used in Google Chrome for rendering PDF files. It provides accurate an N>* From v16.3.0.x onwards, this PDFium rendering engine is the default rendering engine of Syncfusion WPF PDF Viewer. N>* From v20.1.0.x onwards, Pdfium is upgraded to the new version which was built with the branch [chromium/4880](https://pdfium.googlesource.com/pdfium/+/refs/heads/chromium/4880). +N>* From v20.4.0.x onwards, ARM64 based Pdfium assembly is generated for Syncfusion WPF PDF Viewer control in applications that target ARM64 architecture. ### How PDFium works with Syncfusion’s PDF Viewer * On running your WPF application, Syncfusion PDF Viewer control generates a folder named `PDFium` in the application output path folder (for example: bin/release or bin/debug) at runtime. * Syncfusion PDF Viewer control detects the architecture of the running machine automatically. -* Next, it creates another subfolder named “x64” or “x86” based on the machine architecture. -* Extracts the PDFium binary (PDFium.dll) into the subfolder (x64 or x86) and consumes it to render PDF files. +* Next, it creates another subfolder named “x64”, “x86” or “arm64” based on the machine architecture. +* Extracts the PDFium binary (PDFium.dll) into the subfolder (x64, x86 or arm64) and consumes it to render PDF files. ![WPF PDF Viewer Folder Structure](pdf-rendering-engines_images/wpf-pdf-viewer-folder-structure.png) @@ -73,6 +74,8 @@ N> * x86 N> * Pdfium.dll N> * x64 N> * Pdfium.dll +N> * arm64 +N> * Pdfium.dll ## SfPdf diff --git a/wpf/Pdf-Viewer/pdf-rendering-engines_images/wpf-pdf-viewer-folder-structure.png b/wpf/Pdf-Viewer/pdf-rendering-engines_images/wpf-pdf-viewer-folder-structure.png index 596cb314a27f9f7531b481a2933510535dada9e6..ef395dbe6d2b0f80d6ca02dd9f4c79cdd7219d92 100644 GIT binary patch literal 7828 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 HzX<+cooN-R literal 8580 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