<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Automation on Asadbek Kurbonov</title><link>/tags/automation/</link><description>Recent content in Automation on Asadbek Kurbonov</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 21 Nov 2025 23:42:51 +0100</lastBuildDate><atom:link href="/tags/automation/index.xml" rel="self" type="application/rss+xml"/><item><title>Converting Wide Excel Tables to Single-Page PDFs with LibreOffice</title><link>/posts/convert-to-pdf-with-libreoffice/</link><pubDate>Fri, 21 Nov 2025 23:42:51 +0100</pubDate><guid>/posts/convert-to-pdf-with-libreoffice/</guid><description>&lt;h2 id="the-problem">The Problem&lt;/h2>
&lt;p>While working on a freelance project, I needed to generate PDF reports from Excel files. The challenge? The Excel files were wide and long. Here we see a sample Excel file around 15 columns containing employee data like ID, name, email, department, job title, hire date, salary, and more.&lt;/p>
&lt;p>I used LibreOffice&amp;rsquo;s CLI utility &lt;code>convert-to&lt;/code> in headless mode to convert the files. The conversion worked, but the result was unusable:&lt;/p></description></item><item><title>Automating Business Reports with Google Apps Script and Telegram</title><link>/posts/apps-script/</link><pubDate>Tue, 22 Jul 2025 22:39:19 +0500</pubDate><guid>/posts/apps-script/</guid><description>&lt;p>Google Apps Script is easy to dismiss as a toy. Over two freelance projects it turned out to be a genuinely capable serverless platform for automation work built around Google Sheets and Telegram. This post covers the second of those projects — a reporting system for a US-market logistics business — and how I got there.&lt;/p>
&lt;h2 id="first-encounter">First encounter&lt;/h2>
&lt;p>I came across Apps Script on an earlier freelance job. A consulting firm needed a Telegram bot that generated templated Word contracts. They had started the work themselves in Apps Script but hadn&amp;rsquo;t finished it, so I picked it up and rebuilt the bot in Python with &lt;a href="https://docs.aiogram.dev/">aiogram&lt;/a>, rendering &lt;code>.docx&lt;/code> files from templates using &lt;a href="https://docxtpl.readthedocs.io/">docxtpl&lt;/a> and passing files around as base64. Apps Script was only incidental to that project, but it was my first look at the platform.&lt;/p></description></item></channel></rss>