I'm proud to say that I've created my first Python desktop application! I wrote the app for my department. I'm an artist at a plastics company, and we do plenty of business with different customers. We send out numerous PDF proofs to these customers on a daily basis, and these PDFs are hosted on our servers.
Usually we would have to open each folder to access the PDF, this normally isn't an issue, but we're talking about 20 plus proofs we're sending out nearly every other day, so having to open each individual folder becomes time consuming.
My solution to this issue was to create an app where the user would only need to type in the PDF name and select the PDF type; this would allow them to create copies of multiple PDFs proofs at the same time, without have to open each folder. The way to app works is the user would first name a desktop folder, this folder would house the copied PDFs, next the user inputs the PDF name (up to ten), for my department the PDFs are named by numbers, so it's and easy copy and paste. Next they would select the PDF type via radio buttons (low resolution, high resolution, raster), then all the user would have to do is click "COPY" and all of the PDFs would be copied to the newly created desktop folder.
If the user needs to add more than ten proofs, there's a "CLEAR" button that clears out the number entries, allowing the user to paste new numbers to copy new proofs to the same desktop folder. There's also a "Zip Folder" button, allowing the user to create an zip file for the proofs folder if they so choose.
As for under the hood, I'm using a few different modules, including pyPDF2, os, and tkinter for the GUI. Everything is driven off the PDF name; once the user clicks copy, the app take the PDF name to build the directories. There's no searching through different folders, everything is an absolute path. The app will first check if main PDF folder exist, if the folder returns true, the app will next look for the specified PDF in its specific folder and only that folder. I wanted the app to be as quick as it's able to be, so I felt that absolute paths were the way to go.
I hope this to be the first app of many, not just for my current position, but as I attempt to retool my own freelance business to incorporate software development. This experience leaves me wanting more, I just need to head in the right direction.
Top comments (2)
This is awesome! Folks underestimate the value in building tools to automate tasks, but a couple of hours spent here will save hundreds of hours there.
You're not an "aspiring" developer. You are a developer. 👋
Thank you!