Spustenie ChatGPT je tou "naj" udalosťou poslednej doby. Najskôr začnem s tým, čo ChatGPT je. Je to konverzačný AI model, ktorý bol natrénovaný na datasete, o ktorom nikto nič nevie (čo nie je vlastne ani divné, lebo OpenAI vlastní Elon Musk). Je dostupný po prihlásení na https://chat.openai.com/ a dokáže veci, nad ktorými budete krútiť hlavou. Vie rozumieť kódu, vie "spúšťať" kód, vie skladať básne, vytvárať texty v štýle autora. A vie to aj v iných jazykoch ako angličtine, teda aj v slovenčine a češtine.
Generovanie PDF z HTML je v .NET otrava. Najmä ak wkhtmltopdf je už v podstate mŕtvy projekt a nezvláda ani troška modernejší JavaScript s lambdou. Tu sú momentálne alternatívy
Podla toho clanku alternativa je dalsi mrtvy projekt, alebo nejaky malo znamy wrapper na headless chrome. No nic moc.
Ja som pouzil
na HTML to PDF playwright (oficialny microsoft package na ovladanie browserov, nielen chromium)
na DocX to PDF cez Syncfusion kniznice.
DocX ma tu vyhodu, ze je k tomu pekny designer (Word ) a podporuje nejaky databinding cez MailMerge, co je wordovska feature. Syncfusion kniznica sa da potom v pripade potreby lahko nahradit za inu kniznicu.
DocX to PDF je pomerne rychle, za mna idealne riesenie. Nieje to pixel perfect, ale ovela lepsie ako HTML to PDF.
Pre nas cesta cez osve designera nepripada do uvahy. Dve sablony by sa nam tazko udrziavali, tak sme viazany na ten HTML. Momentalne to tak stale nejak lepime, aby to slo cez wkhtmltopdf, ale urcite rozmyslame na headless browser. Pre nas nie je problem to urobit cez malu virtualku ako sluzbu. Ale potrebujeme aj custom hlavicky, paticky. Zatial najlepsi kandidat vyzera toto:
Ja tiez nemam dva templaty na jeden report.
Najprv som robil html, ale potreboval som nieco lepsie, tak som skusil ten DocX a som spokojny, lebo je to rychlejsie, dava to viac moznosti a je k tomu designer, cize si to vie user spravovat aj sam. Nevyhoda je source control - nevidis diffy.
Custom header/footer je samozrejme zaklad pri kazdom reporting systeme, ale samotne headless browsre to podporuju out of the box.
Osobne by som do nejakeho wrappera na pupeteerom/playwrightom nesiel, ale pouzil priamo tie kniznice.
Ten pupeteer-report-csharp urobi len to, ze z tvojej stranky vyreze header a footer a nastavi ho do PpfOptions.HeaderTemplate, resp PpfOptions.FooterTemplate a to nestoji za 3rd party dependency.
Pre predstavu, tu je moj narychlo zbuchany kod,ktory funguje. Musel som sa popasovat s tym, ze vysku footra treba nastavit manualne:
Hej skusal som, ale obcas sa vyhovara (no nie na programatorske otazky).
Tak zatial sa o pracu bat nemusim, lebo stale treba “experta” na to aby tej UI ponadaval. No som si isty, ze to bude game changer a nie len v programovani.
A dost by ma zaujimalo, ako to funguje a aj na akom datasete sa ucila, ChatGPT to sam o sebe prezradit nechce
“porozpravat sa s chatbotom, aby urobil kod/program podla mojich predstav” - nieje prave toto programovanie, len v inom jazyku?‘’
Okrem toho, ak sa programovanie vdaka AI vyrazne ulahci, prace pribudne, nie naopak. Jedoducho sa bude programovat ovela viac, ten dopyt je snad nevycerpatelny.