Zephyrnet-logo

Geautomatiseerde PDF-documenten genereren met Python

Datum:

Geautomatiseerde PDF-documenten genereren met Python

Ontdek hoe u automatisering kunt gebruiken om moeiteloos schitterende PDF-documenten te maken.


By Mohammed Khorasani, Hybride datawetenschapper/ingenieur



Foto door austin distel on Unsplash

 

Wanneer was de laatste keer dat u worstelde met een PDF-document? U hoeft waarschijnlijk niet al te ver terug te kijken om het antwoord op die vraag te vinden. We hebben dagelijks te maken met een groot aantal documenten in ons leven en een overweldigend groot aantal daarvan zijn inderdaad PDF-documenten. Het is redelijk om te beweren dat veel van deze documenten vervelend repetitief en pijnlijk pijnlijk zijn om te formuleren. Het wordt tijd dat we overwegen de kracht van automatisering met Python te gebruiken om het vervelende te mechaniseren, zodat we onze kostbare tijd kunnen besteden aan meer dringende taken in ons leven.

Let wel, het is absoluut niet nodig om technisch onderlegd te zijn en wat we hier gaan doen, zou triviaal genoeg moeten zijn dat onze innerlijke onhandige leken het in korte tijd kunnen aanpakken. Na het lezen van deze tutorial leert u hoe u automatisch PDF-documenten kunt genereren met uw eigen gegevens, grafieken en afbeeldingen, allemaal gebundeld met een oogverblindende look en structuur.

In deze tutorial zullen we specifiek de volgende acties automatiseren:

  • PDF-documenten maken
  • Invoegen afbeeldingen
  • Tekst en cijfers invoegen
  • Gegevens visualiseren

PDF-documenten maken

 
Voor deze zelfstudie gebruiken we FPDF wat een van de meest veelzijdige en intuïtieve pakketten is die wordt gebruikt om PDF's in Python te genereren. Voordat we verder gaan, start u de Anaconda-prompt of een andere Python IDE naar keuze en installeert u FPDF:

pip install FPDF


Importeer vervolgens de stapel bibliotheken die we zullen gebruiken om ons document weer te geven:

import numpy as np
import pandas as pd
from fpdf import FPDF
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.ticker import ScalarFormatter


Ga vervolgens verder met het maken van de eerste pagina van uw PDF-document en stel het lettertype met de grootte en kleur in:

pdf = FPDF(orientation = 'P', unit = 'mm', format = 'A4')
pdf.add_page()
pdf.set_font('helvetica', 'bold', 10)
pdf.set_text_color(255, 255, 255)


U kunt het lettertype echter op elk gewenst moment wijzigen als u verschillende lettertypen nodig heeft.

Afbeeldingen invoegen

 
De volgende logische stap zou zijn om ons document een achtergrondafbeelding te geven die de structuur voor de rest van onze pagina bepaalt. Voor deze tutorial heb ik Microsoft PowerPoint gebruikt om de opmaak voor mijn achtergrondafbeelding weer te geven. Ik gebruikte gewoon tekstvakken en andere afbeeldingen om het gewenste formaat te creëren en toen ik klaar was, groepeerde ik alles door alle elementen te selecteren en op Ctrl-G te drukken. Ten slotte heb ik de gegroepeerde elementen als een PNG-afbeelding opgeslagen door er met de rechtermuisknop op te klikken en 'opslaan als afbeelding' te selecteren.



Achtergrond afbeelding. Afbeelding door auteur.

 

Zoals u hierboven kunt zien, bepaalt de achtergrondafbeelding de structuur voor onze pagina en bevat deze ruimte voor grafieken, figuren, tekst en cijfers die later zullen worden gegenereerd. Het specifieke PowerPoint-bestand dat is gebruikt om deze afbeelding te genereren, kan worden gedownload hier.

Voeg vervolgens de achtergrondafbeelding in uw PDF-document in en configureer de positie met het volgende:

pdf.image('C:/Users/.../image.png', x = 0, y = 0, w = 210, h = 297)


Houd er rekening mee dat u zoveel afbeeldingen kunt invoegen als u wilt door de hierboven getoonde methode uit te breiden.

Tekst en cijfers invoegen

 
Het toevoegen van tekst en cijfers kan op twee manieren. We kunnen ofwel de exacte locatie specificeren waar we de tekst willen plaatsen:

pdf.text(x, y, txt)


Of we kunnen een cel maken en de tekst erin plaatsen. Deze methode is meer geschikt voor het uitlijnen of centreren van variabele of dynamische tekst:

pdf.set_xy(x, y)
pdf.cell(w, h, txt, border, align, fill) 


Houd er rekening mee dat in de bovenstaande methoden:

  • 'x' en 'y' verwijzen naar de opgegeven locatie op onze pagina
  • 'w' en 'h' verwijzen naar de afmetingen van onze cel
  • 'txt' is de tekenreeks of het nummer dat moet worden weergegeven
  • 'rand' geeft aan of er een lijn om de cel moet worden getrokken (0: nee, 1: ja of L: links, T: boven, R: rechts, B: onder)
  • 'align' geeft de uitlijning van de tekst aan (L: links, C: midden, R: rechts)
  • 'fill' geeft aan of de celachtergrond moet worden gevuld of niet (True, False).

Gegevens visualiseren

 
In dit deel gaan we een staafdiagram maken dat een tijdreeksgegevensset weergeeft van onze krediet-, debet- en saldowaarden versus de tijd. Hiervoor zullen we Matplotlib gebruiken om onze cijfers als zodanig weer te geven:

In het bovenstaande fragment zijn credit, debet en saldo 2-dimensionale lijsten met waarden voor respectievelijk datum en transactiebedrag. Nadat de grafiek is gegenereerd en opgeslagen, kan deze vervolgens in ons PDF-document worden ingevoegd met behulp van de methode die in de vorige secties is weergegeven.

Op dezelfde manier kunnen we ringdiagrammen genereren met het volgende codefragment:

En als u eenmaal klaar bent, kunt u het afronden door het geautomatiseerde PDF-document als zodanig te genereren:

pdf.output('Automated PDF Report.pdf')


Conclusie

 
En daar heb je het, je eigen automatisch gegenereerde PDF-rapport! Nu heb je geleerd hoe je PDF-documenten kunt maken, tekst en afbeeldingen erin kunt invoegen en je hebt ook geleerd hoe je grafieken en figuren kunt genereren en insluiten. Maar u bent zeker niet daartoe beperkt, u kunt deze technieken zelfs uitbreiden om andere afbeeldingen op te nemen in documenten met meerdere pagina's. De sky is echt de limit.



Afbeelding door auteur.

 

Als je meer wilt weten over Python en datavisualisatie, kijk dan eens naar de volgende (affiliate gelinkte) cursussen: Python voor iedereen-specialisatie en Gegevensvisualisatie met Python. Voel je vrij om meer van mijn tutorials te verkennen hier.

 
Bio: Mohammed Khorasani is een hybride van een datawetenschapper en een ingenieur. Logistiek. openhartig. Realistisch. Dogma één voor één afleren. Lees meer van Mohammeds geschriften.

ORIGINELE. Met toestemming opnieuw gepost.

Zie ook:

Coinsmart. Beste Bitcoin-beurs in Europa
Bron: https://www.kdnuggets.com/2021/06/generate-automated-pdf-documents-python.html

spot_img

Laatste intelligentie

spot_img