import weasyprint
html_content = """<!DOCTYPE
html>
<html
lang="id">
<head>
<meta charset="UTF-8">
<title>Laporan Pertandingan: Arsenal
vs Borussia Dortmund</title>
<style>
@page {
size: A4;
margin: 18mm 15mm;
background-color: #f8fafc;
}
*, *::before, *::after {
box-sizing: border-box;
}
body {
font-family: 'Georgia', 'Times New
Roman', serif;
color: #1e293b;
line-height: 1.6;
margin: 0;
padding: 0;
font-size: 10.5pt;
}
.header {
background-color: #0f172a;
color: #ffffff;
margin: -18mm -15mm 25px -15mm;
padding: 25px 20mm;
border-bottom: 4px solid #ef4444;
}
.kicker {
font-family: 'Helvetica Neue',
Arial, sans-serif;
text-transform: uppercase;
font-size: 8.5pt;
letter-spacing: 1.5px;
color: #f87171;
font-weight: bold;
margin-bottom: 6px;
}
.title {
font-size: 20pt;
font-weight: bold;
line-height: 1.25;
margin: 0 0 10px 0;
font-family: 'Helvetica Neue',
Arial, sans-serif;
}
.subtitle {
font-size: 11pt;
color: #94a3b8;
font-style: italic;
margin: 0;
}
.byline-bar {
font-family: 'Helvetica Neue',
Arial, sans-serif;
font-size: 8.5pt;
color: #64748b;
border-top: 1px solid #e2e8f0;
border-bottom: 1px solid #e2e8f0;
padding: 8px 0;
margin-bottom: 20px;
display: table;
width: 100%;
}
.byline-cell {
display: table-cell;
vertical-align: middle;
}
.byline-cell.right {
text-align: right;
}
.lead-p {
font-size: 11.5pt;
font-weight: 500;
color: #0f172a;
line-height: 1.65;
margin-bottom: 18px;
}
.lead-p::first-letter {
font-size: 32pt;
float: left;
line-height: 0.8;
padding-right: 8px;
padding-top: 2px;
font-weight: bold;
color: #dc2626;
}
h2 {
font-family: 'Helvetica Neue', Arial,
sans-serif;
font-size: 13pt;
color: #0f172a;
border-left: 4px solid #dc2626;
padding-left: 10px;
margin-top: 22px;
margin-bottom: 12px;
page-break-after: avoid;
}
p {
margin-top: 0;
margin-bottom: 14px;
text-align: justify;
}
.highlight-box {
background-color: #ffffff;
border: 1px solid #e2e8f0;
border-left: 3px solid #dc2626;
padding: 12px 15px;
margin: 18px 0;
font-size: 10pt;
border-radius: 0 4px 4px 0;
}
.match-score-card {
background-color: #ffffff;
border: 1px solid #cbd5e1;
border-radius: 6px;
padding: 15px;
margin: 20px 0;
text-align: center;
}
.score-title {
font-family: 'Helvetica Neue', Arial,
sans-serif;
font-size: 9pt;
text-transform: uppercase;
letter-spacing: 1px;
color: #64748b;
margin-bottom: 8px;
}
.score-display {
font-family: 'Helvetica Neue',
Arial, sans-serif;
font-size: 18pt;
font-weight: bold;
color: #0f172a;
}
.score-details {
font-size: 8.5pt;
color: #475569;
margin-top: 8px;
font-style: italic;
}
.footer {
margin-top: 30px;
border-top: 1px solid #cbd5e1;
padding-top: 10px;
font-family: 'Helvetica Neue',
Arial, sans-serif;
font-size: 8pt;
color: #94a3b8;
text-align: center;
}
</style>
</head>
<body>
<div class="header">
<div
class="kicker">Catatan Jurnalistik / Uji Coba Pramusim</div>
<div
class="title">Kejutan di Emirates: Sang Juara Bertahan Tumbang di
Tangan Efektivitas Borussia Dortmund</div>
<div
class="subtitle">Arsenal harus mengakui keunggulan tim tamu 2-3
setelah lini pertahanan terhentak oleh efisiensi serangan kilat
Dortmund.</div>
</div>
<div class="byline-bar">
<div
class="byline-cell">
<strong>Oleh:</strong>
Redaksi Olahraga Senior • <strong>Lokasi:</strong> London,
Inggris
</div>
<div class="byline-cell
right">
<strong>Tanggal:</strong>
Minggu, 9 Oktober 2026
</div>
</div>
<p class="lead-p">
LONDON — Berstatus sebagai juara
bertahan Premier League musim 2025/2026 ternyata tidak menjamin langkah mulus
bagi Arsenal dalam laga pramusim mereka. Menjamu Borussia Dortmund di Emirates
Stadium pada Minggu (9/10/2026), skuad asuhan Mikel Arteta terpaksa gigit jari
usai dipaksa menyerah dengan skor tipis 2-3 dari tamunya asal Jerman tersebut.
</p>
<h2>Babak Pertama: Kebuntuan Arsenal
dan Edisi Serangan Kilat Dortmund</h2>
<p>
Sejak peluit pertama dibunyikan,
Arsenal mencoba mengambil inisiatif permainan dengan mendominasi penguasaan
bola. Namun, barisan pertahanan rapat yang dibangun Dortmund terbukti sangat
kokoh dan membuat alur serangan tuan rumah sering kali menemui jalan buntu.
</p>
<p>
Asyik menyerang justru membuat benteng
pertahanan Arsenal rapuh saat menerima skema serangan balik. Menit ke-7, publik
Emirates dibuat terhenyak ketika Samuele Inacio berhasil mengoyak jaring gawang
tuan rumah lewat sepakan terukurnya. Keunggulan tersebut kian membuat Dortmund
percaya diri. Pada menit ke-29, giliran aksi eksekusi manis dari Konstantinos
yang memperlebar jarak sekaligus memaksa Arsenal menyelesaikannya dengan
tertinggal 0-2 hingga jeda paruh waktu.
</p>
<div
class="match-score-card">
<div
class="score-title">Hasil Akhir Uji Coba Pramusim</div>
<div
class="score-display">ARSENAL 2 – 3 BORUSSIA
DORTMUND</div>
<div
class="score-details">
Gol: E. Nwaneri (54'), V. Gyökeres
(69' pen) | S. Inacio (7'), Konstantinos (29'), J. Gadou (58')<br>
Stadion: Emirates Stadium, London
</div>
</div>
<h2>Dua Gol Balasan dan Drama
Hambatan di Babak Kedua</h2>
<p>
Memasuki paruh kedua, Arsenal merespons
dengan meningkatkan tempo permainan. Upaya pantang menyerah ini akhirnya
membuahkan hasil pada menit ke-54 lewat aksi tusukan Tajam Ethan Nwaneri yang
berhasil menaklukkan kiper lawan, memperkecil kedudukan menjadi 1-2.
</p>
<p>
Namun, momen kebangkitan Arsenal
kembali terhambat hanya empat menit berselang. Pada menit ke-58, Joane Gadou
melakukan penetrasi tajam yang berujung gol ketiga bagi Dortmund, mengubah
papan skor menjadi 1-3.
</p>
<p>
Pantang menyerah, Arsenal kembali
menekan dan mendapatkan hadiah penalti pada menit ke-69. Viktor Gyökeres yang
maju sebagai eksekutor menjalankan tugasnya secara dingin untuk memperkecil
ketertinggalan menjadi 2-3. Di sisa sisa laga, Arsenal mengurung pertahanan
Dortmund, namun hingga peluit panjang berbunyi, skor 2-3 tetap bertahan untuk
kemenangan Borussia Dortmund.
</p>
<div class="highlight-box">
<strong>Catatan
Taktis:</strong> Kendati tampil dominan dalam penguasaan bola, kerentanan
Arsenal terhadap transisi cepat lawan menjadi PR besar jelang dibukanya
kompetisi resmi.
</div>
<div class="footer">
Laporan Berita Olahraga Rekonstruksi
Kritis • Sumber Data: Pertandingan Laga Uji Coba Pramusim 2026
</div>
</body>
</html>
"""
with open("laporan_berita_arsenal_dortmund.html",
"w", encoding="utf-8") as f:
f.write(html_content)
weasyprint.HTML("laporan_berita_arsenal_dortmund.html").write_pdf("Laporan_Berita_Arsenal_vs_Dortmund_2026.pdf")
print("PDF Arsenal
generated successfully.")
Output kode
PDF Arsenal generated
successfully.
MENJUAL HARAPAN — Berstatus sebagai jawara Premier League musim
2025/2026 ternyata tak menjamin langkah mulus bagi Arsenal di laga pramusim
mereka. Menjamu Borussia Dortmund di Emirates Stadium pada Minggu (9/10/2026),
armada asuhan Mikel Arteta terpaksa gigit jari usai dipaksa menyerah dengan
skor tipis 2-3 dari tamunya asal
Jerman tersebut.
Kebuntuan Tuan Rumah dan Efisiensi Serangan
Kilat Dortmund
Sejak peluit awal dibunyikan, Arsenal
sejatinya memegang kendali permainan dan berupaya menekan pertahanan lawan.
Akan tetapi, barisan lini belakang Dortmund
tampil begitu solid, membuat alur serangan The Gunners sering kali
menemui jalan buntu di sepertiga akhir lapangan.
Asyik mengurung pertahanan lawan justru
menyisakan celah di lini belakang Arsenal. Kebuntuan pecah pada menit ke-7
setelah Samuele Inacio menaklukkan
kiper lewat penyelesaian dingin memanfaatkan skema serangan kilat.
Percaya diri usai unggul, Dortmund makin
leluasa mengeksploitasi lini pertahanan tuan rumah. Pada menit ke-29, Konstantinos menggandakan keunggulan
tim tamu lewat eksekusi terukurnya, memaksa Arsenal menutup babak pertama
dengan tertinggal 0-2.
Drama Babak Kedua: Perlawanan Arsenal dan Gol
Pengunci Dortmund
Memasuki paruh kedua, Arsenal meningkatkan
intensitas permainan demi mengejar ketertinggalan.
- Gol Pembangkit Asa (Menit 54): Upaya pantang menyerah tuan rumah akhirnya
membuahkan hasil ketika aksi tusukan tajam Ethan Nwaneri sukses merobek
jaring gawang Dortmund dan mengubah skor menjadi 1-2.
- Tamparan Balasan (Menit 58): Momen kebangkitan Arsenal berumur pendek. Hanya
berselang empat menit, penetrasi mematikan dari Joane Gadou kembali
membawa Dortmund memperlebar keunggulan menjadi 1-3.
- Eksekusi Penalti (Menit 69): Arsenal tidak menyerah begitu saja. Tekanan
bergelombang tuan rumah membuahkan hadiah penalti di menit ke-69. Viktor
Gyökeres yang maju sebagai algojo menjalankan tugasnya dengan dingin untuk
menipiskan jarak menjadi 2-3.
Rangkuman Pertandingan
|
Parameter
|
Catatan Pertandingan
|
|
Pertandingan
|
Arsenal vs Borussia Dortmund (Pramusim)
|
|
Stadion / Waktu
|
Emirates Stadium, London / Minggu, 9 Oktober
2026
|
|
Hasil Akhir
|
Arsenal 2 – 3 Borussia Dortmund
|
|
Pencetak Gol Arsenal
|
Ethan Nwaneri (54'), Viktor Gyökeres (69' -
Pen)
|
|
Pencetak Gol Dortmund
|
Samuele Inacio (7'), Konstantinos (29'),
Joane Gadou (58')
|
Catatan Evaluasi Taktis
Kendati menguasai jalannya babak pertama
hingga akhir pertandingan, kerentanan struktur pertahanan Arsenal dalam
mengantisipasi transisi cepat lawan menjadi PR besar jelang dibukanya kompetisi
resmi.
Sebaliknya, efektivitas skema serangan balik cepat
Dortmund terbukti menjadi senjata mematikan yang sukses menaklukkan sang juara
bertahan di kandangnya sendiri. (*S_267)
Baca juga:
Komentar