feat: update PDF with Aperol Spritz
Some checks failed
Build and Deploy / build (push) Has been cancelled
Some checks failed
Build and Deploy / build (push) Has been cancelled
This commit is contained in:
@@ -42,7 +42,7 @@ endobj
|
|||||||
endobj
|
endobj
|
||||||
8 0 obj
|
8 0 obj
|
||||||
<<
|
<<
|
||||||
/Author (\(anonymous\)) /CreationDate (D:20260920223817+02'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260920223817+02'00') /Producer (ReportLab PDF Library - \(opensource\))
|
/Author (\(anonymous\)) /CreationDate (D:20260920234637+02'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260920234637+02'00') /Producer (ReportLab PDF Library - \(opensource\))
|
||||||
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
|
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
|
||||||
>>
|
>>
|
||||||
endobj
|
endobj
|
||||||
@@ -53,10 +53,10 @@ endobj
|
|||||||
endobj
|
endobj
|
||||||
10 0 obj
|
10 0 obj
|
||||||
<<
|
<<
|
||||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1640
|
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1736
|
||||||
>>
|
>>
|
||||||
stream
|
stream
|
||||||
GauHL>Bf'b&:WeD9HUj$m/bbKpsuoZ82a2Jkm"_G:(Ju^"=P*K/">ZH^V1q&Cd[QBB$!AqD)B\"^2InFJq\-3r?!ZnNX,(N)$S/j0Eiq^JADum#-I>GRS2A!E*I8kXs8a^[l=nR$+6`#:tWJH=UWiWKc438M(0@H9EfKr!m3LmQt>=Q@"P/$CU>+1KYcKN8SpHU%;psV&t^h(QUeN;*oq?g9cs9;h/0j8bqJjpgT'bC>NONGG-AM^jm0#UTN6docaN*u`+E>YZ@/TM17lD4C*^2dWD"Ik?m7HJ#9&3E'RD5PRJiPe>Eb]4/*r8/go]4EA]&<L132"/YajF)bmrCGAtpm>r(m7G[>;jPGB'O@k:kKl_PiI'E-mV_&$77L]EHtUO)Q'\+%#1(`mquK*.lJp)tW=u/@uHY]PTs6lMqO@'mA_C^1W9L]\1;OD6lOg%FsX!2f*mOrJU9n7t\QpHZ4"HE]H+j\E\!OYB(,1EJNM4W#5@<d,fW[W,(LaZQ+A'Y^>3^*%NpK=gUm0>fXrGIXp`a-l_PBIGA/pgKkTi1@%iLL5LOp^6g+\q4F6Eqk$k,Ub_ck#EE\Tg@-\c/:n@*1FGYi]i%LkU1b05dghnKBP'A09&80ff"P24e'iqK1\ae(hZmR>f5>JZ.Yb=V,qck>`etc.rUE"se*b,8]0\`]=U1bJD2BUD_G>3U<Ji#s&K57;i_[H`7\7N3#.k#QR58M4@ePeN)oRjWn"KG\Lq*qH,frVDF#n)Pi#@R>:5M&mX3hl:5K.2F-tbi1b$<O"^D\k$Xf-9iJWW8&3o_?S7tkTMa^^PlKOM`e#LNq'T[P+S#7(r[K&f\'nI)@%pH?A\WZgOXic)M5(1@7k"@h@3$^#%CX>*;2?JUrfZ5lR9HbGlhn,\Z;qZ$/0UuQ$JB%dns=h86DL)?Jc<,!5``\+etU`>+)6/Z92$IB_^\iFmJ>(6`DQ1Q6Y,Ru?8Xaul;l"qT.QoN1ZGMli-;]VqnT)K(=qUdq?<Z"A27aZt[HH.V+Orr]#-LfRHE]DH4KTW5U?OBI+rCTYT5PP&"dTBkJ1\0+=G(aufP4PLn6jU^o<9&8U,Vhp;h@pa!*,.:r(52&e-&3Y`+jaSp.!gPVQ&b%2X7^5;iV#RIfb@B/+daaT%e>"#cDtLNEhp?"5XL;qU_k,1G^1Cj@b<)u>hR@/b9@4%X^j9-cFL#1VclNIkPR.pUUGk+)7Gl+c)C-e6JuK6UDC+`L$MGT$H)Sbe`G&RS#`mMhSo!El[>a??H)'?qbdIM4+u47<I0Bocmr*4[I')IBW\V4<GJMg/ti_W!e3ngj=EcUNO#ikkt^2)+]VHSlV+4:7tftG$EkZ>D63$[@oLntm=fj9C(R1g0*J,/9Su2S4%]1c5fV*XkdN8Y<)@C#MfV?MlM1ZOlVkH\b5a'"Yq%=:YA=+LT^%$_Pf6kYGArsc,$\"l$hO6BWU&R;8l:sqLeW<,0h$)s'L6b/Np=otnU/2,_8R$R*:?m'@Od"!]%WV$L6FXGTDXjZ+cTp-AWXdIUuDLYbgj$ZSm[s'8JE[MBjP(+47h+1VuZ.;,70YV8RMb`_@]Og@rnHt@kP8tI_;?$I9OS6jO$nBh\3Z8YrS[if0ai8+calhq(F=5r<Had[]K~>endstream
|
GauHL>Bed\&:WeDbW]hRh#gjH@bL)e8P#:Ed^4RBcfsE-J,gBqB4\D0c*-#e0ZFZFfp"%@pnEm_oR1eC7)?\m[Ju#'J?p<pIS#)Gk`(-#,+s,fSR1^P)U0R69"6B2#>Y]di[slAAjRNlOqb@.H;_X8BqY_9S>-Dqbc5(!.%lM4T/eO4pI<fX2d5P;Hg#m-dA[UWS_c`+46#9pkGJ4)lTd(H<;56fd+m-/e,50^Wi6??4B68`Y^P?!.UPqN!-Ki]geLjAi\E`"=hiHp3h4(Y@\C(81R16;_anK$$T&!E0m(9s=So56)kC?g/)6E'gah(Df]K#QQJA;s/>opeZNSn4Cind/s,"MZ2<&]"4e/MD-1b@aN4O6A%p.E]</YVV3OfQFKTn'9LnJOCX+lg0K$Mb!k#DdKDBXOT]7NpV!YNWiY'$k4mtb7oZ^(9rAqJ#Ab0MAPfQ[k]l`6*6hHpd6357\ml*[^5].;[;*5c2i1(Y9)CI8U4^$[Q$':jMkNl6t`gXki7Z!qaM60jcN?'5\]-b*AKC8\`X-p!@<[lGl-A]CQg#o*R"]GMm0q4F6DrS&M(1)9hO"%QEZFnhDaAjHO=eqqdgDo9-.:c&X$=TbhDG[`d<.G\*o<kf%&kN=3-:>jr3r%X!_[<-I7<&17uV/YXD0Uu.Amgc7H*]K_fg_9NES2<Lqgm30f$iHi^3m=g^m"C,(N(>GNW>K%Hg5eiR(][V2@E!.Pc-hCPI*tTdL;TgLgOk0$PL5i+Js^m*+C26t(Cjb;`hcuMVcbun%RT5U2[\n'&a15r$8L"p(tq[kqPt<1TNFV7$BZY(]D7%>-cQPAeTse,%eo3tXZ%B]-480XNt&IkYquQs"r<lKrEfs."V.RW2$r89jgo(!Wm@odTuoY'Q<[MrP%hQUqqGS9OsY(NmS&c<,6F[6jQ?S4R$@8,b`X2-^'Q5q<S6Ki6WbBFo-+[[,c3lWk<^`UG6q+blG_dEHYk)hN2X]d78F3%df5lP[SGsNB!nP6hD[*QMD/\[4NuA:e_$_lL5P#`Jeschq-jo.<t=l:8qP6:2s7!$,SZar;5qS%TH\l3>n!PV&?Pj8r1eA2K*;J/Va+lZRMWdA,>"pq?;\AmAPY[J,k/e&<]J.$N$53N**3"r`%3Ed@7K\[jU/:np0SI)g@WrSoghg?L*%S###ddU-F#jop1?":e3IN_.JVX6-8%@`0cko6/<&U2E#*''koP8YJdq.>KT/uC`O(3L60TLf60Q"UMY;hJlQRTP#^qHd0h^Yi&IsOW(6]f/[^=81.++`Ga1-h+f9cpd`j;"jm+`<](KE4dmbAN_Z`D1Ori]UY6_%NBDRCX<I_C/VF8t4up@=nuh1'p!K>9XbAFn1f"9JEGH/qVs-b0.9:iK:d&ZLC`3pU@VI&bGk\K`ccY'-Nd#s)m=.pZkY!:L8oMV;6F3gDl@:?tl('mX\.<VI)l<P-/]:f"-XX-=][TF,1me54n#Rb\q(\>Uu;5*uUJ..0Q_F%1QB[n_V-LLdRM!L@D/QRrQ"2?+(]e_A;jp"%ZO2X?e;QO;30fk@6_$b)m/'UKjqPLu.o\1$&C>ENF,Fkq=:e654topeS0.NO>1)N/.6dA7?9;^=U+-,2d4^dP4GK98aD.0Q$;-V6)1+u)nB<ZIDG*82GsD-0b&[HD(VfomTA'/$)BlPl08\N]W#oCGm%NQtHISs;f1EEg08lPl1#')$^;pEYkQQHOc\61&$2rZ49~>endstream
|
||||||
endobj
|
endobj
|
||||||
xref
|
xref
|
||||||
0 11
|
0 11
|
||||||
@@ -74,7 +74,7 @@ xref
|
|||||||
trailer
|
trailer
|
||||||
<<
|
<<
|
||||||
/ID
|
/ID
|
||||||
[<c74df38e59f13fa69b76e16abbe7b5c1><c74df38e59f13fa69b76e16abbe7b5c1>]
|
[<fc3f657d5b501a5dc50f1b0fcbc46799><fc3f657d5b501a5dc50f1b0fcbc46799>]
|
||||||
% ReportLab generated PDF document -- digest (opensource)
|
% ReportLab generated PDF document -- digest (opensource)
|
||||||
|
|
||||||
/Info 8 0 R
|
/Info 8 0 R
|
||||||
@@ -82,5 +82,5 @@ trailer
|
|||||||
/Size 11
|
/Size 11
|
||||||
>>
|
>>
|
||||||
startxref
|
startxref
|
||||||
2882
|
2978
|
||||||
%%EOF
|
%%EOF
|
||||||
|
|||||||
@@ -119,11 +119,12 @@ def generate_pdf(filename):
|
|||||||
|
|
||||||
cocktails = [
|
cocktails = [
|
||||||
("1. Moscow Mule", "<b>Zutaten:</b> Wodka, frischer Limettensaft, Ginger Beer, Minzzweig & Limettenspalte.<br/><b>Geschmack:</b> Scharf-würzig, erfrischend und spritzig."),
|
("1. Moscow Mule", "<b>Zutaten:</b> Wodka, frischer Limettensaft, Ginger Beer, Minzzweig & Limettenspalte.<br/><b>Geschmack:</b> Scharf-würzig, erfrischend und spritzig."),
|
||||||
("2. Gin & Tonic", "<b>Zutaten:</b> Klassischer Gin, Tonic Water, Limettenscheibe.<br/><b>Geschmack:</b> Der elegante Klassiker – herb, bitter und ohne Zuckerüberhang."),
|
("2. Aperol Spritz", "<b>Zutaten:</b> Aperol, Prosecco, Spritzer Soda, frische Orangenscheibe.<br/><b>Geschmack:</b> Fruchtig-bitter, spritzig und herrlich erfrischend."),
|
||||||
("3. Mojito", "<b>Zutaten:</b> Weißer Rum, frische Minzblätter, Zuckersirup, Limettensaft, Sprudelwasser.<br/><b>Geschmack:</b> Aromatisches Bar-Feeling mit frischer Minze."),
|
("3. Gin & Tonic", "<b>Zutaten:</b> Klassischer Gin, Tonic Water, Limettenscheibe.<br/><b>Geschmack:</b> Der elegante Klassiker – herb, bitter und ohne Zuckerüberhang."),
|
||||||
("4. Cuba Libre", "<b>Zutaten:</b> Weißer Rum, erfrischende Cola, frischer Limettensaft, Limette.<br/><b>Geschmack:</b> Der süße, vertraute Party-Dauerbrenner."),
|
("4. Mojito", "<b>Zutaten:</b> Weißer Rum, frische Minzblätter, Zuckersirup, Limettensaft, Sprudelwasser.<br/><b>Geschmack:</b> Aromatisches Bar-Feeling mit frischer Minze."),
|
||||||
("5. Vodka Cranberry", "<b>Zutaten:</b> Wodka, Cranberrysaft, Soda, frischer Limettensaft, Limettenscheibe.<br/><b>Geschmack:</b> Angenehm säuerlich-herb statt klebrig-süß."),
|
("5. Cuba Libre", "<b>Zutaten:</b> Weißer Rum, erfrischende Cola, frischer Limettensaft, Limette.<br/><b>Geschmack:</b> Der süße, vertraute Party-Dauerbrenner."),
|
||||||
("6. Skinny Bitch", "<b>Zutaten:</b> Wodka, spritziges Mineralwasser, viel frischer Limettensaft.<br/><b>Geschmack:</b> Der leichte, komplett zucker- und kalorienfreie Drink.")
|
("6. Vodka Cranberry", "<b>Zutaten:</b> Wodka, Cranberrysaft, Soda, frischer Limettensaft, Limettenscheibe.<br/><b>Geschmack:</b> Angenehm säuerlich-herb statt klebrig-süß."),
|
||||||
|
("7. Skinny Bitch", "<b>Zutaten:</b> Wodka, spritziges Mineralwasser, viel frischer Limettensaft.<br/><b>Geschmack:</b> Der leichte, komplett zucker- und kalorienfreie Drink.")
|
||||||
]
|
]
|
||||||
|
|
||||||
col_width = 87 * mm
|
col_width = 87 * mm
|
||||||
@@ -133,16 +134,19 @@ def generate_pdf(filename):
|
|||||||
Paragraph(cocktails[i][0], drink_title_style),
|
Paragraph(cocktails[i][0], drink_title_style),
|
||||||
Paragraph(cocktails[i][1], drink_text_style)
|
Paragraph(cocktails[i][1], drink_text_style)
|
||||||
]
|
]
|
||||||
cell_right = [
|
if i + 1 < len(cocktails):
|
||||||
Paragraph(cocktails[i+1][0], drink_title_style),
|
cell_right = [
|
||||||
Paragraph(cocktails[i+1][1], drink_text_style)
|
Paragraph(cocktails[i+1][0], drink_title_style),
|
||||||
]
|
Paragraph(cocktails[i+1][1], drink_text_style)
|
||||||
|
]
|
||||||
|
else:
|
||||||
|
cell_right = []
|
||||||
table_data.append([cell_left, cell_right])
|
table_data.append([cell_left, cell_right])
|
||||||
|
|
||||||
cocktail_table = Table(table_data, colWidths=[col_width, col_width])
|
cocktail_table = Table(table_data, colWidths=[col_width, col_width])
|
||||||
cocktail_table.setStyle(TableStyle([
|
cocktail_table.setStyle(TableStyle([
|
||||||
('VALIGN', (0,0), (-1,-1), 'TOP'),
|
('VALIGN', (0,0), (-1,-1), 'TOP'),
|
||||||
('BOTTOMPADDING', (0,0), (-1,-1), 8),
|
('BOTTOMPADDING', (0,0), (-1,-1), 6),
|
||||||
('RIGHTPADDING', (0,0), (0,-1), 6),
|
('RIGHTPADDING', (0,0), (0,-1), 6),
|
||||||
('LEFTPADDING', (1,0), (1,-1), 6),
|
('LEFTPADDING', (1,0), (1,-1), 6),
|
||||||
]))
|
]))
|
||||||
@@ -176,12 +180,14 @@ def generate_pdf(filename):
|
|||||||
]))
|
]))
|
||||||
story.append(mocktail_table)
|
story.append(mocktail_table)
|
||||||
|
|
||||||
story.append(Spacer(1, 6*mm))
|
story.append(Spacer(1, 4*mm))
|
||||||
story.append(Paragraph("✨ Cheers! Cheers to great drinks and good vibes! ✨", footer_style))
|
story.append(Paragraph("✨ Cheers! Cheers to great drinks and good vibes! ✨", footer_style))
|
||||||
|
|
||||||
doc.build(story, canvasmaker=NumberedCanvas)
|
doc.build(story, canvasmaker=NumberedCanvas)
|
||||||
print("PDF updated.")
|
print(f"PDF generated: {filename}")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
out_path = r"C:\Users\Danie\.gemini\antigravity-ide\scratch\Getraenkekarte.pdf"
|
import sys
|
||||||
generate_pdf(out_path)
|
base_dir = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
target_file = os.path.join(base_dir, "Getraenkekarte.pdf")
|
||||||
|
generate_pdf(target_file)
|
||||||
|
|||||||
Reference in New Issue
Block a user