Convert PDF to CSV File Format

import logging
from fastapi import FastAPI, File, UploadFile, HTTPException
from fastapi.responses import HTMLResponse, StreamingResponse
import io
import os
import pdfplumber
import pandas as pd

# Configure logging
logger = logging.getLogger(__name__)

app = FastAPI()

# Function to convert PDF to CSV
def convert_pdf_to_csv(pdf_stream):
        # Load PDF
        pdf =
        first_page = pdf.pages[0]
        table = first_page.extract_table()
        # Convert table to DataFrame

About this template

An app that converts uploaded PDF files to CSV file format and allows for easy downloading of the converted file.

Introduction to the PDF to CSV Converter Template

Welcome to the Lazy template guide for converting PDF files to CSV format. This template is designed to help you quickly set up an application that allows users to upload a PDF file and receive a CSV file in return. The application uses FastAPI to create a simple web server with endpoints for uploading the PDF and downloading the converted CSV file.

Clicking Start with this Template

To begin using this template, click on the "Start with this Template" button. This will pre-populate the code in the Lazy Builder interface, so you won't need to copy, paste, or delete any code manually.

Test: Pressing the Test Button

Once you have the template loaded, press the "Test" button to deploy the application. Lazy will handle the deployment process, and you won't need to worry about installing libraries or setting up your environment.

Using the App

After pressing the "Test" button, Lazy will provide you with a dedicated server link to use the API. You will also receive a link to the FastAPI documentation, which will be useful for understanding how to interact with the API endpoints.

The application has two main endpoints:

  • A POST endpoint at /upload_pdf for uploading the PDF file.
  • A GET endpoint at / which serves the main page with the file upload form.

To use the application:

  • Go to the main page served at the root endpoint.
  • Use the form to select and upload a PDF file.
  • After the file is uploaded and processed, a download link will appear.
  • Click on the download link to receive the converted CSV file.

The main page contains a simple HTML form where users can upload their PDF files. The JavaScript code handles the form submission and fetches the converted CSV file from the server.

Integrating the App

If you wish to integrate this application into an external service or frontend, you can use the server link provided by Lazy to make API calls from your external tool. For example, you can set up a button in your external tool that, when clicked, sends a request to the /upload_pdf endpoint and handles the response.

Here is a sample code snippet that you could use in an external tool to integrate with the application:

// Example JavaScript code to call the upload_pdf endpoint
async function uploadPDF(file) {
    const formData = new FormData();
    formData.append('file', file);

    try {
        const response = await fetch('YOUR_LAZY_SERVER_LINK/upload_pdf', {
            method: 'POST',
            body: formData,

        if (response.ok) {
            const blob = await response.blob();
            const downloadUrl = URL.createObjectURL(blob);
            // You can then set the downloadUrl to a download link or trigger a download directly
        } else {
            console.error('Error uploading PDF:', response.statusText);
    } catch (error) {
        console.error('Network error:', error);

Replace YOUR_LAZY_SERVER_LINK with the server link provided by Lazy after deployment. This code can be added to your external tool's frontend to allow users to upload PDF files and receive CSV files in return.

Remember, this template is designed to work seamlessly on the Lazy platform, so all the heavy lifting of deployment and environment configuration is taken care of for you. Enjoy building your PDF to CSV converter application!

Last published
April 7, 2024

More templates like this

PDF Chatbot

The PDF Chatbot app connects to uploaded PDFs and answers questions about them using AI.


Convert PDF to Black and White (Grayscale)

An app that converts uploaded PDF files to black and white (grayscale) and allows for easy downloading of the converted file.


Convert PDF to Google Doc

This app allows users to upload PDF files and convert them into Google Docs. Users can upload a PDF file through a web interface, and the app will authenticate the user with Google. Once authenticated, the app will convert the PDF file into a Google Doc and save it to the user's Google Drive. The app provides a simple and user-friendly interface for uploading and converting PDF files.

Convert PDF to CSV File Format