Dynamic Bulk PDF Downloader - A Custom Frappe App

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

  1. 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.
  2. Custom Print Format Selection:
    • Choose from available Print Formats for the selected Doctype.
    • Ensure that PDFs maintain a consistent format as per user preferences.
  3. 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

  1. 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.
  2. 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.
  3. 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).
  4. 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.
  • Technologies

    Frappe, Erpnext, Python, Javascript, MySQL