<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: zeshuaro</title>
    <description>The latest articles on DEV Community by zeshuaro (@zeshuaro).</description>
    <link>https://dev.to/zeshuaro</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F390555%2Ff71840a5-8fe3-4570-a09c-768abd6e01b3.jpeg</url>
      <title>DEV Community: zeshuaro</title>
      <link>https://dev.to/zeshuaro</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zeshuaro"/>
    <language>en</language>
    <item>
      <title>Telegram PDF Bot</title>
      <dc:creator>zeshuaro</dc:creator>
      <pubDate>Wed, 20 May 2020 11:35:25 +0000</pubDate>
      <link>https://dev.to/zeshuaro/telegram-pdf-bot-1308</link>
      <guid>https://dev.to/zeshuaro/telegram-pdf-bot-1308</guid>
      <description>&lt;h2&gt;
  
  
  My Final Project
&lt;/h2&gt;

&lt;p&gt;I created a PDF utility bot on Telegram that can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Crop, decrypt, encrypt, merge, preview, rename, rotate, scale and split a PDF file&lt;/li&gt;
&lt;li&gt;Compare text differences of two PDF files&lt;/li&gt;
&lt;li&gt;Create a PDF file from text messages&lt;/li&gt;
&lt;li&gt;Add watermark to a PDF file&lt;/li&gt;
&lt;li&gt;Add a text layer to a PDF file to make it searchable&lt;/li&gt;
&lt;li&gt;Extract text from a PDF file&lt;/li&gt;
&lt;li&gt;Extract images in a PDF file and convert a PDF file into images&lt;/li&gt;
&lt;li&gt;Beautify and convert photos into a PDF file&lt;/li&gt;
&lt;li&gt;Convert a web page into a PDF file&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo Link
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://t.me/pdfbot"&gt;https://t.me/pdfbot&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Link to Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vWogaON8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-28d89282e0daa1e2496205e2f218a44c755b0dd6536bbadf5ed5a44a7ca54716.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/zeshuaro"&gt;
        zeshuaro
      &lt;/a&gt; / &lt;a href="https://github.com/zeshuaro/telegram-pdf-bot"&gt;
        telegram-pdf-bot
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A PDF utility bot on Telegram
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Telegram PDF Bot&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://t.me/pdfbot" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/c44632c17fb346fbfdc860c24cd123442e86f695/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f54656c656772616d2d426f742d626c75652e737667" alt="Telegram Bot"&gt;&lt;/a&gt;
&lt;a href="https://t.me/pdf2botdev" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/bddc715bca2422612462d410693a6c56e95901d1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f54656c656772616d2d4368616e6e656c2d626c75652e737667" alt="Telegram Channel"&gt;&lt;/a&gt;
&lt;a href="https://github.com/zeshuaro/telegram-pdf-bot/blob/master/LICENSE"&gt;&lt;img src="https://camo.githubusercontent.com/4fb1c5a69ca8dc52f64620432b3604f32881e12c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7a6573687561726f2f74656c656772616d2d7064662d626f742e737667" alt="MIT License"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://travis-ci.com/zeshuaro/telegram-pdf-bot" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/afcfc44827712fc31fb18459b3ae476a984044bc/68747470733a2f2f7472617669732d63692e636f6d2f7a6573687561726f2f74656c656772616d2d7064662d626f742e7376673f6272616e63683d6d6173746572" alt="Build Status"&gt;&lt;/a&gt;
&lt;a href="https://www.codacy.com/app/zeshuaro/telegram-pdf-bot?utm_source=github.com&amp;amp;utm_medium=referral&amp;amp;utm_content=zeshuaro/telegram-pdf-bot&amp;amp;utm_campaign=Badge_Grade" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/bda527f27c21aa6139ff8a15c8f4de4d433b8408/68747470733a2f2f6170692e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f3430343435393666363439373432666462396239633061636438306333323165" alt="Codacy Badge"&gt;&lt;/a&gt;
&lt;a href="https://crowdin.com/project/telegram-pdf-bot" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/937db4e5d7f52ccb9da0ea33adb5686f1ad8cfbd/68747470733a2f2f6261646765732e63726f7764696e2e6e65742f74656c656772616d2d7064662d626f742f6c6f63616c697a65642e737667" alt="Crowdin"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A PDF utility bot on Telegram that can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Crop, decrypt, encrypt, merge, preview, rename, rotate, scale and split a PDF file&lt;/li&gt;
&lt;li&gt;Compare text differences of two PDF files&lt;/li&gt;
&lt;li&gt;Create a PDF file from text messages&lt;/li&gt;
&lt;li&gt;Add watermark to a PDF file&lt;/li&gt;
&lt;li&gt;Add a text layer to a PDF file to make it searchable&lt;/li&gt;
&lt;li&gt;Extract text from a PDF file&lt;/li&gt;
&lt;li&gt;Extract images in a PDF file and convert a PDF file into images&lt;/li&gt;
&lt;li&gt;Beautify and convert photos into PDF format&lt;/li&gt;
&lt;li&gt;Convert a web page into a PDF file&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Getting Started&lt;/h2&gt;
&lt;p&gt;These instructions will get you a copy of the project up and running on your local machine for development and testing purposes&lt;/p&gt;
&lt;h3&gt;
Setup Database&lt;/h3&gt;
&lt;p&gt;The bot uses &lt;a href="https://cloud.google.com/datastore" rel="nofollow"&gt;Datastore&lt;/a&gt; on Google Cloud Platform (GCP). Create a new project on GCP and enabble Datastore in the project. Install the &lt;a href="https://cloud.google.com/sdk/" rel="nofollow"&gt;gcloud CLI&lt;/a&gt; and run &lt;code&gt;gcloud init&lt;/code&gt; to initialise it with your…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/zeshuaro/telegram-pdf-bot"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I built it
&lt;/h2&gt;

&lt;p&gt;I built it with Python along with some Python packages for manipulating PDF files. I also used Docker and Travis CI to deploy and host the bot on Heroku. And lastly, I used Datastore on Google Cloud Platform to store the bot usage statistics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Thoughts / Feelings / Stories
&lt;/h2&gt;

&lt;p&gt;This was an interesting project as I have been receiving feedback from users to either fix bugs or implement new features. The bot has over 10,000 users and has processed over 65,000 tasks. Last year, one of the users also offered to help translate the bot into Italian. With the help of the users, the bot now supports 11 languages.&lt;/p&gt;

</description>
      <category>octograd2020</category>
    </item>
  </channel>
</rss>
