{"id":508,"date":"2026-09-26T19:15:00","date_gmt":"2026-09-26T17:15:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/?p=508"},"modified":"2026-09-25T10:49:18","modified_gmt":"2026-09-25T08:49:18","slug":"zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/","title":{"rendered":"Zautomatyzowane raportowanie korporacyjne: Generowanie PDF z Pythonem i OpenAI API"},"content":{"rendered":"\r\n<p class=\"wp-block-paragraph\">R\u0119czne tworzenie tygodniowych lub miesi\u0119cznych raport\u00f3w biznesowych poch\u0142ania znaczne zasoby administracyjne i jest podatne na b\u0142\u0119dy ludzkie. Po\u0142\u0105czenie mo\u017cliwo\u015bci przetwarzania danych j\u0119zyka Python z API OpenAI umo\u017cliwia stworzenie w pe\u0142ni zautomatyzowanych, inteligentnych raport\u00f3w w formacie PDF. Surowe dane z baz lub plik\u00f3w CSV s\u0105 przekszta\u0142cane w ustrukturyzowane kluczowe wska\u017aniki efektywno\u015bci (KPI), podczas gdy du\u017cy model j\u0119zykowy (LLM) formu\u0142uje precyzyjne, analityczne podsumowanie mened\u017cerskie. Zautomatyzowany potok gwarantuje sp\u00f3jne i terminowe dostarczanie raport\u00f3w.<\/p>\r\n\r\n\r\n\r\n<figure class=\"lw-diagram\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-pl.png\" width=\"1120\" height=\"348\" alt=\"Diagram do artyku\u0142u: Agregacja danych, Inteligencja AI, Generowanie dokument\u00f3w \u2026\">\n<figcaption>Przebieg z artyku\u0142u w 6 krokach: Agregacja danych, Inteligencja AI, Generowanie dokument\u00f3w, Zadania Cron \u2026.<\/figcaption>\n<\/figure>\r\n\n\n\r\n<h2 class=\"wp-block-heading\">1. Architektura rozwi\u0105zania: Zautomatyzowany potok raportowania<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Profesjonalny system automatycznego raportowania opiera si\u0119 na trzystopniowej architekturze technicznej:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>Agregacja danych (Pandas):<\/strong> Surowe metryki s\u0105 pobierane z system\u00f3w \u017ar\u00f3d\u0142owych, czyszczone i agregowane do g\u0142\u00f3wnych wska\u017anik\u00f3w KPI.<\/li>\r\n<li><strong>Inteligencja AI (OpenAI API):<\/strong> Zagregowane metryki s\u0105 przekazywane do modelu LLM (np. <code>gpt-4o<\/code>) poprzez rygorystyczn\u0105 struktur\u0119 monitu w celu wygenerowania czytelnego, analitycznego podsumowania dla zarz\u0105du.<\/li>\r\n<li><strong>Generowanie dokument\u00f3w (FPDF \/ ReportLab):<\/strong> Dane liczbowe oraz tekst wygenerowany przez AI s\u0105 kompilowane i renderowane w sformatowany dokument PDF zgodny z identyfikacj\u0105 wizualn\u0105 firmy.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\n<h2 class=\"wp-block-heading\">2. Wdro\u017cenie w j\u0119zyku Python krok po kroku<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">W celu skonfigurowania potoku raportowania wymagana jest instalacja odpowiednich bibliotek (<code>pandas<\/code>, <code>openai<\/code>, <code>fpdf<\/code>). Poni\u017cszy skrypt w j\u0119zyku Python demonstruje pe\u0142ny proces od pobrania danych po ko\u0144cowy zapis pliku PDF:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code class=\"language-python\">import pandas as pd\nfrom openai import OpenAI\nfrom fpdf import FPDF\nfrom datetime import datetime\n\n# 1. Agregacja danych za pomoc\u0105 Pandas\n# W \u015brodowisku produkcyjnym dane s\u0105 zazwyczaj pobierane z SQL lub hurtowni danych\ndata = {'Metric': ['Przychody', 'Nowe Leady', 'Wska\u017anik Rezygnacji'], 'Value': [145000, 850, '1.2%']}\ndf = pd.DataFrame(data)\n\nprzychody_val = df.loc[df['Metric'] == 'Przychody', 'Value'].values[0]\nleady_val = df.loc[df['Metric'] == 'Nowe Leady', 'Value'].values[0]\n\n# 2. Generowanie podsumowania mened\u017cerskiego AI\nclient = OpenAI()  # klucz jest odczytywany ze zmiennej \u015brodowiskowej OPENAI_API_KEY\n\nprompt = f\"\"\"\nDzia\u0142aj jako starszy analityk biznesowy. Napisz zwi\u0119z\u0142e podsumowanie wykonawcze (maks. 3 zdania) \nna podstawie poni\u017cszych tygodniowych KPI. Oce\u0144 wyniki w spos\u00f3b neutralny.\nPrzychody: {przychody_val} PLN\nNowe Leady: {leady_val}\nWska\u017anik Rezygnacji: 1.2%\n\"\"\"\n\nresponse = client.chat.completions.create(\n    model=\"gpt-4o\",\n    messages=[{\"role\": \"user\", \"content\": prompt}]\n)\nai_summary = response.choices[0].message.content\n\n# 3. Generowanie dokumentu PDF\npdf = FPDF()\npdf.add_page()\npdf.set_font(\"Arial\", 'B', 16)\n\n# Nag\u0142\u00f3wek dokumentu\ncurrent_date = datetime.now().strftime(\"%Y-%m-%d\")\npdf.cell(200, 10, txt=f\"Zautomatyzowany Raport Tygodniowy - {current_date}\", ln=True, align='C')\npdf.ln(10)\n\n# Wstawianie wska\u017anik\u00f3w KPI\npdf.set_font(\"Arial\", 'B', 12)\npdf.cell(200, 10, txt=\"Kluczowe wska\u017aniki efektywno\u015bci (KPI):\", ln=True)\npdf.set_font(\"Arial\", '', 12)\nfor index, row in df.iterrows():\n    pdf.cell(200, 10, txt=f\"- {row['Metric']}: {row['Value']}\", ln=True)\npdf.ln(10)\n\n# Wstawianie podsumowania AI\npdf.set_font(\"Arial\", 'B', 12)\npdf.cell(200, 10, txt=\"Podsumowanie Mened\u017cerskie (Generowane przez AI):\", ln=True)\npdf.set_font(\"Arial\", '', 12)\npdf.multi_cell(0, 10, txt=ai_summary)\n\n# Eksport pliku\npdf.output(\"Automated_Weekly_Report.pdf\")<\/code><\/pre>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">3. Automatyzacja harmonogramu krok po kroku<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Gdy skrypt dzia\u0142a bezb\u0142\u0119dnie, r\u0119czne wykonywanie staje si\u0119 zb\u0119dne. Potok da si\u0119 w pe\u0142ni zautomatyzowa\u0107 przy u\u017cyciu systemowych harmonogram\u00f3w zada\u0144:<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li><strong>Zadania Cron (Linux\/macOS):<\/strong> Dodanie wpisu poprzez <code>crontab -e<\/code> umo\u017cliwia wykonanie skryptu w ka\u017cdy poniedzia\u0142ek o godzinie 08:00 (np. <code>0 8 * * 1 \/usr\/bin\/python3 \/sciezka\/do\/skryptu.py<\/code>).<\/li>\r\n<li><strong>Wykonanie w chmurze (Cloud Execution):<\/strong> W \u015brodowiskach korporacyjnych skrypt mo\u017ce zosta\u0107 wdro\u017cony jako Google Cloud Function lub AWS Lambda i uruchamiany przez Cloud Scheduler.<\/li>\r\n<li><strong>Dystrybucja e-mail:<\/strong> Rozszerzenie skryptu Python o bibliotek\u0119 <code>smtplib<\/code> pozwala na automatyczne do\u0142\u0105czanie wygenerowanego pliku PDF i wysy\u0142anie go na zdefiniowan\u0105 list\u0119 mailingow\u0105 zarz\u0105du.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">4. Podsumowanie i warto\u015b\u0107 architektoniczna<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Co da si\u0119 osi\u0105gn\u0105\u0107 dzi\u0119ki temu poradnikowi:<\/strong> Pomy\u015blne wdro\u017cenie zautomatyzowanego potoku raportowania, kt\u00f3ry dynamicznie agreguje surowe metryki bazodanowe, wzbogaca je o podsumowanie mened\u017cerskie wygenerowane przez sztuczn\u0105 inteligencj\u0119 za po\u015brednictwem API OpenAI i generuje gotowy dokument PDF.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Wynikaj\u0105ca z tego warto\u015b\u0107:<\/strong> Wielogodzinna, r\u0119czna praca z arkuszami kalkulacyjnymi zostaje trwale wyeliminowana. Osoby decyzyjne natychmiast po zako\u0144czeniu cyklu raportowania otrzymuj\u0105 wysoce precyzyjne, sp\u00f3jnie sformatowane analizy. Przeniesienie obci\u0105\u017cenia z r\u0119cznego zestawiania danych na zautomatyzowan\u0105 ewaluacj\u0119 AI pozwala na uwolnienie zasob\u00f3w przedsi\u0119biorstwa do realizacji krytycznych inicjatyw strategicznych.<\/p>\r\n\n\n<div class=\"lw-faq\">\n<h2>Pytania i odpowiedzi<\/h2>\n\n<h3>Dlaczego generowanie PDF przerywa si\u0119, gdy tylko podsumowanie zawiera polskie litery albo znak euro?<\/h3>\n<p>Bo wbudowane czcionki FPDF, takie jak Arial, znaj\u0105 tylko 8-bitowy zestaw znak\u00f3w, w zasadzie Latin-1. Niemieckie umlauty si\u0119 w nim mieszcz\u0105, ale znak euro, litery takie jak \u0142, \u0105 czy \u0119, typograficzne cudzys\u0142owy i p\u00f3\u0142pauza ju\u017c nie. W polskiej wersji skryptu problem jest niemal pewny: monit jest po polsku, wi\u0119c model pisze podsumowanie z polskimi znakami, a zale\u017cnie od wersji biblioteki przebieg ko\u0144czy si\u0119 wtedy b\u0142\u0119dem kodowania.<\/p>\n<p>Rozwi\u0105zaniem jest czcionka TrueType obs\u0142uguj\u0105ca Unicode, na przyk\u0142ad DejaVu Sans, do\u0142\u0105czona przez <code>add_font()<\/code> i ustawiona zamiast Arial. W utrzymywanej bibliotece fpdf2 jest to proste; starszy pakiet <code>fpdf<\/code> w PyPI nie jest ju\u017c rozwijany. Oba importuje si\u0119 przez <code>from fpdf import FPDF<\/code>, dlatego w skrypcie r\u00f3\u017cnicy nie wida\u0107.<\/p>\n\n<h3>Jak nie dopu\u015bci\u0107, by podsumowanie podawa\u0142o liczby, kt\u00f3rych nie ma w danych?<\/h3>\n<p>Ca\u0142kowicie wykluczy\u0107 si\u0119 tego nie da, da si\u0119 to jedynie wychwyci\u0107. Model j\u0119zykowy formu\u0142uje tekst, a nie liczy niezawodnie, i zdanie w rodzaju \u201ewzrost o 12% wzgl\u0119dem poprzedniego tygodnia\u201d mo\u017ce si\u0119 pojawi\u0107, cho\u0107 \u017cadnej warto\u015bci por\u00f3wnawczej nie przekazano. Ryzyko zmniejszaj\u0105 trzy \u015brodki:<\/p>\n<ol>\n<li>Przekazywanie wy\u0142\u0105cznie gotowych warto\u015bci. Zmiany wobec poprzedniego tygodnia oblicza Pandas i wpisuje je do monitu; model ma je opisa\u0107, a nie wyprowadza\u0107.<\/li>\n<li>Do\u0142\u0105czanie warto\u015bci por\u00f3wnawczych. Skrypt przekazuje tylko warto\u015bci jednego tygodnia; bez poprzedniego okresu albo celu ocena nie ma podstaw, a to, co model o tym napisze, jest zgadywaniem.<\/li>\n<li>Sprawdzenie odpowiedzi, zanim trafi do PDF. Kr\u00f3tkie por\u00f3wnanie wyci\u0105ga z tekstu wszystkie liczby i zestawia je z przekazanymi; je\u015bli kt\u00f3ra\u015b si\u0119 tam nie pojawia, raport wychodzi ze sta\u0142ym fragmentem tekstu zamiast podsumowania albo zostaje wstrzymany.<\/li>\n<\/ol>\n<p>Trzeci krok jest najwa\u017cniejszy, bo jako jedyny nie zale\u017cy od tego, czy model trzyma si\u0119 polece\u0144.<\/p>\n<\/div>\n\n<div class=\"lw-quellen\">\n<h2>\u0179r\u00f3d\u0142a<\/h2>\n<ul>\n<li><a href=\"https:\/\/developers.openai.com\/api\/reference\/overview\" target=\"_blank\" rel=\"noopener noreferrer\">OpenAI API reference<\/a><\/li>\n<\/ul>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Techniczny przewodnik po budowie potoku zautomatyzowanego raportowania PDF przy u\u017cyciu Pythona, Pandas i API OpenAI do podsumowa\u0144 mened\u017cerskich.<\/p>\n","protected":false},"author":1,"featured_media":14060,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[92640],"tags":[92343,92061,92346,92349,92238],"class_list":["post-508","post","type-post","status-publish","format-standard","hentry","category-tutorials-pl-cloud-ai-pl","tag-artificial-intelligence-pl","tag-automation-pl","tag-llm-pl","tag-python-pl","tag-tutorial-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Zautomatyzowane raportowanie korporacyjne: Generowanie PDF z Pythonem i OpenAI API | Lukas Wojcik<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Zautomatyzowane raportowanie korporacyjne: Generowanie PDF z Pythonem i OpenAI API | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Techniczny przewodnik po budowie potoku zautomatyzowanego raportowania PDF przy u\u017cyciu Pythona, Pandas i API OpenAI do podsumowa\u0144 mened\u017cerskich.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-26T17:15:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-508-zautomatyzowane-raportowanie-korpora-g.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Zautomatyzowane raportowanie korporacyjne: Generowanie PDF z Pythonem i OpenAI API\",\"datePublished\":\"2026-09-26T17:15:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\\\/\"},\"wordCount\":766,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-508-zautomatyzowane-raportowanie-korpora-g.png\",\"keywords\":[\"Artificial Intelligence\",\"Automation\",\"LLM\",\"Python\",\"Tutorial\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\\\/\",\"name\":\"Zautomatyzowane raportowanie korporacyjne: Generowanie PDF z Pythonem i OpenAI API | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-508-zautomatyzowane-raportowanie-korpora-g.png\",\"datePublished\":\"2026-09-26T17:15:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-508-zautomatyzowane-raportowanie-korpora-g.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-508-zautomatyzowane-raportowanie-korpora-g.png\",\"width\":1200,\"height\":630,\"caption\":\"Zautomatyzowane raportowanie korporacyjne: Generowanie PDF z Pythonem i OpenAI API\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/cloud-ai-pl\\\/tutorials-pl-cloud-ai-pl\\\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Zautomatyzowane raportowanie korporacyjne: Generowanie PDF z Pythonem i OpenAI API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Zautomatyzowane raportowanie korporacyjne: Generowanie PDF z Pythonem i OpenAI API | Lukas Wojcik","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/","og_locale":"en_US","og_type":"article","og_title":"Zautomatyzowane raportowanie korporacyjne: Generowanie PDF z Pythonem i OpenAI API | Lukas Wojcik","og_description":"Techniczny przewodnik po budowie potoku zautomatyzowanego raportowania PDF przy u\u017cyciu Pythona, Pandas i API OpenAI do podsumowa\u0144 mened\u017cerskich.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-26T17:15:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-508-zautomatyzowane-raportowanie-korpora-g.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Zautomatyzowane raportowanie korporacyjne: Generowanie PDF z Pythonem i OpenAI API","datePublished":"2026-09-26T17:15:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/"},"wordCount":766,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-508-zautomatyzowane-raportowanie-korpora-g.png","keywords":["Artificial Intelligence","Automation","LLM","Python","Tutorial"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/","name":"Zautomatyzowane raportowanie korporacyjne: Generowanie PDF z Pythonem i OpenAI API | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-508-zautomatyzowane-raportowanie-korpora-g.png","datePublished":"2026-09-26T17:15:00+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-508-zautomatyzowane-raportowanie-korpora-g.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-508-zautomatyzowane-raportowanie-korpora-g.png","width":1200,"height":630,"caption":"Zautomatyzowane raportowanie korporacyjne: Generowanie PDF z Pythonem i OpenAI API"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/cloud-ai-pl\/tutorials-pl-cloud-ai-pl\/zautomatyzowane-raportowanie-korporacyjne-generowanie-pdf-z-pythonem\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Zautomatyzowane raportowanie korporacyjne: Generowanie PDF z Pythonem i OpenAI API"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/508","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=508"}],"version-history":[{"count":8,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/508\/revisions"}],"predecessor-version":[{"id":20636,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/508\/revisions\/20636"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/14060"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}