A powerful PDF creation and viewing app built with React Native and TypeScript. Create PDFs from text, images, or multi-page documents — then view, manage, open, and share them from any app.
Rich text editor with full formatting support.
- Bold, Italic, Underline
- Font sizes and headings
- Bullet and numbered lists
- Export directly to PDF
Turn a batch of photos into a single document.
- Select multiple images from the gallery
- Each image becomes a page
- Reorder, rotate, or delete images
- Export as a single PDF
The full multi-page document builder.
- Add multiple pages
- Inline image support
- Full text formatting
- Page tabs and navigation
Built-in viewer with smooth page navigation.
- Open PDFs from your file manager
- Share PDFs from other apps (WhatsApp, Gmail, etc.)
- View shared PDFs directly in PDFMaker
- Track recently created or viewed PDFs
- Rename or delete from the list
- Default PDF name, font size, page size (A4 / Letter), and orientation (Portrait / Landscape)
- Clear all recent PDFs
- Reset settings
Custom in-app toasts with View / Okay actions, in Success, Error, and Info variants.
| Technology | Purpose |
|---|---|
| 🧩 React Native | Mobile framework |
| 🔷 TypeScript | Type safety |
| 🧭 React Navigation | Screen navigation |
| ✍️ WebView | Rich text editor |
| 📄 react-native-html-to-pdf | PDF generation |
| 👁️ react-native-pdf | PDF viewer |
| 🔗 react-native-blob-util | File handling |
| 🖼️ react-native-image-picker | Image selection |
| 📐 react-native-image-resizer | Image resizing |
| 🔤 react-native-vector-icons | Icons |
| 🔐 react-native-permissions | Runtime permissions |
src/
├── components/
│ └── Toast/
│ ├── components/
│ │ ├── SuccessToast.tsx
│ │ ├── ErrorToast.tsx
│ │ └── InfoToast.tsx
│ ├── Toast.tsx
│ ├── index.ts
│ └── types.ts
├── context/
│ ├── PdfContext.tsx
│ └── SettingsContext.tsx
├── features/
│ ├── home/
│ ├── textToPdf/
│ ├── imagesToPdf/
│ ├── pdfCreator/
│ ├── pdfViewer/
│ ├── recentPdfs/
│ └── settings/
├── hooks/
├── navigation/
├── theme/
│ ├── colors.ts
│ ├── spacing.ts
│ └── typography.ts
└── utils/
└── pdfUtils.ts
| Permission | Purpose |
|---|---|
INTERNET |
Required for development / WebView |
READ_MEDIA_IMAGES |
Select images from gallery |
READ_EXTERNAL_STORAGE |
Access stored files |
WRITE_EXTERNAL_STORAGE |
Save PDF files |
MANAGE_EXTERNAL_STORAGE |
Save PDFs to a user-accessible folder |
| Type | Location |
|---|---|
| 🗂️ Generated PDFs | Downloads/PDFMaker/ |
| 🔗 Shared / Opened PDFs | App cache directory |
| Requirement | Version |
|---|---|
| Node.js | >= 18 |
| Yarn | 3 |
| Android SDK | latest |
| Device | Android device or emulator |
# Clone the repository
git clone https://github.com/YOUR_USERNAME/PDFMaker.git
# Navigate to project
cd PDFMaker
# Install dependencies
yarn install
# Run on Android
yarn android📝 Create PDF from Text
- Open app → tap Text to PDF
- Type and format your text
- Tap Export PDF
🖼️ Create PDF from Images
- Open app → tap Images to PDF
- Select images from the gallery
- Reorder / rotate / delete as needed
- Tap Export PDF
📑 Create Multi-page PDF
- Open app → tap Create PDF
- Write content and add images
- Tap + to add more pages
- Tap Export PDF
📂 Open PDF from Other Apps
- Find a PDF in your file manager
- Tap Open with → PDFMaker
- Or share a PDF from any app → PDFMaker
com.pdfmaker.tool
🛡️ PDFMaker does not collect or share any personal data. All PDFs are stored locally on the user's device.
This project is private. All rights reserved.
Made with ❤️ using React Native