The PDF Bill Reader project was originally a small hobby project for an hotel which worked much better then expected in the end. The underlying Code is not shared here or on my Git, however, if there is any interest (even just demonstration), please contact me via E-Mail.
Down below is a short discription about the App and what is tries to accomplish. It is to note that the app is currently personlized so it fits the need of the hotel, however, the code basis is written in such way, so that extending or changing code is easily done. Meaning, if needed the Bill Reader can be personlized to the need of the user.
About the Application
Within the scope of an own little project for an Hotel I created an application. This application is a Python-based desktop tool developed for a company or hotel environment to automate the handling of invoice PDFs and turn them into structured Excel data. Its main purpose is to reduce manual data entry, improve consistency and connect incoming documents with existing spreadsheet-based workflows. Instead of reading supplier invoices by hand and copying values into multiple Excel files, the user can manage the process through one central interface.
The app was created for organizations that work heavily with PDF invoices and Excel and want a more reliable, faster and more structured workflow. It combines document reading, AI-assisted data extraction, table normalization and Excel automation in one practical business tool.
What the App Does
The application reads one or more PDF invoices, extracts relevant invoice information and converts that information into structured data. This includes both invoice-level details and line-item details, which are then saved into a master Excel workbook. From there, the data can also be transferred into additional business spreadsheets used for reporting, costing, cash-flow tracking, or inventory-related processes. Another important aspect is here is that due to the AI, non-phyiscal but implied data can be extracted, f.e. "Augustiner Hell" can be categorized as "beer" although the term itself does not include any written statements about beer.
In short, the app acts as a bridge between unstructured PDF documents and structured Excel workflows. It transforms invoice content into usable business data and helps companies avoid repetitive manual processing.
What the App Can Be Used For
The application can be used anywhere a business receives recurring PDF invoices and needs to convert them into reliable spreadsheet data. It is suitable for administrative teams, purchasing workflows, finance support, operations, hospitality environments, food and beverage management and general internal reporting processes.
Typical use cases include supplier invoice processing, bookkeeping preparation, cost categorization, central invoice archiving in Excel, cash-flow support, article-based costin, and inventory-related spreadsheet updates. While the application was developed for a specific internal use case, its overall concept is transferable to many company settings where PDFs and Excel are closely connected.
How the App Is Used
The user opens the desktop application, selects a saved company or workflow profile, chooses one or more PDF files, and defines the target Excel workbook. A valid AI API key is entered in the settings so the extraction service can be used. Once the AI reader is started, the application processes the PDF, extracts the relevant data, checks and normalizes the results and stores the final output in Excel.
If needed, the user can then trigger further Excel updates so the extracted invoice data automatically flows into additional spreadsheets. This makes the app useful not only for document reading, but also for downstream administrative and operational work.
AI Used and How It Is Used
The application uses Google Gemini models for AI-based invoice understanding. Gemini is responsible for interpreting the PDF content, identifying invoice fields, detecting article or line-item rows, classifying categories, and returning the extracted information in a structured form.
The AI is not used as a general chatbot inside the app. Instead, it is used in a task-focused way: the PDF and supporting text are sent to the model, the model returns structured invoice data and that result is then processed into Excel-compatible tables. This allows the tool to handle complex invoice layouts more flexibly than a purely rule-based extractor.
API Keys
To use the AI functionality, the user provides a Gemini API key. The API key is needed to authenticate requests to the AI service and allow the application to access the selected model. In simple terms, the key works as the secure connection credential between the desktop app and the external AI platform.
This means the application itself runs locally, but when AI extraction is used, the relevant invoice content is sent through the configured API to the selected Gemini model for processing.
Connection Between PDF Extraction and Excel
One of the most important strengths of the application is its direct connection between PDF extraction and Excel automation. The app does not stop at reading a document. Instead, it turns the PDF into structured data that can immediately be used inside spreadsheet-based processes.
This is especially valuable in companies where Excel remains the central tool for reporting, bookkeeping support, purchasing analysis, costing, or inventory planning. By linking PDF invoices directly to Excel outputs, the app removes a large amount of manual copying and reduces the risk of inconsistent data entry.
Key Benefits
The main benefit of the application is that it combines AI-based document understanding with practical spreadsheet automation. It saves time, reduces manual workload, improves consistency, and turns unstructured invoice documents into business-ready data.
Rather than being only a PDF reader or only an Excel tool, the application functions as a workflow bridge between incoming documents, structured data extraction, and operational spreadsheet processes.
Libraries and Technologies Used
The application was built in Python and uses a combination of libraries for interface design, data processing, PDF handling, Excel automation, and AI integration.
Key libraries include:
Tkinter for the desktop graphical user interface
pandas for data cleaning, normalization, and table processing
openpyxl for reading, updating, and writing Excel workbooks
pdfplumber for extracting text from PDF invoices
PyMuPDF for additional PDF handling and fallback PDF rendering
google-genai for integration with Google Gemini models
In addition, Python standard library modules such as json, os, pathlib, threading, queue, re, copy, and shutil are used for settings management, file handling, background processing, and workflow support.