A JavaScript-only PDF reader component for React Native Expo apps, supporting Android and iOS without native libraries.
rn-pdf-reader-js is a React Native component that allows developers to embed PDF readers in Expo applications using only JavaScript, without relying on native libraries. It solves the problem of displaying PDFs in cross-platform mobile apps by leveraging WebView and pdf.js, supporting both Android and iOS with sources from URIs or base64 data.
React Native developers building Expo-based mobile applications that require PDF viewing capabilities, particularly those seeking to avoid native module integration.
Developers choose this library for its simplicity and compatibility—it provides a pure JavaScript solution that works seamlessly within Expo's constraints, offers customizable UI options, and supports multiple PDF sources without platform-specific native code.
📄 PDF reader in JavaScript only for Expo - Android & iOS capable
Uses react-pdf (pdf.js) and WebView to render PDFs without native modules, eliminating the need for native linking and making it ideal for Expo apps where native integration is restricted.
Supports loading PDFs from web URIs (http/https), local files via file:// URIs, and base64-encoded strings, with optional custom headers for authentication, as detailed in the Source interface.
Offers extensive style overrides via the customStyle prop for containers, WebView, and navigation elements, allowing developers to tailor the appearance without relying on pre-styled components.
Designed for Expo SDK 33-36+ and integrates with expo-file-system and expo-constants, ensuring smooth operation within the Expo framework without requiring ejection.
Requires separate, manual installation of react-native-webview, expo-file-system, and expo-constants, adding extra steps to setup compared to libraries that bundle dependencies.
The README warns that enabling withScroll can cause performance issues, and the WebView-based approach may result in slower rendering or less smooth interactions compared to native PDF libraries.
Only confirmed compatible with older React Native 0.59-0.60 and Expo SDK 33-36+, which may not align with modern projects using updated SDKs, risking compatibility breaks.
The useGoogleReader prop is explicitly not recommended for confidential data, as it sends PDFs to Google servers, limiting its use in secure applications.
A <Hyperlink /> component for react-native that makes urls, fuzzy links, emails etc clickable
React Native 100% compatible CommonMark renderer
🔠 Responsive fontSize based on screen-size of the device in React-Native
Convert html strings to PDF documents using React Native
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.