Introduction
As an electrical engineer, I worked on various projects that involved preparing wiring diagrams—the initial references that spark countless revisions and detailed discussions with clients. Each wiring diagram submitted would return bristling with comments, as meticulous clients scrutinized every comma and endpoint. Responding to these annotations required updating the diagrams and meticulously preparing corresponding responses, known as Change Response Sheets (CRS).
The work got pretty scary. It was such a time-consuming activity: to manually extract every comment from the PDFs into an Excel sheet, arrange, and address them. It was equally much irritating to my productivity and patience. In seeking a solution, I scanned the digital landscape in which tools that may have been put to use for automating this extraction were available, but to no avail. Nothing fit the bill.
While I believe in the saying that necessity is the mother of invention, what actually drives contemporary invention is not necessity but laziness. It is the desire to make tedious tasks easier. With this in mind, I sought to make such a tool—one which could make the process of preparing CRS documents out of extracted comments from a bunch of PDFs so much more straightforward. This was the inception of my project, primarily driven by the urge to be more effective and break free from the monotony of these tasks.
Development Journey
To start off my journey to make comment harvesting easier, I looked up at an unassuming but ever-willing helper; ChatGPT. I shared my needs and from its recommendations, I settled for the Python programming language. While my experience in coding was limited to the development of scripts of different complexity within the VBA language framework for Excel, I realized that now it was quite a different level. With its wide range of libraries and community support, Python should be offering all the flexibility and power that I need to face this challenge.
I rushed to fill the gap in my knowledge and tried to learn Python. I focused on the syntax of Python and their libraries, including PyPDF2 – for pdf manipulation and pandas – data handling. It was so helpful because I could derive ways to start building my application.
PDF Parsing
The first kind of work was creating a function that read and extracted comments made in PDF files. The complexity was based on the fact that the comments can exist in so many formats and nested in any part of the documents.
Data Structuring
I used the results of the analysis mentioned earlier to derive a method of structuring all comments in an ordered, structured Excel. The relationship between each comment and its related section within the wiring diagrams had to be maintained; otherwise, it would not serve the CRS documents properly.
User Interface (UI)
I developed an initial user interface into basic command-line format and continued later on to develop a simple Graphical User Interface (GUI). This made the tool far more accessible—users could simply pick their PDF files and choose where they wanted to save the Excel outputs.
As an example, in the development process, I had to cope with a lot of issues: from supporting a wide range of PDF comment formats to being compatible with many operating systems, every next issue involved getting deeper into the structure details of PDF files and iteratively refining parsing algorithms accordingly to allow one to perform various very specific use cases.
Regular testing and feedback loops with the end users helped to fine-tune the tool to make sure it was, in fact, a practical guide for the poor engineers and project managers trying to battle similar documentation. The sum of this collective effort not only improved the functionality of the tool but also gave insights into the needs and experience of potential users.
Impact and Reflections
Development of the PDF Comment Extractor tool is a big milestone of my engineering career. It not only greatly facilitated the process of updating wiring diagrams and preparation of CRS documents, but also reduced the frequency of mistakes and the workload directly related to manual input. Acceptance of the tool among colleagues has been really good, and much better and smoother working processes have been enabled, leaving our team to focus on more critical engineering tasks.
Not only was this technically very challenging, but personal and professional growth with programming and problem-solving has been a journey because of developing this tool. It took my knowledge about programming and problem solving to another level. Indeed, this has repeatedly underscored the importance of staying abreast and in synchrony with current technologies in the fast-track professional world that exists today.
I vividly recall that during my fourth semester, we were introduced to the wonders of C programming in engineering college. While making simple functions, writing arithmetic operations, or playing with a few mathematical series, the thought in the back of my head had always been, "How do we use this in real life?" I always considered creating the .exe to be the core of software development, something so conceptual and far out.
Developing this tool in Python has significantly deepened the understanding of how code actually works and the concrete effect of throwing in a user interface. It has lit the whole way from just a piece of code on the screen to a real working application that provides for real-life needs.
I will learn to appreciate the value of allowing the student to extend basic coding exercises to include UI development. Perhaps it would be this motivational bridge for them, whereby their code wouldn't be merely an exercise but a building block of actual tools and applications. For budding developers, creating that user interface might turn the process of software creation into something achievable, changing abstract code into something completely visual and functional—sort of like bringing a skeleton to life.
So far this journey has improved not just my technical skills but also my appreciation for the craft of software development itself. This can come under the name "impressions of key understanding" from hands-on use, and for me, true joy in engineering is turning theory into practical solutions.

