A bot for PDF for doing Many Things....

Overview

Telegram PDF Bot

Typing SVG

Telegram Bot MIT License Code style: black Crowdin Telegram Channel

Readme Card

A Telegram bot that can:

  • Compress, crop, decrypt, encrypt, merge, preview, rename, rotate, scale and split PDF files
  • Compare text differences between two PDF files
  • Create PDF files from text messages
  • Add watermark to PDF files
  • Multiple languages support
  • Add text layers to PDF files to make them searchable with text
  • Extract images and text from PDF files
  • Convert PDF files into images
  • Beautify handwritten notes images into PDF files
  • Convert webpages and images into PDF files

Repo Special 😅

What's Special in this repo & To-Do's ???

  • Make It Heroku Deployable
  • Add Detailed Guide to get GCP Credentials
  • Add Private Use Feature
  • Add Password feature 🔑 for private use
  • Remove GCP and use another free Cloud Storage.
    • Add Broadcasting Feature
  • Make it more stable and fast

Mandatory Vars....

DEV_TELE_ID - Your Telegram ID.
TELE_TOKEN - Telegram Bot Token get from @BotFather
GOOGLE_APPLICATION_CREDENTIALS - Your GCP Credentials get from Google Cloud 

Where To Get The Mandatory Vars..

DEV_TELE_ID - Get it from Thunder Bot by sending /id

TELE_TOKEN - Get it from @BotFather

GOOGLE_APPLICATION_CREDENTIALS - Get it from Google Cloud ☁️

Optional Vars....

STRIPE_TOKEN - Stripe.com token for receiving Donations.
SLACK_TOKEN - slack.com api token to recieve Feedbacks on Slack.com if not entered you will recieve in your Telegram 

Where To Get The Optional Vars...

STRIPE_TOKEN - Get it from stripe.com

SLACK_TOKEN - Get it from slack.com

