Initial commit

main
Manuel 1 year ago committed by GitHub
commit 737d223d21
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. BIN
      TDF/Badge.png
  2. BIN
      TDF/Badge_heller.png
  3. 74
      index.html
  4. 90
      print_badge.php

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

@ -0,0 +1,74 @@
<!DOCTYPE html>
<html>
<head>
<title>TDF Badge</title>
<style>
body {
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
margin: 0;
padding: 0;
}
#container {
position: relative;
}
#badge {
width: 100%;
display: block;
margin: 0 auto;
}
#name-input {
position: absolute;
top: 94px;
width: 324px;
height: 92px;
font-size: 62px;
text-align: left;
margin-left: 123px;
opacity: 0.65;
font-family: inherit;
}
#pronouns-input {
position: absolute;
bottom: 87px;
right: 17px;
width: 165px;
font-size: 20px;
opacity: 0.65;
font-family: inherit;
}
#print-button {
display: block;
margin: 20px auto;
}
@font-face {
font-family: "ComicCode";
src: url('ComicCodeMedium.otf') format("opentype");
}
#preview {
font-family: "ComicCode";
}
</style>
</head>
<body>
<div id="container">
<form action="print_badge.php" method="GET">
<div id="preview">
<img id="badge" src="TDF/Badge.png" alt="Badge">
<input name="name" id="name-input" type="text" placeholder="Name">
<input name="pronouns" id="pronouns-input" type="text" placeholder="pronouns">
</div>
<input type="submit" id="print-button" value="Print" >
</form>
</div>
</body>
</html>

@ -0,0 +1,90 @@
<?php
if (extension_loaded('gd') && function_exists('gd_info')) {
if (isset($_GET['name'])) {
$NAME = $_GET['name'];
$PRONOUNS= $_GET['pronouns'];
$NAME_FONT_SIZE = 62;
$PRONOUN_FONT_SIZE=20;
$print_dev = '/dev/usb/lp0';
$debug = false;
$badge = imagecreatefrompng('TDF/Badge.png');
$written_badge_path = "uploads/badge";
$written_badge_ext = ".png";
$badge_width = imagesx($badge);
$badge_height= imagesy($badge);
$margin_name_left = 126;
$margin_name_top = 94;
$margin_pron_left = 284;
$margin_pron_top = 246;
$name_field_width = 330;
$name_field_height= 98;
$pron_field_width = 172;
$pron_field_height= 32;
$font_color = imagecolorexact($badge, 0, 0, 0);
putenv('GDFONTPATH=' . realpath('.'));
$font_path = "ComicCodeMedium.otf";
$font = imageloadfont($font_path);
# adjust font size s.t. the entire name fits into the name box
$namebox = imagettfbbox($NAME_FONT_SIZE, 0, $font_path, $NAME);
while (($namebox[2] - $namebox[0]) > $name_field_width) {
$NAME_FONT_SIZE = $NAME_FONT_SIZE - 1;
$namebox = imagettfbbox($NAME_FONT_SIZE, 0, $font_path, $NAME);
}
# center the name text box
$namebox_h = $namebox[1] - $namebox[7]; # y of down left edge - y of up left edge
$namebox_y = $margin_name_top + ($name_field_height/2) + ($namebox_h/2);
imagefttext($badge, $NAME_FONT_SIZE, 0, $margin_name_left, $namebox_y, $font_color, $font_path, $NAME);
# adjust font size for the pronouns
$pronbox = imagettfbbox($PRONOUN_FONT_SIZE, 0, $font_path, $PRONOUNS);
while (($pronbox[2] - $pronbox[0]) > $pron_field_width) {
$PRONOUN_FONT_SIZE = $PRONOUN_FONT_SIZE - 1;
$pronbox = imagettfbbox($PRONOUN_FONT_SIZE, 0, $font_path, $PRONOUNS);
}
# center the pronoun text box
$pronbox_h = $pronbox[1] - $pronbox[7];
$pronbox_y = $margin_pron_top + ($pron_field_height/2) + ($pronbox_h/2);
imagefttext($badge, $PRONOUN_FONT_SIZE, 0, $margin_pron_left, $pronbox_y, $font_color, $font_path, $PRONOUNS);
# display image
//header('Content-Type: image/png');
imagefilter($badge, IMG_FILTER_GRAYSCALE);
if(imagepng($badge, $written_badge_path.$written_badge_ext)) {
imagedestroy($badge);
# convert and print image
$printable_file = $written_badge_path."_".$written_badge_ext;
$cmd_convert = "convert ".$written_badge_path.$written_badge_ext." -background white -alpha remove -compose copy_opacity -resize x720 -monochrome ".$printable_file;
#$cmd_convert = "convert uploads/badge.png -background white -alpha remove -compose copy_opacity -resize x720 -monochrome uploads/badge_.png";
#$cmd_print = "./ql570 /dev/usb/lp0 w uploads/badge_.png";
$cmd_print = "./ql570 ".$print_dev." w ".$printable_file;
$output_convert = shell_exec($cmd_convert);
$output_print = shell_exec($cmd_print);
} else {
echo "Badge could not be created";
}
} else {
echo "No name has been set";
}
}
else {
echo "GD library is not installed";
}
if($debug == false) {
header('Location: http://'.$_SERVER['HTTP_HOST']);
}
?>
<!DOCTYPE html>
<html>
<head>
<title>TDF Badges</title>
</head>
<body>
<center>
<img src='uploads/badge_.png'></img>
</body>
</html>
Loading…
Cancel
Save