Development

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-print for generating PDFs from HTML (printToFileAsync)
  • expo-document-picker for selecting files
  • expo-file-system for 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.

References