diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index 9553317..5899b07 100644
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -178,6 +178,10 @@ $routes->get('administrator/trophy', 'View\TrophyController::index'
$routes->get('administrator/trophy/winners', 'View\TrophyController::winners', ['filter' => 'auth:admin']);
$routes->get('administrator/trophy/final', 'View\TrophyController::final', ['filter' => 'auth:admin']);
+// Certificates
+$routes->get('administrator/certificates', 'View\CertificateController::index', ['filter' => 'auth:admin']);
+$routes->post('administrator/certificates/generate', 'View\CertificateController::generate', ['filter' => 'auth:admin']);
+
/*
diff --git a/app/Controllers/View/CertificateController.php b/app/Controllers/View/CertificateController.php
new file mode 100644
index 0000000..383b859
--- /dev/null
+++ b/app/Controllers/View/CertificateController.php
@@ -0,0 +1,296 @@
+classSectionModel = new ClassSectionModel();
+ $this->configModel = new ConfigurationModel();
+ $this->schoolYear = $this->configModel->getConfig('school_year');
+ }
+
+ public function index()
+ {
+ $db = \Config\Database::connect();
+ $classSectionId = $this->request->getGet('class_section_id');
+ $schoolYear = $this->request->getGet('school_year') ?? $this->schoolYear;
+
+ $classSections = $db->table('classSection cs')
+ ->select('cs.class_section_id, cs.class_section_name')
+ ->join('student_class sc', 'sc.class_section_id = cs.class_section_id')
+ ->join('students s', 's.id = sc.student_id')
+ ->where('s.is_active', 1)
+ ->where('sc.school_year', $schoolYear)
+ ->groupBy('cs.class_section_id, cs.class_section_name')
+ ->having('COUNT(s.id) >', 1)
+ ->orderBy('cs.class_section_name', 'ASC')
+ ->get()->getResultArray();
+
+ $students = [];
+ if ($classSectionId) {
+ $students = $db->table('student_class sc')
+ ->select('s.id, s.firstname, s.lastname, cs.class_section_name AS grade')
+ ->join('students s', 's.id = sc.student_id')
+ ->join('classSection cs', 'cs.class_section_id = sc.class_section_id')
+ ->where('sc.class_section_id', (int) $classSectionId)
+ ->where('s.is_active', 1)
+ ->where('sc.school_year', $schoolYear)
+ ->orderBy('s.lastname', 'ASC')
+ ->orderBy('s.firstname', 'ASC')
+ ->get()->getResultArray();
+ }
+
+ return view('admin/certificates/index', [
+ 'classSections' => $classSections,
+ 'students' => $students,
+ 'selectedClassId' => $classSectionId,
+ 'schoolYear' => $schoolYear,
+ 'certDate' => date('m/d/Y'),
+ ]);
+ }
+
+ public function generate()
+ {
+ $studentIds = $this->request->getPost('student_ids') ?? [];
+ $certDate = trim($this->request->getPost('cert_date') ?? date('m/d/Y'));
+ $classSectionId = $this->request->getPost('class_section_id');
+
+ if (empty($studentIds)) {
+ return redirect()->to('administrator/certificates')->with('error', 'Please select at least one student.');
+ }
+
+ // Sanitize inputs
+ $studentIds = array_filter(array_map('intval', $studentIds));
+ $certDate = preg_replace('/[^0-9\/\-]/', '', $certDate);
+
+ if (empty($studentIds)) {
+ return redirect()->to('administrator/certificates')->with('error', 'Invalid student selection.');
+ }
+
+ $db = \Config\Database::connect();
+ $students = [];
+
+ foreach ($studentIds as $id) {
+ if ($classSectionId) {
+ $row = $db->table('student_class sc')
+ ->select('s.id, s.firstname, s.lastname, cs.class_section_name AS grade')
+ ->join('students s', 's.id = sc.student_id')
+ ->join('classSection cs', 'cs.class_section_id = sc.class_section_id')
+ ->where('sc.class_section_id', (int) $classSectionId)
+ ->where('s.id', $id)
+ ->get()->getRowArray();
+ } else {
+ $row = null;
+ }
+
+ if (!$row) {
+ $s = $db->table('students')
+ ->select('id, firstname, lastname, registration_grade AS grade')
+ ->where('id', $id)
+ ->get()->getRowArray();
+ $row = $s ?: null;
+ }
+
+ if ($row) {
+ $students[] = $row;
+ }
+ }
+
+ if (empty($students)) {
+ return redirect()->to('administrator/certificates')->with('error', 'No valid students found.');
+ }
+
+ $pdfData = $this->buildPdf($students, $certDate);
+ $filename = 'Certificates_' . date('Ymd_His') . '.pdf';
+
+ return $this->response
+ ->setHeader('Content-Type', 'application/pdf')
+ ->setHeader('Content-Disposition', 'inline; filename="' . $filename . '"')
+ ->setBody($pdfData);
+ }
+
+ // ─── PDF generation ────────────────────────────────────────────────────────
+
+ private function buildPdf(array $students, string $certDate): string
+ {
+ $fontDir = FCPATH . 'assets' . DIRECTORY_SEPARATOR . 'certificates' . DIRECTORY_SEPARATOR . 'fonts' . DIRECTORY_SEPARATOR;
+ $imgDir = FCPATH . 'assets' . DIRECTORY_SEPARATOR . 'certificates' . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR;
+
+ // Convert TTF → TCPDF format on first run (cached in TCPDF's own fonts dir).
+ // K_PATH_FONTS must stay pointing at the TCPDF vendor fonts directory so that
+ // built-in fonts (helvetica, times, …) remain findable by SetFont().
+ $edwardianFont = \TCPDF_FONTS::addTTFfont($fontDir . 'Edwardian Script ITC Regular.ttf', 'TrueTypeUnicode', '', 32);
+ $garamondBold = \TCPDF_FONTS::addTTFfont($fontDir . 'Garamond Bold.ttf', 'TrueTypeUnicode', '', 32);
+ $ebGaramond = \TCPDF_FONTS::addTTFfont($fontDir . 'EBGaramond-Regular.ttf', 'TrueTypeUnicode', '', 32);
+
+ // A4 landscape in points: 841.89 × 595.28
+ $pdf = new \TCPDF('L', 'pt', 'A4', true, 'UTF-8', false);
+ $pdf->SetCreator('Al Rahma Sunday School');
+ $pdf->SetTitle('Student Certificates');
+ $pdf->SetMargins(0, 0, 0, true);
+ $pdf->SetAutoPageBreak(false, 0);
+ $pdf->setPrintHeader(false);
+ $pdf->setPrintFooter(false);
+ $pdf->SetHeaderMargin(0);
+ $pdf->SetFooterMargin(0);
+
+ $W = $pdf->getPageWidth(); // 841.89 pt
+ $H = $pdf->getPageHeight(); // 595.28 pt
+
+ foreach ($students as $student) {
+ $pdf->AddPage();
+ $name = $student['firstname'] . ' ' . $student['lastname'];
+ $grade = $this->formatGrade($student['grade'] ?? '');
+ $this->drawCertificate($pdf, $W, $H, $name, $grade, $certDate, $imgDir, $edwardianFont, $garamondBold, $ebGaramond);
+ }
+
+ return $pdf->Output('', 'S');
+ }
+
+ private function formatGrade(string $raw): string
+ {
+ $clean = trim($raw);
+ $lower = strtolower($clean);
+
+ // Numeric grades 1-9 → "Grade N"
+ if (preg_match('/^\d+$/', $clean) && (int)$clean >= 1 && (int)$clean <= 9) {
+ return 'Grade ' . $clean;
+ }
+
+ // Youth variants
+ if ($lower === 'youth') {
+ return 'Youth';
+ }
+
+ // KG → Kindergarten
+ if ($lower === 'kg') {
+ return 'Kindergarten';
+ }
+
+ return $clean;
+ }
+
+ /**
+ * Draws one certificate page. Coordinate mapping from the original C# iTextSharp code:
+ * iTextSharp uses (x, y) with origin at bottom-left, y increases upward.
+ * TCPDF uses (x, y) with origin at top-left, y increases downward.
+ * Conversion: y_tcpdf = H - y_iTextSharp
+ */
+ private function drawCertificate(
+ \TCPDF $pdf,
+ float $W,
+ float $H,
+ string $name,
+ string $grade,
+ string $certDate,
+ string $imgDir,
+ string $edwardianFont,
+ string $garamondBold,
+ string $ebGaramond
+ ): void {
+ // ── Title image: iTS SetAbsolutePosition(126, 450), ScaleToFit(600, 300)
+ // Bottom at y=450 from page bottom → top at H-450 ≈ 145. Place at top of page.
+ $pdf->Image($imgDir . 'title.png', 126, 0, 600);
+
+ // ── Background image: iTS position(280, 79), ScaleToFit(2500, 340)
+ // background.png is 336×393 px → ScaleToFit gives ≈291×340 pt.
+ // Top in TCPDF: H-79-340 = ~176
+ $pdf->Image($imgDir . 'background.png', 280, 176, 291, 340);
+
+ // ── Signature image: iTS position(140, 106), ScaleToFit(90, 90)
+ // Top in TCPDF: H-106-90 = ~399
+ $pdf->Image($imgDir . 'signature.png', 140, 399, 90, 90);
+
+ // ── "Presented to:" — iTS ALIGN_CENTER baseline y=420 → TCPDF y≈155
+ $pdf->SetFont('times', 'B', 24);
+ $pdf->SetTextColor(0, 0, 0);
+ $pdf->SetXY(0, 151);
+ $pdf->Cell($W, 24, 'Presented to:', 0, 0, 'C');
+
+ // ── Student name — iTS baseline y=334, 38 pt Edwardian Script → TCPDF y≈219
+ // Bold effect: fill the glyph AND add a thin stroke around it (Edwardian has no bold variant).
+ $pdf->SetFont($edwardianFont, '', 38);
+ $pdf->SetDrawColor(0, 0, 0);
+ $pdf->setTextRenderingMode(0.4, true, false);
+ $pdf->SetXY(0, 219);
+ $pdf->Cell($W, 38, $name, 0, 0, 'C');
+ $pdf->setTextRenderingMode(0, true, false);
+
+ // ── Line under name — iTS ALIGN_RIGHT at x=600, y=332 → TCPDF y≈243
+ $pdf->SetFont('times', '', 20);
+ $pdf->SetXY(0, 243);
+ $pdf->Cell(600, 20, '___________________________________', 0, 0, 'R');
+
+ // ── Description — iTS ALIGN_CENTER baseline y=302 → TCPDF y≈273
+ $pdf->SetFont($ebGaramond, '', 20);
+ $pdf->SetXY(0, 273);
+ $pdf->Cell($W, 20, 'for successfully completing the requirements of', 0, 0, 'C');
+
+ // ── Grade — iTS ALIGN_CENTER baseline y=265 → TCPDF y≈310
+ $pdf->SetFont($garamondBold, '', 20);
+ $pdf->SetXY(0, 310);
+ $pdf->Cell($W, 20, $grade, 0, 0, 'C');
+
+ // ── "at" — iTS ALIGN_CENTER baseline y=232 → TCPDF y≈343
+ $pdf->SetFont('times', '', 20);
+ $pdf->SetXY(0, 343);
+ $pdf->Cell($W, 20, 'at', 0, 0, 'C');
+
+ // ── School name — iTS ALIGN_CENTER baseline y=200 → TCPDF y≈375
+ $pdf->SetFont($garamondBold, '', 20);
+ $pdf->SetXY(0, 375);
+ $pdf->Cell($W, 20, 'Al Rahma Sunday School', 0, 0, 'C');
+
+ // ── Certificate date — iTS DrawGradientText at (598, 116), 26 pt Edwardian
+ // TCPDF y ≈ H-116-26 = ~453
+ $this->drawGradientText($pdf, $edwardianFont, 26, $certDate, 598, 453);
+
+ // ── Date underline — iTS ALIGN_RIGHT at x=742, y=110 → TCPDF y≈465
+ $pdf->SetFont('times', '', 20);
+ $pdf->SetXY(0, 463);
+ $pdf->Cell(742, 20, '_________________', 0, 0, 'R');
+
+ // ── "Date" label — iTS at (690, 78) → TCPDF y≈497, x≈650
+ $pdf->SetXY(650, 492);
+ $pdf->Cell(80, 20, 'Date', 0, 0, 'C');
+
+ // ── Signature underline — iTS ALIGN_LEFT at x=106, y=110 → TCPDF y≈465
+ $pdf->SetXY(106, 463);
+ $pdf->Cell(200, 20, '_________________', 0, 0, 'L');
+
+ // ── "Signature" label — iTS at (190, 78) → TCPDF y≈497
+ $pdf->SetXY(106, 492);
+ $pdf->Cell(168, 20, 'Signature', 0, 0, 'C');
+ }
+
+ /**
+ * Mimics the C# DrawGradientText — shadow passes give depth, final pass is solid black.
+ */
+ private function drawGradientText(\TCPDF $pdf, string $fontName, float $fontSize, string $text, float $x, float $y): void
+ {
+ $pdf->SetFont($fontName, '', $fontSize);
+
+ // Shadow passes (progressively more opaque, slightly offset)
+ for ($i = 0; $i < 6; $i++) {
+ $alpha = ($i + 1) * 25 / 255; // 0.098 → 0.588
+ $pdf->setAlpha($alpha);
+ $pdf->SetTextColor(0, 0, 0);
+ $pdf->Text($x + $i / 5, $y + $i / 5, $text);
+ }
+
+ // Main solid pass
+ $pdf->setAlpha(1);
+ $pdf->SetTextColor(0, 0, 0);
+ $pdf->Text($x, $y, $text);
+ }
+}
diff --git a/app/Views/admin/certificates/index.php b/app/Views/admin/certificates/index.php
new file mode 100644
index 0000000..d1f772a
--- /dev/null
+++ b/app/Views/admin/certificates/index.php
@@ -0,0 +1,167 @@
+= $this->extend('layout/management_layout') ?>
+= $this->section('content') ?>
+
+
+
+
+
+
Generate Certificates
+
Select a class, choose students, then generate and print their certificates.
+
+
+
+ getFlashdata('error')): ?>
+
+ = esc(session()->getFlashdata('error')) ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
No active students found for the selected class and school year.
+
+
Select a class above to load its student roster.
+
+
+
+
+
+= $this->endSection() ?>
diff --git a/public/assets/certificates/fonts/EBGaramond-Regular.ttf b/public/assets/certificates/fonts/EBGaramond-Regular.ttf
new file mode 100644
index 0000000..c86defb
Binary files /dev/null and b/public/assets/certificates/fonts/EBGaramond-Regular.ttf differ
diff --git a/public/assets/certificates/fonts/Edwardian Script ITC Regular.ttf b/public/assets/certificates/fonts/Edwardian Script ITC Regular.ttf
new file mode 100644
index 0000000..dcc21fd
Binary files /dev/null and b/public/assets/certificates/fonts/Edwardian Script ITC Regular.ttf differ
diff --git a/public/assets/certificates/fonts/Garamond Bold.ttf b/public/assets/certificates/fonts/Garamond Bold.ttf
new file mode 100644
index 0000000..30fb512
Binary files /dev/null and b/public/assets/certificates/fonts/Garamond Bold.ttf differ
diff --git a/public/assets/certificates/images/background.png b/public/assets/certificates/images/background.png
new file mode 100644
index 0000000..6cf7233
Binary files /dev/null and b/public/assets/certificates/images/background.png differ
diff --git a/public/assets/certificates/images/signature.png b/public/assets/certificates/images/signature.png
new file mode 100644
index 0000000..3ed1e94
Binary files /dev/null and b/public/assets/certificates/images/signature.png differ
diff --git a/public/assets/certificates/images/title.png b/public/assets/certificates/images/title.png
new file mode 100644
index 0000000..01ee282
Binary files /dev/null and b/public/assets/certificates/images/title.png differ
diff --git a/writable/tcpdf_fonts/ebgaramond.ctg.z b/writable/tcpdf_fonts/ebgaramond.ctg.z
new file mode 100644
index 0000000..b1a6e71
Binary files /dev/null and b/writable/tcpdf_fonts/ebgaramond.ctg.z differ
diff --git a/writable/tcpdf_fonts/ebgaramond.php b/writable/tcpdf_fonts/ebgaramond.php
new file mode 100644
index 0000000..604747c
--- /dev/null
+++ b/writable/tcpdf_fonts/ebgaramond.php
@@ -0,0 +1,15 @@
+32,'FontBBox'=>'[-290 -324 2500 985]','ItalicAngle'=>0,'Ascent'=>1007,'Descent'=>-298,'Leading'=>0,'CapHeight'=>658,'XHeight'=>409,'StemV'=>70,'StemH'=>30,'AvgWidth'=>528,'MaxWidth'=>2550,'MissingWidth'=>500);
+$cw=array(0=>0,13=>200,32=>200,33=>250,34=>330,35=>468,36=>441,37=>650,38=>756,39=>200,40=>315,41=>315,42=>340,43=>590,44=>230,45=>274,46=>230,47=>399,48=>480,49=>480,50=>480,51=>480,52=>480,53=>480,54=>480,55=>480,56=>480,57=>480,58=>248,59=>228,60=>560,61=>566,62=>560,63=>376,64=>749,65=>692,66=>587,67=>710,68=>754,69=>564,70=>512,71=>729,72=>810,73=>340,74=>340,75=>681,76=>584,77=>901,78=>792,79=>763,80=>552,81=>763,82=>713,83=>465,84=>670,85=>738,86=>672,87=>916,88=>707,89=>578,90=>603,91=>331,92=>399,93=>331,94=>500,95=>500,96=>200,97=>399,98=>515,99=>407,100=>506,101=>390,102=>318,103=>435,104=>515,105=>245,106=>226,107=>469,108=>240,109=>778,110=>528,111=>495,112=>519,113=>522,114=>334,115=>323,116=>314,117=>527,118=>438,119=>685,120=>430,121=>438,122=>377,123=>376,124=>260,125=>376,126=>500,160=>200,161=>250,162=>422,163=>490,164=>506,165=>570,166=>260,167=>400,168=>300,169=>665,170=>310,171=>595,172=>600,173=>274,174=>665,175=>300,176=>290,177=>590,178=>300,179=>284,180=>200,181=>537,182=>595,183=>200,184=>200,185=>259,186=>309,187=>595,188=>657,189=>717,190=>634,191=>376,192=>692,193=>692,194=>692,195=>692,196=>692,197=>692,198=>872,199=>710,200=>564,201=>564,202=>564,203=>564,204=>340,205=>340,206=>340,207=>340,208=>754,209=>792,210=>763,211=>763,212=>763,213=>763,214=>763,215=>600,216=>773,217=>738,218=>738,219=>738,220=>738,221=>578,222=>559,223=>504,224=>399,225=>399,226=>399,227=>399,228=>399,229=>399,230=>557,231=>407,232=>390,233=>390,234=>390,235=>390,236=>245,237=>245,238=>245,239=>245,240=>487,241=>528,242=>495,243=>495,244=>495,245=>495,246=>495,247=>590,248=>485,249=>527,250=>527,251=>527,252=>527,253=>438,254=>505,255=>438,256=>692,257=>399,258=>692,259=>399,260=>692,261=>399,262=>710,263=>407,264=>710,265=>407,266=>710,267=>407,268=>710,269=>407,270=>754,271=>519,272=>754,273=>506,274=>564,275=>390,276=>564,277=>390,278=>564,279=>390,280=>535,281=>383,282=>564,283=>390,284=>729,285=>435,286=>729,287=>435,288=>729,289=>435,290=>729,291=>435,292=>810,293=>515,294=>810,295=>519,296=>340,297=>245,298=>340,299=>245,300=>340,301=>245,302=>340,303=>245,304=>340,305=>245,306=>680,307=>463,308=>340,309=>226,310=>681,311=>469,312=>474,313=>584,314=>240,315=>584,316=>240,317=>584,318=>254,319=>584,320=>334,321=>584,322=>280,323=>792,324=>528,325=>770,326=>528,327=>792,328=>528,329=>609,330=>770,331=>513,332=>763,333=>495,334=>763,335=>495,336=>763,337=>495,338=>947,339=>758,340=>713,341=>334,342=>713,343=>334,344=>713,345=>334,346=>465,347=>323,348=>465,349=>323,350=>465,351=>323,352=>465,353=>323,354=>670,355=>314,356=>670,357=>314,358=>670,359=>351,360=>738,361=>527,362=>738,363=>527,364=>738,365=>527,366=>738,367=>527,368=>738,369=>527,370=>738,371=>527,372=>916,373=>685,374=>578,375=>438,376=>578,377=>603,378=>377,379=>603,380=>377,381=>603,382=>377,383=>261,384=>515,385=>651,386=>587,387=>515,388=>568,389=>515,390=>710,391=>660,392=>414,393=>754,394=>797,395=>577,396=>506,397=>481,398=>535,399=>665,400=>510,401=>509,402=>313,403=>757,404=>672,405=>693,406=>349,407=>340,408=>689,409=>469,410=>275,411=>489,412=>1045,413=>770,414=>527,415=>763,416=>763,417=>506,418=>910,419=>648,420=>625,421=>519,422=>630,423=>465,424=>323,425=>603,426=>224,427=>314,428=>680,429=>323,430=>673,431=>738,432=>561,433=>759,434=>739,435=>637,436=>537,437=>603,438=>377,439=>515,440=>478,441=>404,442=>402,443=>485,444=>568,445=>421,446=>352,447=>508,448=>125,449=>213,450=>315,451=>250,452=>1357,453=>1131,454=>883,455=>924,456=>800,457=>466,458=>1132,459=>1018,460=>728,461=>692,462=>399,463=>340,464=>245,465=>763,466=>495,467=>738,468=>527,469=>738,470=>527,471=>738,472=>527,473=>738,474=>527,475=>738,476=>527,477=>407,478=>692,479=>399,480=>692,481=>399,482=>872,483=>557,484=>729,485=>435,486=>729,487=>435,488=>681,489=>469,490=>763,491=>495,492=>763,493=>495,494=>515,495=>421,496=>226,497=>1357,498=>1131,499=>883,500=>729,501=>435,502=>899,503=>584,504=>792,505=>528,506=>692,507=>399,508=>872,509=>557,510=>773,511=>485,512=>692,513=>399,514=>692,515=>399,516=>564,517=>390,518=>564,519=>390,520=>340,521=>245,522=>340,523=>245,524=>763,525=>495,526=>763,527=>495,528=>713,529=>334,530=>713,531=>334,532=>738,533=>527,534=>738,535=>527,536=>465,537=>323,538=>670,539=>314,540=>525,541=>419,542=>810,543=>515,544=>805,545=>637,546=>603,547=>495,548=>603,549=>361,550=>692,551=>399,552=>535,553=>390,554=>763,555=>495,556=>763,557=>495,558=>763,559=>495,560=>763,561=>495,562=>578,563=>438,564=>323,565=>589,566=>390,567=>226,568=>792,569=>811,570=>692,571=>640,572=>377,573=>584,574=>670,575=>322,576=>377,577=>467,578=>374,579=>607,580=>738,581=>672,582=>535,583=>390,584=>319,585=>212,586=>735,587=>517,588=>713,589=>352,590=>578,591=>438,592=>392,593=>539,594=>510,595=>509,596=>439,597=>404,598=>492,599=>504,600=>401,601=>407,602=>576,603=>356,604=>382,605=>483,606=>452,607=>212,608=>517,609=>522,610=>498,611=>462,612=>440,613=>514,614=>517,615=>503,616=>280,617=>256,618=>250,619=>249,620=>276,621=>226,622=>513,623=>778,624=>766,625=>762,626=>537,627=>499,628=>510,629=>495,630=>680,631=>708,632=>585,633=>320,634=>320,635=>399,636=>334,637=>334,638=>334,639=>334,640=>484,641=>449,642=>323,643=>250,644=>229,645=>396,646=>232,647=>314,648=>314,649=>527,650=>495,651=>468,652=>438,653=>685,654=>438,655=>440,656=>377,657=>377,658=>421,659=>426,660=>420,661=>377,662=>377,663=>405,664=>675,665=>424,666=>456,667=>529,668=>521,669=>213,670=>462,671=>401,672=>522,673=>430,674=>387,675=>730,676=>777,677=>733,678=>518,679=>506,680=>680,681=>760,682=>465,683=>464,684=>472,685=>435,686=>581,687=>568,688=>378,689=>378,690=>168,691=>258,692=>269,693=>277,694=>320,695=>472,696=>304,697=>200,698=>331,699=>200,700=>200,701=>200,702=>200,703=>200,708=>500,710=>300,711=>300,712=>200,713=>300,714=>200,715=>200,716=>200,717=>300,718=>200,719=>200,720=>200,721=>200,728=>300,729=>200,730=>200,731=>300,732=>300,733=>300,734=>280,736=>462,737=>202,738=>229,739=>301,759=>286,768=>0,769=>0,770=>0,771=>0,772=>0,773=>0,774=>0,775=>0,776=>0,777=>0,778=>0,779=>0,780=>0,781=>0,782=>0,783=>0,784=>0,785=>0,786=>0,787=>0,788=>0,789=>0,790=>0,791=>0,792=>0,793=>0,794=>0,795=>0,796=>0,797=>0,798=>0,799=>0,800=>0,801=>0,802=>0,803=>0,804=>0,805=>0,806=>0,807=>0,808=>0,809=>0,810=>0,811=>0,812=>0,813=>0,814=>0,815=>0,816=>0,817=>0,818=>0,819=>0,820=>0,821=>0,822=>0,823=>0,824=>0,825=>0,826=>0,827=>0,828=>0,829=>0,830=>0,832=>0,833=>0,834=>0,835=>0,836=>0,837=>0,849=>0,851=>0,855=>0,861=>0,865=>0,868=>0,884=>178,885=>178,890=>221,894=>228,900=>200,901=>300,902=>692,903=>200,904=>706,905=>932,906=>480,908=>814,910=>866,911=>836,912=>238,913=>692,914=>587,915=>517,916=>676,917=>564,918=>603,919=>810,920=>773,921=>340,922=>681,923=>692,924=>901,925=>792,926=>640,927=>763,928=>828,929=>552,931=>603,932=>670,933=>739,934=>745,935=>707,936=>745,937=>830,938=>340,939=>739,940=>452,941=>334,942=>460,943=>238,944=>434,945=>452,946=>510,947=>430,948=>418,949=>334,950=>329,951=>460,952=>430,953=>238,954=>468,955=>469,956=>537,957=>405,958=>374,959=>400,960=>521,961=>426,962=>345,963=>478,964=>410,965=>434,966=>537,967=>438,968=>560,969=>562,970=>238,971=>434,972=>400,973=>434,974=>562,975=>681,977=>460,978=>739,979=>866,980=>739,981=>510,982=>562,983=>495,985=>400,987=>395,988=>512,989=>401,993=>531,1008=>495,1009=>426,1010=>422,1017=>710,1019=>631,1024=>564,1025=>564,1026=>750,1027=>517,1028=>652,1029=>465,1030=>340,1031=>340,1032=>340,1033=>951,1034=>968,1035=>763,1036=>661,1037=>803,1038=>637,1039=>793,1040=>692,1041=>587,1042=>587,1043=>517,1044=>705,1045=>564,1046=>982,1047=>510,1048=>803,1049=>803,1050=>661,1051=>711,1052=>901,1053=>810,1054=>763,1055=>828,1056=>552,1057=>710,1058=>670,1059=>637,1060=>763,1061=>707,1062=>777,1063=>678,1064=>1034,1065=>1034,1066=>656,1067=>875,1068=>568,1069=>651,1070=>1028,1071=>671,1072=>399,1073=>473,1074=>424,1075=>354,1076=>455,1077=>390,1078=>701,1079=>382,1080=>528,1081=>528,1082=>478,1083=>481,1084=>625,1085=>521,1086=>495,1087=>503,1088=>519,1089=>407,1090=>410,1091=>438,1092=>585,1093=>430,1094=>514,1095=>448,1096=>692,1097=>692,1098=>477,1099=>611,1100=>404,1101=>408,1102=>659,1103=>447,1104=>390,1105=>390,1106=>487,1107=>354,1108=>412,1109=>323,1110=>245,1111=>245,1112=>226,1113=>619,1114=>644,1115=>519,1116=>478,1117=>528,1118=>438,1119=>499,1122=>668,1123=>467,1130=>962,1131=>681,1136=>745,1138=>763,1139=>495,1140=>646,1141=>458,1142=>646,1143=>458,1162=>803,1163=>528,1164=>587,1165=>467,1166=>552,1167=>519,1168=>504,1169=>350,1170=>517,1171=>354,1172=>641,1173=>451,1174=>979,1175=>701,1176=>510,1177=>382,1178=>661,1179=>478,1180=>721,1181=>516,1182=>701,1183=>542,1184=>746,1185=>562,1186=>810,1187=>521,1188=>967,1189=>624,1190=>1030,1191=>730,1192=>736,1193=>517,1194=>710,1195=>407,1196=>670,1197=>410,1198=>578,1199=>438,1200=>578,1201=>438,1202=>707,1203=>430,1204=>884,1205=>591,1206=>678,1207=>448,1208=>684,1209=>477,1210=>659,1211=>515,1212=>800,1213=>476,1214=>800,1215=>471,1216=>340,1217=>982,1218=>701,1219=>649,1220=>469,1221=>711,1222=>481,1223=>808,1224=>517,1225=>810,1226=>521,1227=>678,1228=>448,1229=>899,1230=>625,1231=>240,1232=>692,1233=>399,1234=>692,1235=>399,1236=>872,1237=>557,1238=>564,1239=>390,1240=>665,1241=>402,1242=>665,1243=>402,1244=>982,1245=>701,1246=>510,1247=>382,1248=>515,1249=>421,1250=>803,1251=>528,1252=>803,1253=>528,1254=>763,1255=>495,1256=>763,1257=>495,1258=>763,1259=>495,1260=>651,1261=>408,1262=>637,1263=>438,1264=>637,1265=>438,1266=>637,1267=>438,1268=>678,1269=>448,1270=>517,1271=>354,1272=>875,1273=>611,1274=>517,1275=>362,1276=>707,1277=>422,1278=>727,1279=>450,1296=>510,1297=>356,1298=>703,1299=>475,1306=>763,1307=>522,1308=>916,1309=>685,1316=>828,1317=>507,1318=>673,1319=>515,1320=>810,1321=>518,1326=>711,1327=>481,7424=>438,7425=>627,7426=>557,7428=>508,7429=>552,7430=>551,7431=>401,7434=>273,7435=>500,7436=>415,7437=>625,7439=>559,7448=>430,7451=>410,7452=>532,7456=>488,7457=>724,7458=>454,7462=>354,7463=>465,7464=>503,7465=>470,7466=>562,7468=>484,7469=>872,7470=>437,7472=>542,7473=>415,7475=>510,7476=>575,7477=>282,7478=>263,7479=>491,7480=>413,7481=>631,7482=>569,7484=>763,7486=>552,7487=>689,7488=>670,7489=>738,7490=>916,7491=>300,7495=>331,7496=>359,7497=>259,7498=>261,7501=>310,7503=>352,7504=>537,7505=>513,7506=>309,7510=>348,7511=>229,7512=>376,7515=>304,7521=>245,7522=>202,7523=>258,7524=>376,7525=>304,7530=>245,7580=>266,7582=>487,7584=>241,7611=>271,7614=>421,7620=>0,7635=>0,7680=>692,7681=>399,7682=>587,7683=>515,7684=>587,7685=>515,7686=>587,7687=>515,7688=>710,7689=>407,7690=>754,7691=>506,7692=>754,7693=>506,7694=>754,7695=>506,7696=>754,7697=>506,7698=>754,7699=>506,7700=>535,7701=>390,7702=>535,7703=>390,7704=>564,7705=>390,7706=>564,7707=>390,7708=>535,7709=>390,7710=>512,7711=>318,7712=>729,7713=>435,7714=>810,7715=>515,7716=>810,7717=>515,7718=>810,7719=>515,7720=>810,7721=>515,7722=>810,7723=>515,7724=>340,7725=>245,7726=>340,7727=>245,7728=>681,7729=>469,7730=>681,7731=>469,7732=>681,7733=>469,7734=>584,7735=>240,7736=>584,7737=>240,7738=>584,7739=>240,7740=>584,7741=>240,7742=>901,7743=>778,7744=>901,7745=>778,7746=>901,7747=>778,7748=>792,7749=>528,7750=>792,7751=>528,7752=>792,7753=>528,7754=>792,7755=>528,7756=>763,7757=>495,7758=>763,7759=>495,7760=>763,7761=>495,7762=>763,7763=>495,7764=>552,7765=>519,7766=>552,7767=>519,7768=>713,7769=>334,7770=>713,7771=>334,7772=>713,7773=>334,7774=>713,7775=>334,7776=>465,7777=>323,7778=>465,7779=>323,7780=>465,7781=>323,7782=>465,7783=>323,7784=>465,7785=>323,7786=>670,7787=>314,7788=>670,7789=>314,7790=>670,7791=>314,7792=>670,7793=>314,7794=>738,7795=>527,7796=>738,7797=>527,7798=>738,7799=>527,7800=>738,7801=>527,7802=>738,7803=>527,7804=>672,7805=>438,7806=>672,7807=>438,7808=>916,7809=>685,7810=>916,7811=>685,7812=>916,7813=>685,7814=>916,7815=>685,7816=>916,7817=>685,7818=>707,7819=>430,7820=>707,7821=>430,7822=>578,7823=>438,7824=>603,7825=>377,7826=>603,7827=>377,7828=>603,7829=>377,7830=>515,7831=>314,7832=>685,7833=>438,7834=>399,7835=>261,7836=>265,7837=>295,7838=>699,7839=>481,7840=>692,7841=>399,7842=>692,7843=>399,7844=>692,7845=>399,7846=>692,7847=>399,7848=>692,7849=>399,7850=>692,7851=>399,7852=>692,7853=>399,7854=>692,7855=>399,7856=>692,7857=>399,7858=>692,7859=>399,7860=>692,7861=>399,7862=>692,7863=>399,7864=>564,7865=>390,7866=>564,7867=>390,7868=>564,7869=>390,7870=>535,7871=>390,7872=>535,7873=>390,7874=>535,7875=>390,7876=>535,7877=>390,7878=>564,7879=>390,7880=>340,7881=>245,7882=>340,7883=>245,7884=>763,7885=>495,7886=>763,7887=>495,7888=>763,7889=>495,7890=>763,7891=>495,7892=>763,7893=>495,7894=>763,7895=>495,7896=>763,7897=>495,7898=>763,7899=>506,7900=>763,7901=>506,7902=>763,7903=>506,7904=>763,7905=>506,7906=>763,7907=>506,7908=>738,7909=>527,7910=>738,7911=>527,7912=>738,7913=>561,7914=>738,7915=>561,7916=>738,7917=>561,7918=>738,7919=>561,7920=>738,7921=>561,7922=>578,7923=>438,7924=>578,7925=>438,7926=>578,7927=>438,7928=>578,7929=>438,7930=>767,7931=>480,7932=>497,7933=>464,7934=>578,7935=>438,7936=>452,7937=>452,7938=>452,7939=>452,7940=>452,7941=>452,7942=>452,7943=>452,7944=>692,7945=>692,7946=>692,7947=>692,7948=>692,7949=>692,7950=>692,7951=>692,7952=>334,7953=>334,7954=>334,7955=>334,7956=>334,7957=>334,7960=>662,7961=>662,7962=>768,7963=>782,7964=>781,7965=>780,7968=>460,7969=>460,7970=>460,7971=>460,7972=>460,7973=>460,7974=>460,7975=>460,7976=>908,7977=>910,7978=>1028,7979=>1027,7980=>1028,7981=>1028,7982=>1027,7983=>1017,7984=>238,7985=>238,7986=>238,7987=>238,7988=>238,7989=>238,7990=>238,7991=>238,7992=>438,7993=>440,7994=>558,7995=>558,7996=>558,7997=>558,7998=>562,7999=>552,8000=>400,8001=>400,8002=>400,8003=>400,8004=>400,8005=>400,8008=>800,8009=>800,8010=>940,8011=>937,8012=>920,8013=>920,8016=>434,8017=>434,8018=>434,8019=>434,8020=>434,8021=>434,8022=>434,8023=>434,8025=>874,8027=>962,8029=>963,8031=>955,8032=>562,8033=>562,8034=>562,8035=>562,8036=>562,8037=>562,8038=>562,8039=>562,8040=>830,8041=>830,8042=>952,8043=>952,8044=>952,8045=>952,8046=>943,8047=>933,8048=>452,8049=>452,8050=>334,8051=>334,8052=>460,8053=>460,8054=>238,8055=>238,8056=>400,8057=>400,8058=>434,8059=>434,8060=>562,8061=>562,8064=>452,8065=>452,8066=>452,8067=>452,8068=>452,8069=>452,8070=>452,8071=>452,8072=>692,8073=>692,8074=>692,8075=>692,8076=>692,8077=>692,8078=>692,8079=>692,8080=>460,8081=>460,8082=>460,8083=>460,8084=>460,8085=>460,8086=>460,8087=>460,8088=>908,8089=>910,8090=>1028,8091=>1027,8092=>1028,8093=>1028,8094=>1027,8095=>1017,8096=>562,8097=>562,8098=>562,8099=>562,8100=>562,8101=>562,8102=>562,8103=>562,8104=>830,8105=>830,8106=>952,8107=>952,8108=>952,8109=>952,8110=>943,8111=>933,8112=>452,8113=>452,8114=>452,8115=>452,8116=>452,8118=>452,8119=>452,8120=>692,8121=>692,8122=>692,8123=>692,8124=>692,8125=>200,8126=>238,8127=>200,8128=>300,8129=>300,8130=>460,8131=>460,8132=>460,8134=>460,8135=>460,8136=>683,8137=>707,8138=>889,8139=>912,8140=>810,8141=>300,8142=>300,8143=>300,8144=>238,8145=>238,8146=>238,8147=>238,8150=>238,8151=>238,8152=>340,8153=>340,8154=>434,8155=>471,8157=>300,8158=>300,8159=>300,8160=>434,8161=>434,8162=>434,8163=>434,8164=>426,8165=>426,8166=>434,8167=>434,8168=>739,8169=>739,8170=>864,8171=>854,8172=>652,8173=>300,8174=>300,8175=>200,8178=>562,8179=>562,8180=>562,8182=>562,8183=>562,8184=>816,8185=>779,8186=>872,8187=>833,8188=>830,8189=>200,8190=>200,8192=>500,8193=>1000,8194=>500,8195=>1000,8196=>333,8197=>250,8198=>166,8199=>528,8200=>228,8201=>100,8202=>10,8203=>0,8204=>0,8205=>0,8206=>333,8207=>333,8208=>274,8209=>274,8210=>528,8211=>550,8212=>950,8213=>2000,8214=>405,8216=>242,8217=>242,8218=>242,8220=>418,8221=>418,8222=>418,8224=>440,8225=>440,8226=>348,8228=>230,8229=>458,8230=>686,8231=>177,8234=>0,8240=>963,8242=>178,8243=>315,8244=>454,8245=>178,8246=>316,8247=>454,8249=>384,8250=>384,8252=>445,8253=>380,8254=>500,8260=>50,8263=>661,8264=>541,8265=>585,8267=>595,8270=>340,8279=>592,8288=>0,8304=>300,8305=>202,8308=>300,8309=>300,8310=>300,8311=>300,8312=>300,8313=>300,8314=>401,8315=>379,8316=>401,8317=>206,8318=>206,8319=>377,8320=>300,8321=>259,8322=>300,8323=>284,8324=>300,8325=>300,8326=>300,8327=>300,8328=>300,8329=>300,8330=>401,8331=>375,8332=>401,8333=>206,8334=>206,8336=>300,8337=>259,8338=>309,8339=>301,8340=>261,8341=>378,8342=>352,8343=>202,8344=>537,8345=>377,8346=>348,8347=>229,8348=>229,8353=>710,8355=>512,8356=>490,8357=>600,8358=>826,8359=>621,8360=>871,8361=>916,8363=>468,8364=>707,8365=>681,8366=>670,8369=>600,8370=>729,8372=>511,8373=>710,8376=>581,8377=>475,8378=>494,8380=>738,8381=>552,8448=>600,8449=>584,8451=>946,8453=>602,8454=>747,8457=>763,8462=>485,8466=>490,8467=>328,8470=>867,8478=>713,8479=>619,8480=>904,8482=>1066,8483=>562,8486=>830,8487=>830,8490=>681,8491=>692,8494=>773,8505=>260,8523=>756,8528=>720,8531=>593,8532=>634,8539=>609,8540=>634,8541=>650,8542=>650,8544=>340,8545=>662,8546=>984,8547=>1006,8548=>672,8549=>992,8550=>1332,8551=>1633,8552=>1047,8553=>707,8554=>1025,8555=>1347,8556=>584,8557=>710,8558=>754,8559=>901,8560=>245,8561=>474,8562=>703,8563=>667,8564=>438,8565=>673,8566=>897,8567=>1126,8568=>654,8569=>430,8570=>630,8571=>858,8572=>240,8573=>407,8574=>506,8575=>778,8592=>1000,8593=>440,8594=>1000,8595=>438,8596=>1000,8597=>400,8598=>800,8599=>810,8600=>800,8601=>810,8602=>1000,8603=>1000,8606=>1001,8607=>438,8608=>1001,8609=>438,8610=>921,8622=>1000,8656=>1000,8657=>438,8658=>1000,8659=>438,8666=>1001,8667=>1001,8706=>487,8709=>691,8710=>676,8711=>676,8719=>828,8720=>828,8721=>491,8722=>600,8723=>590,8725=>399,8726=>399,8729=>200,8730=>360,8734=>749,8739=>260,8740=>260,8741=>380,8742=>380,8747=>313,8758=>248,8764=>500,8769=>500,8776=>500,8800=>566,8804=>590,8805=>590,8810=>857,8811=>857,8814=>560,8815=>560,8901=>200,8943=>620,8963=>500,9001=>307,9002=>307,9332=>924,9333=>1076,9334=>1007,9335=>1190,9336=>1010,9337=>1101,9338=>1095,9339=>1087,9340=>1101,9341=>1452,9342=>1213,9343=>1365,9344=>1296,9345=>1479,9346=>1299,9347=>1390,9348=>1384,9349=>1376,9350=>1390,9351=>1604,9352=>519,9353=>671,9354=>602,9355=>785,9356=>605,9357=>696,9358=>690,9359=>682,9360=>696,9361=>1047,9362=>808,9363=>960,9364=>891,9365=>1074,9366=>894,9367=>985,9368=>979,9369=>971,9370=>985,9371=>1199,9372=>1020,9373=>1130,9374=>1043,9375=>1156,9376=>1043,9377=>937,9378=>1080,9379=>1123,9380=>868,9381=>820,9382=>1111,9383=>865,9384=>1382,9385=>1124,9386=>1116,9387=>1135,9388=>1145,9389=>998,9390=>944,9391=>968,9392=>1169,9393=>1050,9394=>1322,9395=>1055,9396=>1056,9397=>1025,9632=>655,9633=>655,9650=>683,9651=>683,9654=>785,9655=>785,9660=>683,9661=>683,9664=>785,9665=>785,9670=>683,9671=>683,9674=>593,9702=>310,9753=>940,9756=>1088,9757=>493,9758=>1088,9854=>686,9994=>477,9995=>560,9996=>513,10067=>370,10071=>285,10086=>538,10087=>940,10216=>307,10217=>307,10218=>490,10219=>490,10868=>1021,10869=>1168,10870=>1764,11077=>1001,11078=>1001,11360=>584,11361=>240,11362=>584,11363=>552,11364=>713,11365=>399,11366=>370,11367=>826,11368=>515,11369=>681,11370=>475,11371=>603,11372=>377,11373=>735,11374=>884,11375=>692,11376=>735,11377=>520,11378=>875,11379=>749,11380=>426,11381=>509,11382=>330,11383=>675,11384=>496,11385=>324,11386=>495,11387=>401,11388=>168,11389=>672,11390=>465,11391=>603,11800=>380,11810=>331,11811=>331,11812=>331,11813=>331,11816=>512,11817=>512,11822=>376,11834=>1750,11835=>2550,12291=>316,12296=>307,12297=>307,12298=>490,12299=>490,42790=>808,42791=>510,42792=>820,42793=>544,42794=>460,42795=>395,42796=>480,42797=>492,42798=>604,42799=>635,42800=>371,42801=>440,42818=>687,42819=>469,42825=>280,42833=>519,42835=>634,42839=>522,42841=>724,42859=>297,42893=>678,42894=>276,42922=>881,43003=>512,43004=>574,43005=>901,43006=>340,43007=>1232,57345=>1000,57346=>1000,59583=>717,63166=>226,64256=>575,64257=>518,64258=>506,64259=>776,64260=>761,64261=>595,64262=>620,65279=>0,65533=>756);
+// --- EOF ---
diff --git a/writable/tcpdf_fonts/ebgaramond.z b/writable/tcpdf_fonts/ebgaramond.z
new file mode 100644
index 0000000..97129d6
Binary files /dev/null and b/writable/tcpdf_fonts/ebgaramond.z differ
diff --git a/writable/tcpdf_fonts/edwardianscriptitc.ctg.z b/writable/tcpdf_fonts/edwardianscriptitc.ctg.z
new file mode 100644
index 0000000..4b969e8
Binary files /dev/null and b/writable/tcpdf_fonts/edwardianscriptitc.ctg.z differ
diff --git a/writable/tcpdf_fonts/edwardianscriptitc.php b/writable/tcpdf_fonts/edwardianscriptitc.php
new file mode 100644
index 0000000..6b5e71a
--- /dev/null
+++ b/writable/tcpdf_fonts/edwardianscriptitc.php
@@ -0,0 +1,15 @@
+32,'FontBBox'=>'[-322 -328 1692 851]','ItalicAngle'=>0,'Ascent'=>851,'Descent'=>-328,'Leading'=>0,'CapHeight'=>716,'XHeight'=>276,'StemV'=>34,'StemH'=>15,'AvgWidth'=>255,'MaxWidth'=>1291,'MissingWidth'=>500);
+$cw=array(0=>500,32=>177,33=>287,34=>478,35=>478,36=>478,37=>535,38=>889,39=>321,40=>439,41=>439,42=>278,43=>523,44=>223,45=>358,46=>223,47=>529,48=>478,49=>478,50=>478,51=>478,52=>478,53=>478,54=>478,55=>478,56=>478,57=>478,58=>223,59=>223,60=>523,61=>523,62=>523,63=>436,64=>680,65=>908,66=>929,67=>797,68=>847,69=>841,70=>660,71=>734,72=>863,73=>638,74=>563,75=>881,76=>759,77=>978,78=>871,79=>793,80=>769,81=>702,82=>925,83=>707,84=>587,85=>901,86=>749,87=>924,88=>1004,89=>931,90=>653,91=>439,92=>529,93=>439,94=>500,95=>500,96=>500,97=>344,98=>263,99=>242,100=>344,101=>246,102=>133,103=>335,104=>313,105=>168,106=>151,107=>301,108=>160,109=>544,110=>391,111=>290,112=>265,113=>289,114=>278,115=>195,116=>165,117=>313,118=>273,119=>424,120=>348,121=>308,122=>279,123=>439,124=>500,125=>439,126=>667,160=>177,161=>287,162=>478,163=>478,164=>508,165=>478,166=>500,167=>478,168=>500,169=>768,170=>344,171=>358,172=>601,173=>523,174=>768,175=>500,176=>478,177=>523,178=>318,179=>318,180=>500,181=>348,182=>827,183=>231,184=>500,185=>318,186=>344,187=>358,188=>667,189=>650,190=>659,191=>436,192=>908,193=>908,194=>908,195=>908,196=>908,197=>908,198=>1291,199=>797,200=>841,201=>841,202=>841,203=>841,204=>638,205=>638,206=>638,207=>638,208=>847,209=>871,210=>793,211=>793,212=>793,213=>793,214=>793,215=>523,216=>793,217=>901,218=>901,219=>901,220=>901,221=>931,222=>748,223=>291,224=>344,225=>344,226=>344,227=>344,228=>344,229=>344,230=>440,231=>242,232=>246,233=>246,234=>246,235=>246,236=>168,237=>168,238=>168,239=>168,240=>290,241=>391,242=>290,243=>290,244=>290,245=>290,246=>290,247=>523,248=>290,249=>313,250=>313,251=>313,252=>313,253=>308,254=>261,255=>308,305=>168,338=>1168,339=>416,352=>707,353=>195,376=>931,402=>478,710=>500,711=>500,713=>500,728=>500,729=>500,730=>360,731=>500,732=>500,733=>500,916=>500,937=>679,956=>348,960=>361,8211=>445,8212=>597,8216=>209,8217=>209,8218=>209,8220=>301,8221=>301,8222=>301,8224=>478,8225=>478,8226=>669,8230=>668,8240=>731,8249=>249,8250=>249,8260=>68,8364=>478,8482=>775,8486=>679,8706=>290,8710=>500,8719=>694,8721=>478,8725=>68,8729=>231,8730=>506,8734=>713,8747=>350,8776=>523,8800=>523,8804=>523,8805=>523,8946=>523,9674=>500,61441=>311,61442=>308);
+// --- EOF ---
diff --git a/writable/tcpdf_fonts/edwardianscriptitc.z b/writable/tcpdf_fonts/edwardianscriptitc.z
new file mode 100644
index 0000000..779d8b2
Binary files /dev/null and b/writable/tcpdf_fonts/edwardianscriptitc.z differ
diff --git a/writable/tcpdf_fonts/garamondb.ctg.z b/writable/tcpdf_fonts/garamondb.ctg.z
new file mode 100644
index 0000000..be55e4d
Binary files /dev/null and b/writable/tcpdf_fonts/garamondb.ctg.z differ
diff --git a/writable/tcpdf_fonts/garamondb.php b/writable/tcpdf_fonts/garamondb.php
new file mode 100644
index 0000000..9861e6d
--- /dev/null
+++ b/writable/tcpdf_fonts/garamondb.php
@@ -0,0 +1,15 @@
+32,'FontBBox'=>'[-115 -230 1247 825]','ItalicAngle'=>0,'Ascent'=>825,'Descent'=>-230,'Leading'=>0,'CapHeight'=>627,'XHeight'=>459,'StemV'=>123,'StemH'=>53,'AvgWidth'=>479,'MaxWidth'=>1260,'MissingWidth'=>770);
+$cw=array(0=>770,32=>280,33=>280,34=>400,35=>560,36=>560,37=>880,38=>760,39=>220,40=>400,41=>400,42=>340,43=>560,44=>280,45=>300,46=>280,47=>440,48=>560,49=>560,50=>560,51=>560,52=>560,53=>560,54=>560,55=>560,56=>560,57=>560,58=>280,59=>280,60=>560,61=>560,62=>560,63=>420,64=>720,65=>660,66=>640,67=>660,68=>760,69=>600,70=>560,71=>720,72=>780,73=>360,74=>400,75=>740,76=>540,77=>860,78=>720,79=>760,80=>600,81=>760,82=>660,83=>520,84=>600,85=>700,86=>640,87=>940,88=>700,89=>680,90=>620,91=>280,92=>540,93=>280,94=>560,95=>500,96=>400,97=>520,98=>600,99=>500,100=>600,101=>520,102=>360,103=>540,104=>660,105=>320,106=>300,107=>600,108=>320,109=>940,110=>660,111=>600,112=>640,113=>600,114=>460,115=>460,116=>340,117=>600,118=>540,119=>820,120=>620,121=>560,122=>480,123=>280,124=>560,125=>280,126=>560,160=>500,163=>400,164=>560,166=>560,167=>400,168=>600,169=>760,171=>340,172=>560,173=>520,174=>760,175=>360,176=>400,177=>560,178=>360,179=>320,181=>600,182=>660,183=>280,184=>520,185=>360,187=>340,188=>300,189=>520,190=>460,191=>320,192=>660,193=>640,194=>640,195=>560,196=>700,197=>600,198=>1080,199=>560,200=>780,201=>780,202=>740,203=>700,204=>860,205=>780,206=>760,207=>780,208=>600,209=>660,210=>600,211=>680,212=>820,213=>700,214=>780,215=>760,216=>1000,217=>1000,218=>680,219=>1000,220=>600,221=>660,222=>1000,223=>660,224=>520,225=>600,226=>560,227=>500,228=>600,229=>520,230=>800,231=>480,232=>660,233=>660,234=>600,235=>600,236=>740,237=>660,238=>600,239=>660,240=>640,241=>500,242=>500,243=>560,244=>760,245=>620,246=>660,247=>640,248=>940,249=>960,250=>600,251=>860,252=>540,253=>500,254=>860,255=>600,1025=>600,1029=>520,1030=>360,1031=>360,1032=>400,1040=>660,1041=>640,1042=>640,1043=>560,1044=>700,1045=>600,1046=>1080,1047=>560,1048=>780,1049=>780,1050=>740,1051=>700,1052=>860,1053=>780,1054=>760,1055=>780,1056=>600,1057=>660,1058=>600,1059=>680,1060=>820,1061=>700,1062=>780,1063=>760,1064=>1000,1065=>1000,1066=>680,1067=>1000,1068=>600,1069=>660,1070=>1000,1071=>660,1072=>520,1073=>600,1074=>560,1075=>500,1076=>600,1077=>520,1078=>800,1079=>480,1080=>660,1081=>660,1082=>600,1083=>600,1084=>740,1085=>660,1086=>600,1087=>660,1088=>640,1089=>500,1090=>500,1091=>560,1092=>760,1093=>620,1094=>660,1095=>640,1096=>940,1097=>960,1098=>600,1099=>860,1100=>540,1101=>500,1102=>860,1103=>600,1105=>520,1109=>460,1110=>320,1111=>320,1112=>300,8211=>500,8212=>1000,8216=>260,8217=>260,8218=>260,8220=>440,8221=>440,8222=>440,8224=>540,8225=>540,8226=>620,8230=>1000,8240=>1260,8249=>200,8250=>200,8470=>360,8482=>860,8729=>280);
+// --- EOF ---
diff --git a/writable/tcpdf_fonts/garamondb.z b/writable/tcpdf_fonts/garamondb.z
new file mode 100644
index 0000000..cc34658
Binary files /dev/null and b/writable/tcpdf_fonts/garamondb.z differ