Installation [ ⚠️ Click On Any Topic To Get it's Detailed Information ⚠️ ]

Getting GCP Ceredinials ⚠️ Important ⚠️

Getting Started

These instructions will get you a copy of the project up.

Setup Database

The bot uses Datastore on Google Cloud Platform (GCP).

Sir/Ma'am, Kindly 🤗 follow the below steps to create a valid GCP Credentials File :-

  1. Firstly Go to https://console.cloud.google.com/project
  2. Create a Project.
  3. Open http://console.developers.google.com/project/_/apiui/credential And Click on Create Ceredinials then Click on Service Account.
  4. Enter all the required values. [At the Service Accounts, enter a Service account name and click Create. For Service account permissions, select Project, Owner.]
  5. Select a service account. Click the 3 skewer bar and select Create Key. Select JSON, click Create.
  6. Click Create. The credential file will be downloaded to your local computer or Any Device your are Using.
  7. Upload the Project Credential file to the bots private repo.
  8. Then Open https://console.cloud.google.com/datastore/setup .
  9. And enable the FireStore Database.
  10. Now open https://console.cloud.google.com/iam-admin/iam .
  11. And set the service account's role to owner. Note: If you can't see your service account in the list click on Add and add your service account with Owner as Role.
  12. Now Deploy your bot and set GOOGLE_APPLICATION_CREDENTIALS var with value as the File Name of the Ceredinials Json you uploaded in the repo in Step 7.
  13. Congratulations 🎉 your bot has been Successfully Started 😊 So enjoy 🤗 .
⚠️ I will Recommend you to Use Only Google Chrome for generating Ceredinials Json as some browsers will not start the Download of the Json file in the Step 6 ⚠️

Don't Forget to Star 🌟 Repo if ❤️ The Repo and Follow Me to show your ❤️ .

The Easy Way (Heroku)

Follow these steps for a successful deployment.....

  • Star the repo 😅 and import it as Private.
  • Upload your GCP Credentials in the root directory with name GCP_FILE.json
  • Click on the Below Deploy Button

Deploy

  • Enter the Ceredinials and Click in deploy.
  • After Deployment Completed Click on Manage App & Turn on the Dynos....
  • Booyah!! Your PDF Bot is successfully started.
  • Enjoy the Bot 🥳 .

Deploy using GitHub Workflows.....

  • Star the repo 😅 and import it as Private.
  • Upload your GCP Credentials in the root directory with name GCP_FILE.json
  • Go to Project->Settings->Secrets and Click New repository secret and Add All the following Vars as the Repository Secrets.

HEROKU_API_KEY: Your Heroku Account API

HEROKU_APP_NAME : Heroku App Name

HEROKU_EMAIL : Your Heroku Email 📨 Id

DEV_TELE_ID : Your Telegram ID.

TELE_TOKEN : Telegram Bot Token get from @BotFather

GOOGLE_APPLICATION_CREDENTIALS : Your GCP Credentials get from Google Cloud

  • Go To The Actions Tab and Choose Manually Deploy To Heroku and click on run workflow.

Follow me if Love ❣️ the repo.

Local Host

OS Requirements

Ubuntu

apt-get install poppler-utils libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-info

macOS

brew install libxml2 libxslt poppler cairo pango gdk-pixbuf libffi

Setup Virtual Environment

Create a virtual environment with the following command:

virtualenv venv
source venv/bin/activate

Bot Requirements

Run the following command to install the required packages:

pip install -r requirements.txt

Compile the translation files

Run the following command to compile all the translation files:

pybabel compile -D pdf_bot -d locale/

Setup Your Environment Variables

Copy the .env example file and edit the variables within the file:

cp .env.example .env

Running The Bot

You can then start the bot with the following command:

python bot.py

Follow me if Love ❣️ the repo.

Follow me if Love ❣️ the repo.

Found a Bug 🐛

Feel free to create a pull or create a issue now and describe your issue freely.

Credits

Owner
Mr. Developer
Telegram Bot 🤖 Developer Alone 😔 Open Source ❤️ Learning From Mistakes 😃
Mr. Developer
An application which enables the users to perform simple yet intriguing PDF operations

AstutePDF A repository containing the GUI for an application which enables the users to perform simple yet intriguing PDF operations. These include, M

Raghav S 5 Jan 22, 2022
borb is a library for reading, creating and manipulating PDF files in python.

borb is a library for reading, creating and manipulating PDF files in python.

Joris Schellekens 2.9k Jan 01, 2023
Svg2pdfgen - Svg To PDF gen with python

Svg2pdfgen - Svg To PDF gen with python

Robert Urbańczyk 3 May 30, 2022
Convert PDF to AudioBook and Audio Speech to PDF

In this Python project, we will build a GUI-based PDF to Audio and Audio to PDF converter using the Tkinter, OS, path, pyttsx3, SpeechRecognition, PyPDF4, and Pydub libraries and the messagebox modul

RISHABH MISHRA 1 Feb 13, 2022
A bulk pdf generator. This application can generate PDFs in bulk by using just one click.

A bulk html pdf generator. This application can generate PDFs in bulk by using just one click. Screenshots Requirements 🧱 Your system must have the f

Aman Nirala 3 Apr 23, 2022
minipdf is a package for creating simple, single-page PDF documents.

minipdf minipdf is a package for creating simple, single-page PDF documents. Installation You can install the development version from GitHub with: #

mikefc 41 Dec 19, 2022
Split given PDF document into 4 page groups and convert them to booklet format

PUTO: PDF to Booklet converter Split given PDF document into 4 page groups and convert them to booklet format. It creates a PDF like shown below: Fir

3 Mar 12, 2022
Converting Html files to pdf using python script, pdfkit module and wkhtmltopdf.

Html-to-pdf-pdfkit-wkhtml- This repository has code for converting local html files and online html resources into pdf. It is an python script which u

Hemachandran P 1 Nov 09, 2021
pikepdf is a Python library for reading and writing PDF files.

A Python library for reading and writing PDF, powered by qpdf

1.6k Jan 03, 2023
Python script that split PDF files.

Automatic PDF Splitter This script can create new single-page PDFs files from multipaged PDFs. Requirements Python 3.0+ # Debian distros sudo apt-get

Leandro Padula 5 Apr 02, 2022
PDFSanitizer - Renders possibly unsafe PDF files and outputs harmless PDF files

PDFSanitizer Renders possibly malicious PDF files and outputs harmless PDF files

9 Jan 30, 2022
Convert MD files to PDF automatically (with CSS) 📄🚀

MD2PDF Action Convert MD files to PDF automatically (with CSS)! Converts a pattern described set of markdown files and converts them to pdf whilst app

Will Fantom 1 Feb 09, 2022
Camelot is a Python library that can help you extract tables from PDFs!

A Python library to extract tabular data from PDFs

1.8k Jan 03, 2023
Busca no nome e conteúdo de arquivos PDF no diretório e subdiretórios.

PDF Finder Este script auxilia na pesquisa em pastas com inúmeros arquivos PDF. A pesquisa é feita em todos os arquivos do doretório e subdiretórios.

William Pilger 1 Nov 27, 2021
A simple pdf size compressing telegram robot witten in python.

Pdf Compressor Telegram Bot ##About : A simple pdf size compressing telegram robot witten in python. Mostly useful for digital documentation. Deploy t

Renjith Mangal 22 Oct 28, 2022
Generate a preview image for a PDF.

PDF ➡️ Preview A simple tool to save me time on Illustrator. Generates a preview image for a PDF file. Useful for sneak peeks to academic publications

David Chuan-En Lin 51 Sep 22, 2022
DietPDF aims at reducing PDF file size while not degrading quality nor losing metadata

DietPDF aims at reducing PDF file size while not degrading quality nor losing metadata

Frédéric BISSON 6 Jul 27, 2022
Zen-Knit is a formal (PDF), informal (HTML) report generator for data analyst and data scientist who wants to use python.

About Zen-Knit: Zen-Knit is a formal (PDF), informal (HTML) report generator for data analyst and data scientist who wants to use python. Inspired fro

Zen Reportz 27 Jul 13, 2022
Convert given source code into .pdf with syntax highlighting and more features

Code2pdf 📠 Convert given source code into .pdf with syntax highlighting and more features Build Status Version Downloads Python Demo Installation Bui

Tushar Gautam 343 Jan 05, 2023
A bot for PDF for doing Many Things....

Telegram PDF Bot A Telegram bot that can: Compress, crop, decrypt, encrypt, merge, preview, rename, rotate, scale and split PDF files Compare text dif

Mr. Developer 60 Dec 27, 2022