Ijraset Journal For Research in Applied Science and Engineering Technology
Authors: Harshavardhan Seetha, Vimal Tiwari, Kartik Reddy Anugu, Dr Shanthi Makka, Dr Ramesh Karnati
DOI Link: https://doi.org/10.22214/ijraset.2023.48848
Certificate: View Certificate
This paper presents a Graphical User Interface (GUI) application for PDF processing tools and file conversion tools. The application provides a user-friendly interface for users to perform various operations on PDF documents, such as splitting, merging, extracting, rotating, and deleting pages. Depending on the user\'s needs, the user can perform these operations on every page, even pages, odd pages, random specific pages, all pages after some nth page, and between some specific ranges. The application is designed to be user-friendly and simple to use, allowing users to complete tasks quickly and easily. Nowadays, most universities and schools provide their students with all of their course materials online, therefore many students access these resources via PDF files. Since this application operates without an internet connection and is therefore advantageous to all users, Using the PyPDF2 library for PDFs, the Python graphics package Tkinter is used to develop the graphical user interface and UI library CustomTkinter which provides fresh, modern, and completely customizable widgets. Many students upload their files to the internet in order to use these tools, but our offline GUI application provides all of these tools for free. It also includes PDF encryption, decryption, and file conversion tools. These tools are simple to use and can help users save time and effort.
I. INTRODUCTION
PDF files are becoming increasingly important in today's digital world. They are used for a variety of purposes, such as document sharing, creating digital portfolios, and document archiving. PDFs are incredibly useful for students and professors in universities. They provide a convenient way to share documents, such as lecture notes, assignments, and research papers, with students and colleagues. PDFs are also great for archiving documents, as they are not easily editable and can be easily shared. PDFs are also useful for creating digital books that can be read on any device. Digital magazines that are accessible on any device are frequently made using PDFs.
PDF files are used to create digital presentations that can be distributed to colleagues and clients. Additionally, PDFs are often used to submit assignments and other documents to professors, as they are easy to read and can be opened on any device. PDFs are also useful for creating digital textbooks that students and professors can easily access. PDF processing tools are essential for any business or individual who needs to work with PDF documents. PDF processing tools allow users to easily manipulate PDFs, allowing them to split, merge, extract, rotate, and delete pages. There are both free and paid PDF processing tools available. When compared to paid versions, free versions typically have basic features. Some paid versions, for example, allow users to password-protect PDFs, compress PDFs, and convert PDFs to other file types. A Graphical User Interface (GUI) is designed and developed using the Python programming language to provide pdf processing tools including splitting, merging, deleting, extracting, and rotating the PDFs. The user can carry out these operations on every page, even pages, odd pages, random specific pages, all pages after some nth page, and between some defined ranges, depending on their requirements. It also provides tools for encrypting and decrypting PDFs, file conversion tools such as PDF to Word, PNG, JPG, WEBP, JPEG file format conversions, and vice versa, converting one picture file format to another file format, generating QR codes, decoding QR codes, generating various types of barcodes including EAN-8, UPC-A, Code128, PZN7, EAN-13, Code39, ISBN-13 barcodes, and decoding all of these barcodes. This Graphical User Interface is designed to be simple so that the user will have no difficulty working with it.
II. METHODOLOGY AND PROCEDURE
Python is a powerful and versatile programming language that is used to create a wide range of applications. Python is widely used to create graphical user interfaces (GUIs). In contrast to command line interfaces, graphical user interfaces (GUIs) make it easier for people to engage with software applications.
A. Python
Python is a high-level, interpreted, general-purpose programming language. It was created by Guido van Rossum in 1991 and further developed by the Python Software Foundation. Python is a powerful, versatile, and easy-to-learn programming language. It is utilised in many different applications, ranging from scientific computing to web development. Python is used in the software industry for many different aspects, including web development, scripting, data analysis, and automation. Because of its readability and flexibility, it is a great option for software developers. Python code is simple to read and understand, making debugging and maintenance easier. It also has a huge standard library, making it simple to find the appropriate tool for the job.
B. Tkinter
Tkinter is a Python library that is used to create graphical user interfaces (GUIs). It is the most commonly used library for creating GUI applications in Python. It has a strong collection of widgets that may be used to quickly build complex user interfaces. Additionally, it allows event-driven programming, enabling programmers to design interactive applications. Tkinter provides a variety of widgets, such as buttons, labels, text boxes, and menus. A variety of user interfaces, including forms, dialogue boxes, and menus, can be developed with these widgets. Tkinter also provides a variety of functions for manipulating the widgets, such as setting their properties, positioning them on the screen, and responding to user input. The Tkinter module also includes several functions for creating a graphical user interface (GUI). The mainloop() function is used to start the application's mainloop and process events. After all of the widgets have been created, the mainloop() function is called. The geometry() function is used to specify the window's size and position. The title() function is used to set the window's title. The update() function is used to refresh the window after changes are made.
C. CustomTkinter
CustomTkinter is a Python library for creating custom user interfaces. The CustomTkinter library is a Tkinter library extension that adds new features and widgets. Its purpose is to make it easier to build complex and powerful Python GUIs. The library includes a variety of widgets and functions that can be used to build custom GUIs. CustomTkinter includes a number of tools for developing custom user interfaces, such as custom widgets, custom dialogues, and custom menus. It also includes tools for developing custom themes, such as custom colors, fonts, and images. Both beginners and experienced Python developers can benefit from CustomTkinter's ease of use and extensibility.
CustomTkinter also includes advanced features like event handling, animation, and graphics. The application can respond to user input such as mouse clicks and key presses by using event handling. The application can use animation to create dynamic visual effects like fading in and out of text or images. Graphics enable the application to generate personalised images such as charts and graphs.
D. PyPDF2
A simple approach to work with PDF files is made possible by the PyPDF2 Python package. It is particularly useful for creating automated applications that need to process PDF documents, such as web applications or desktop applications. It is also useful for extracting data from PDF documents, such as text or images, and for creating custom PDF documents. It has the ability to split documents into pages, merge documents into pages, crop pages, and combine multiple pages into one page. It can also extract document information (title, author, number of pages). Additionally, it can edit PDF files to include passwords, viewing choices, and customised data. The PyPDF2 library provides a number of functions and classes for working with PDF documents. The main functions and classes provided by PyPDF2 include PdfFileReader and PdfFileWriter. These classes provide the basic tools for reading and writing PDF documents.
They allow you to open, read, and write PDF documents. PageObject class provides an interface for accessing and manipulating the content of a PDF page.
It allows you to access and manipulate the text, images, and other objects on a PDF page. DocumentInformation class provides an interface for accessing and manipulating the metadata of a PDF document. You can view and change the document's title, author, subject, and other details. ContentStream class provides an interface for accessing and manipulating the content streams of a PDF document. It allows you to access and manipulate the text, images, and other objects in a PDF document. PyPDF2 is a powerful library for working with PDF documents. It has many different classes and functions for handling with PDF files. You can easily create, edit, and manipulate PDF documents using the PyPDF2 library.
E. Proposed Approach
This application was designed primarily for college students and professors. This application includes PDF Processing tools that allow users to split PDF’s on every page, even pages, odd pages, specific random pages, all pages after some nth page, and pages between some specific range. Splitting PDFs can help to protect sensitive information, as it can be easier to control who has access to certain parts of the document. A user can also delete pages from a PDF. Using this tool is important because it allows you to quickly and easily remove unwanted pages from a PDF document. This can be useful for removing sensitive information or pages that are no longer relevant. It is able to reduce the size of a PDF document, making it easier to share or store. It also includes page rotation tools, allowing the user to rotate the pages by 90°, 180°, 270°, 360° angle. The rotating pages tool in a PDF can be useful for rearranging the order of pages in a document, rotating pages to the correct orientation, and creating a more organised and readable document. A user can also extract pages from a PDF file. The PDF Extract Pages tool allows users to extract pages from a PDF document and save them as a separate PDF file. When a user needs to extract a few pages from a large document for a specific purpose, this tool is helpful. For example, a user may need to extract pages from a PDF containing a large report and save them as a separate file for sharing with a colleague. It includes tools for merging multiple PDFs. It can save time and effort to combine many PDFs, which is an additional benefit. You can rapidly combine all the documents into one file and make all the necessary changes at once rather than having to open and edit each one separately. When you need to make changes to several documents at once, this is extremely helpful. You can generate a single, consolidated document that is simpler to handle and share by merging many PDF files into one.
A user has the option to add page numbers to a PDF at any side of the page, including the top centre, top left, top right, and bottom centre, bottom left, bottom right. For several reasons, adding page numbers to a PDF is crucial. It helps in document organisation, making it simpler to locate certain information. Page numbers are able to identify the current page or the total number of pages, making it easier to track the document's progress.
A password-protected PDF can be a great way to safeguard personal data. It can be utilized to limit who is permitted to read, modify, copy, or print the content of the PDF and to stop illegal access to the file. Tools for adding or removing passwords from a PDF are also included in this application. The PDF file can be shared with anybody without fear of data leakage once the password has been removed. Moreover, because the password does not need to be shared with each user, removing passwords can make it easier to collaborate on documents with multiple users. It also contains file conversion tools, which allow users to convert one file to another file format. This application also includes tools for converting PDF to Word, JPEG, WEBP, PNG, and JPG, depending on the user needs the user can convert these PDFs to other file formats on every page, even pages, odd pages, specific random pages, all pages after some nth page, and pages between some specific range. The user can also convert between several picture file types, like JPG to JPEG, PNG, WEBP, and vice versa. When dealing with various file types, file conversion tools are an excellent way to save time and effort. You can quickly and easily convert files from one format to another using a file conversion tool, allowing you to work with the file type you require. One of the main advantages of offline file conversion tools is that they are often free to use. Because there is no longer a need for expensive software, many consumers find them to be an affordable option.
Additionally, this application has tools for creating and decoding QR codes. The use of QR Codes in marketing, advertising, and other fields is growing. Text, images, and other forms of data can be stored in them. Data can be quickly and readily stored and transferred using QR codes, which is their main advantage. Users can access a website, video, or other digital content by just scanning a QR code, which makes it simple for businesses to communicate with their clients and leads. Furthermore, social media profiles can be accessed via QR codes, enabling businesses to quickly and simply share their social media content with their customers. The user can also create and read many types of barcodes. Code39, Code128, UPC-A, EAN-13, ISBN-13, EAN-8, and PZN7 barcodes are among the many varieties of barcodes that can be generated by the user. Products and services are identified, tracked, and managed using them. Barcodes are also used to manage library resources. To identify and keep track of books, magazines, and other materials, libraries utilize barcodes. Barcodes, which may be used to check out and check in books, are also able to track the circulation of books and other items. Finally, these offline tools can help to improve security. By eliminating the need for an internet connection, users can be sure that their data is safe and secure.
F. Experimental Setup
This application is developed using the Python Programming Language. The code is written using the Pycharm IDE. PyCharm is an integrated development environment (IDE) designed specifically for the Python programming language. PyCharm is a great IDE for developing GUI applications in Python. It includes a GUI builder as well as numerous tools for debugging and refactoring your code. It also supports a number of frameworks, including PyQt, Kivy, and Tkinter, making it simple to create cross-platform applications. We have utilized PyPDF2, CustomTkinter, and Tkinter libraries. We used the Tkinter module to create a main window where the user can access all of the tools, and when the user selects a tool, the child windows appear. We used widgets and classes from the CustomTkinter module which includes CTkButton, CTkLabel, CTkFrame, CTkToplevel, CTkRadiobutton, CTkCheckBox, CTk, CTkTextBox, and CTkEntry Widgets. The CTkButton widget is used to create a graphical button that, when clicked, can perform a variety of tasks. The CTkLabel widget is a standard CustomTkinter widget used to display a text or image on the screen. It can be used to display text, images, or a combination of both. CustomTkinter's CTkFrame is used to create a frame widget. A frame is a rectangular area in which other widgets can be placed. It is used to create and structure a user interface by grouping related widgets together. The frame widget also includes a border around the contained widgets that can be used to visually separate them. CTkToplevel is a Customtkinter class that allows you to create a new top level window. It's used to make a new window, complete with its own top-level window object. The CTkRadioButton widget is a type of button that allows you to choose one of several options. The CTkCheckBox widget is used to create a checkbox. The CTkTextBox is a CustomTkinter widget used to display text in a single line. It is used to create a single-line text box for entering data. The Python CustomTkinter package contains a function called CTk() that can be used to build a unique Tkinter window. It enables you to create a window with a specific size, title, and other parameters. You can also add widgets to the window, such as buttons, labels, and text fields. We styled the widgets with CustomTkinter themes. After creating all the user-defined functions and adding functionality to these widgets, all the tools are created. For each tool in the application, we created a separate class that contains the functionality of that tool. We then created a main class, imported all of the classes, and created a GUI application. After running this Python script, the GUI Application was functional and well-designed. Then, our application's Python script was converted to an executable file.
Python's autopytoexe library was used to create an executable file. Autopytoexe is a library in Python that allows you to convert a python script into an executable file. It is useful for developing applications that can be distributed without requiring a Python interpreter. It also has the ability to package a script as an executable that can be run on any machine without the need for Python to be installed. In any Windows operating system, any user can now use this application without requiring an internet connection.
III. MATERIALS AND EQUIPMENT
A computer with a Windows 10 operating system, a 1.7 GHz I3 processor, 4GB RAM, and some hard disc space is used. With Python 3.10 installed, the Pycharm IDE is used to write code.
The GUI Application Interface is successfully implemented. The application now includes all of the PDF Processing Tools and File Conversion Tools, as well as QR and barcode generation tools. It works for all Windows users without the need for an internet connection. When a user wants to use a tool, a separate GUI called a child window is created. In this application, only one tool from a set of tools can be used at the same time. The user interface is based on graphical elements, users can easily learn how to use this application. Offline PDF processing tools are a must-have for any company that needs to process large volumes of PDFs. These tools enable users to manipulate PDFs without requiring an active internet connection, saving time and money.Our application has a more user-friendly interface. It is simpler for users to interact with an application when the user interface is better. A well-designed user interface can increase user comfort when using the application. Our application responds faster. Response time can refer to how quickly an application responds to user input, how quickly data is loaded, or how quickly an application responds to a request, depending on the application. It has a lower level of user experience when compared to other applications. The user experience is an important factor to consider when designing and developing any application. In comparison to other offline applications, our application has a greater number of tools. An application with a lot of features will probably make its users happier. This may increase their possibility of returning to the application in the future and recommending it to others.
[1] Moore, A.D., 2018. Python GUI Programming with Tkinter: Develop responsive and powerful GUI applications with Tkinter. Packt Publishing Ltd. [2] Roura Padrosa, D., Marchini, V. and Paradisi, F., 2021. CapiPy: python-based GUI-application to assist in protein immobilization. Bioinformatics, 37(17), pp.2761-2762. [3] https://libraries.io/pypi/customtkinter [4] Saabith, A.S., Fareez, M.M.M. and Vinothraj, T., 2019. Python current trend applications-an overview. International Journal of Advance Engineering and Research Development, 6(10). [5] https://pypdf2.readthedocs.io/en/3.0.0/ [6] Podrzaj, P., 2019, August. A brief demonstration of some Python GUI libraries. In Proceedings of the 8th International Conference on Informatics and Applications ICIA2019 (pp. 1-6). [7] K.Ramasamy, & Mani, M. & Hasan, I.Noorul. (2022). QR Code and its Applications in Library and Information Centres: with a Slant to Free Softwares to Generate QR Codes. [8] https://pypi.org/project/customtkinter/ [9] Priss, U., 2008. FcaStone-FCA file format conversion and interoperability software. Conceptual Structures Tools and the Web, 33. [10] Pryor-Miller, Andrew & Leung, James & Taleghani, Ali & Rajabi, Zeyad. (2015). Techniques to manage file conversions. [11] https://docs.python.org/3/library/tkinter.html [12] Miano, J., 1999. Compressed image file formats: Jpeg, png, gif, xbm, bmp. Addison-Wesley Professional. [13] Beniz, D. and Espindola, A., 2016. Using Tkinter of python to create graphical user interface (GUI) for scripts in LNLS. WEPOPRPO25, 9, pp.25-28. [14] Conway, M.J., 1995. Python: A GUI development tool. interactions, 2(2), pp.23-28. [15] https://libraries.io/pypi/auto-py-to-exe [16] Dudheria, R., 2017, October. Evaluating features and effectiveness of secure QR code scanners. In 2017 International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery (CyberC) (pp. 40-49). IEEE. [17] Willman, Joshua. (2021). Modern PyQt: Create GUI Applications for Project Management, Computer Vision, and Data Analysis. 10.1007/978-1-4842-6603-8. [18] https://pypdf2.readthedocs.io/en/latest/modules/PdfReader.html [19] Lotlikar, T., Kankapurkar, R., Parekar, A. and Mohite, A., 2013. Comparative study of Barcode, QR-code and RFID System. International Journal of Computer Technology and Applications, 4(5), p.817. [20] Sudha, K.L., Shinde, S., Thomas, T. and Abdugani, A., 2015. Barcode based student attendance system. International Journal of Computer Applications, 119(2). [21] https://docs.python.org/3/library/os.html [22] Al-Saedi, F.A.T. and Jasim, A.M., 2015. Development of a Barcode Reader System. International Journal of Computer Trends and Technology, 30, pp.50-58. [23] Clark, A., 2015. Pillow (pil fork) documentation. readthedocs. [24] https://pypi.org/project/PyPDF2/ [25] Wiggins, R.H., Davidson, H.C., Harnsberger, H.R., Lauman, J.R. and Goede, P.A., 2001. Image file formats: past, present, and future. Radiographics, 21(3), pp.789-798. [26] https://libraries.io/pypi/pdf2docx [27] Gupta, Abhishek. (2021). A Research paper on Typing Speed Tester Game using Python & Tkinter. International Journal for Research in Applied Science and Engineering Technology. 9. 3436-3437. 10.22214/ijraset.2021.35767. [28] Elumalai, Aarthi. (2021). Project: Tic-tac-toe Game with Tkinter. 10.1007/978-1-4842-6812-4_17. [29] https://github.com/TomSchimansky/CustomTkinter/wiki [30] https://docs.python.org/3/library/pathlib.html
Copyright © 2023 Harshavardhan Seetha, Vimal Tiwari, Kartik Reddy Anugu, Dr Shanthi Makka, Dr Ramesh Karnati. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
Paper Id : IJRASET48848
Publish Date : 2023-01-25
ISSN : 2321-9653
Publisher Name : IJRASET
DOI Link : Click Here