Overview
The Dynamic Bulk PDF Downloader is a custom Frappe app designed for bulk downloading of PDF documents from specific Doctype records based on user-defined filters. It allows users to select a print format, filter records dynamically, and download PDFs in bulk as a ZIP folder for personal use.
View App in Frappe Marketplace
Key Features & Functionalities
- Doctype-Based Record Filtering:
- Users can select a Doctype (e.g., Sales Invoice, Purchase Order, Delivery Note, etc.).
- Apply custom filters (e.g., Date Range, Customer, Status, etc.) to refine record selection.
- Fetch only the relevant records based on filter criteria.
- Custom Print Format Selection:
- Choose from available Print Formats for the selected Doctype.
- Ensure that PDFs maintain a consistent format as per user preferences.
- Bulk PDF Generation & ZIP Download:
- Convert filtered records into PDFs dynamically.
- Download all generated PDFs in a compressed ZIP folder.
- Automatically rename PDFs based on a document name and specific field (e.g., Invoice Number, PO Number, or Customer Name) wise folder-wise sorting.
Technical Implementation
- Backend Development (Python & Frappe Framework):
- Built backend logic to filter Doctype records dynamically.
- Integrated Frappe’s PDF generation API to convert records into PDFs.
- Implemented logic to bundle PDFs into a ZIP file for bulk downloading.
- Frontend Development (Frappe & JavaScript):
- Designed a user-friendly form for selecting Doctype, filters, and print formats.
- Developed an intuitive "Download ZIP" button for fetching bulk files.
- Added a notification for bulk PDF generation status updates.
- File Handling & Naming Convention:
- PDF files are named based on a docname.
- The final ZIP file is structured logically on a specific field(e.g., Invoice Number, PO Number, or Customer Name).
- Access Control & Security:
- Ensured that users can only download PDFs for their assigned Doctypes.
- Restricted unauthorized access to prevent data leaks.
Use Cases & Benefits
- For Accountants & Finance Teams: Download bulk invoices, payment receipts, and purchase orders for record-keeping.
- For Logistics & Supply Chain: Generate bulk delivery notes or shipment invoices for smooth operations.
- For HR & Compliance: Extract bulk employee records, payslips, or compliance documents for audits.
- For Personal Use: Quickly fetch and store personal documents in PDF format with ease.
My Role & Responsibilities as a Developer
As a Frappe Developer, I was responsible for:
- Building Core Functionality: Implemented the logic for filtering Doctype records and fetching selected data.
- Generating PDFs Dynamically: Integrated Frappe’s built-in print format renderer for seamless PDF creation.
- Developing the ZIP Export Feature: Optimized file compression and structured folder organization.
- Ensuring Data Security: Restricted downloads based on user permissions and Doctype access levels.