Why Expo Has No Built-In PDF Viewer Library
Editor | March 8, 2026 | 4 min read
If you are asking "why Expo has no PDF lib," the short answer is: Expo has tools around PDFs, but not a built-in PDF viewer UI module like expo-pdf.
As of March 8, 2026, Expo SDK docs include features like:
expo-printfor generating PDFs from HTML (printToFileAsync)expo-document-pickerfor selecting filesexpo-file-systemfor reading/writing files
But there is no first-party Expo SDK package dedicated to rendering PDFs in-app across iOS/Android.
Why This Happens
The main reason is native complexity and packaging tradeoffs:
- PDF rendering usually depends on native platform code or native third-party engines.
- Expo Go only includes a fixed set of native modules.
- Many PDF viewer libraries require custom native code and therefore are not usable directly in Expo Go.
Expo's recommended path for native-dependent libraries is to use a development build (custom dev client), not rely on Expo Go for production capabilities.
"No PDF Lib" vs "No PDF Option"
Important distinction:
- Expo does support PDF-related workflows (generate, pick, store, share files).
- Expo does not ship a first-party universal PDF viewer component in the SDK.
So the ecosystem solution is usually third-party packages (for example, react-native-pdf) plus config plugins and a development build.
What To Do In Real Projects
- If you only need PDF export/download: use
expo-print+expo-file-system. - If you need in-app PDF viewing: use a native PDF library with a development build.
- Validate compatibility per Expo SDK version before upgrading.
That approach keeps your app stable while still giving you PDF features.