Developing a site for my company, a site was developed that is exported to PDF using DOMPDF, being the only difficulty to save it in the company's servers, or in dropbox, Google Drive, OneDrive or an FTP folder. How can I do this using PHP, mysql and javascript?
Here is the content of the index:
INDEX.PHP
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Formulario de Visita</title>
<script src="js/modernizr.min.js" type="text/javascript"></script>
<link rel='stylesheet prefetch' href='css/bootstrap.min.css'>
<link rel='stylesheet prefetch' href='css/bootstrap-theme.min.css'>
<link rel='stylesheet prefetch' href='css/bootstrapValidator.min.css'>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="form-group" id="section-to-print">
<div class="container">
<form class="well form-horizontal" method="post" id="in.php">
<fieldset>
<legend><img src="img/1.png" width="auto" height="65" alt="Imagen Electrónica" /></legend>
<!-- Información Formulario -->
<div class="form-group">
<label class="col-md-4 control-label">Información del Formulario</label>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Nombre y dirección del Cliente</label>
<div class="col-md-4 inputGroupContainer col-lg-7">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-home"></i></span>
<select name="empresa" class="form-control selectpicker">
<option value=" ">Seleccione el cliente de esta lista</option>
<?php
$consulta=mysql_query("SELECT * FROM clientes");
while($dato=mysql_fetch_array($consulta)){
?>
<option><?php echo $dato["Nombre"].', '.$dato["direccion"]; ?></option>
<?php
}
?>
</select>
</div>
</div>
</div>
<!-- Información Entrada -->
<div class="form-group">
<label class="col-md-4 control-label">Información - Entrada</label>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Fecha</label>
<div class="col-md-4 inputGroupContainer col-lg-2 col-lg-offset-0">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>
<input name="fechaent" class="form-control" type="date">
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Hora</label>
<div class="col-md-4 inputGroupContainer col-lg-2">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>
<input class="hentrada" id="event_start_time" name="event[start_time]" type="time" />
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Técnico</label>
<div class="col-md-4 inputGroupContainer">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
<input name="tecnico" placeholder="Correo del Técnico" class="form-control" type="text">
</div>
</div>
</div>
<!-- Información Salida -->
<div class="form-group">
<label class="col-md-4 control-label">Información - Salida</label>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Hora Salida</label>
<div class="col-md-4 inputGroupContainer col-lg-2">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>
<input class="hsalida" id="event_start_time" name="event[end_time]" type="time" />
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Razón de la Visita</label>
<div class="col-md-4 inputGroupContainer">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
<textarea class="form-control" name="razonvisita" placeholder="Describa el objetivo del cliente con su visita acá"></textarea>
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Trabajo Realizado</label>
<div class="col-md-4 inputGroupContainer">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
<textarea class="form-control" name="trabajorealizado" placeholder="Describa el trabajo que realizó durante la visita."></textarea>
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Comentarios</label>
<div class="col-md-4 inputGroupContainer">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
<textarea class="form-control" name="comentarios" placeholder=""></textarea>
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Firma 1</label>
<div class="col-md-4 selectContainer col-lg-3">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-edit"></i></span>
<script src="js/sign.js" name="firma1"></script>
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Firma 2</label>
<div class="col-md-4 selectContainer col-lg-3">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-edit"></i></span>
<script src="js/sign.js" name="firma2"></script>
</div>
</div>
</div>
<script src="js/index.js"></script>
<div class="form-group">
<label class="col-md-4 control-label"></label>
<div class="col-md-4">
<button type="submit" class="btn btn-warning" id="print" action="print_pdf.php" name="crear"> Enviar (PDF) <span class="glyphicon glyphicon-edit"></span></button>
<button type="submit" class="btn btn-warning" name='submit' value='submit'> Enviar (XML) <span class="glyphicon glyphicon-save"></span></button>
</div>
</div>
</fieldset>
</form>
</div>
</div>
<!-- /.container -->
<script src='js/jquery.min.js'></script>
<script src='js/bootstrap.min.js'></script>
<script src='js/bootstrapvalidator.min.js'></script>
<script src="js/index.js"></script>
</body>
</html>
index.php
is the site accessible to users, where they will enter the information, and then in.php
, generated by the PDF.
<?php
require_once("dompdf/dompdf_config.inc.php");
session_start();
if($_POST){
$empresa= $_POST["empresa"];
$fechaent= $_POST["fechaent"];
$horaent= $_POST["hentrada"];
$tecnico= $_POST["tecnico"];
$horasal= $_POST["hsalida"];
$rvisita= $_POST["razonvisita"];
$comentarios= $_POST["comentarios"];
$trabajor= $_POST["trabajorealizado"];
}
$codigoHTML='
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Formulario de Visita</title>
<link rel="Stylesheet" href="http://yui.yahooapis.com/3.3.0/build/cssreset/reset-min.css">
<style>
#wrap { margin:10px auto; width:600px; font-family:sans-serif; color:#000000; cursor:default; background-color:#eee;}
h1 { font-size:40px; text-align:center; font-weight:bold; margin-bottom:10px; text-shadow:0 0 3px #ddd; }
h2 { font-size:15px; text-align:left; font-weight:bold; margin-bottom:10px; }
h3 { font-size:20px; text-align:left; font-weight:bold; margin-bottom:10px; text-shadow:0 0 3px #ddd; }
pre {background-color:#eee; font-family:Arial; margin-left:50px; margin-right:50px;}
p.demo { background-color:orange; width:100px; margin:10px 0; font-family:Arial; }
</style>
</head>
<body>
<div class="form-group" id="wrap">
<legend><img src="img/1.png" width="auto" height="65" alt="Imagen Electrónica" /></legend>
<hr>
<!-- Información Formulario -->
<h3>Información del Formulario</h3>
<pre style="white-space:normal">
<div class="form-group">
<form>
<b>Nombre de la Empresa: </b>
<br>'
;$codigoHTML.=''."$empresa".'';$codigoHTML.='
</form>
</div>
</pre>
<hr>
<!-- Información Entrada -->
<h3>Información Entrada</h3>
<pre style="white-space:normal">
<div class="form-group">
<form>
<b>Fecha de Entrada: </b>';$codigoHTML.=''."$fechaent".'';$codigoHTML.='
</form>
<br>
<form>
<b>Hora de Entrada: </b>';$codigoHTML.=''."$horaent".'';$codigoHTML.='
</form>
<br>
<form>
<b>Tecnico asignado: </b>';$codigoHTML.=''."$tecnico".'';$codigoHTML.='
</form>
</div>
</pre>
<hr>
<!-- Información Salida -->
<h3>Información Salida</h3>
<pre style="white-space:normal">
<div class="form-group">
<form>
<b>Hora de Salida: </b>';$codigoHTML.=''."$horasal".'';$codigoHTML.='
</form>
<br>
<form>
<b>Razón de la Visita: </b>';$codigoHTML.=''."$rvisita".'';$codigoHTML.='
</form>
<br>
<form>
<b>Trabajo Realizado: </b>';$codigoHTML.=''."$trabajor".'';$codigoHTML.='
</form>
<br>
<form>
<b>Comentarios: </b>';$codigoHTML.=''."$comentarios".'';$codigoHTML.='
</form>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Firma 1</label>
<div class="col-md-4 selectContainer col-lg-3">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-edit"></i></span>
<script src="js/sign.js" name="firma1"></script>
</div>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Firma 2</label>
<div class="col-md-4 selectContainer col-lg-3">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-edit"></i></span>
<script src="js/sign.js" name="firma2"></script>
</div>
</div>
</div>
</pre>
<script src="js/index.js"></script>
</fieldset>
</form>
</div>
</div>
<!-- /.container -->
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/bootstrapvalidator.min.js"></script>
<script src="js/index.js"></script>
</body>
</html>';
$codigoHTML=utf8_decode($codigoHTML);
$dompdf=new DOMPDF();
$dompdf->load_html($codigoHTML);
ini_set("memory_limit","128M");
$dompdf->render();
$dompdf->stream($tecnico."-".$fechaent.".pdf");
?>
With $dompdf->stream($tecnico."-".$fechaent.".pdf");
the PDF is generated, but where can I specify the location of the file - in case I decide to save everything on the local server, - or the FTP address?
Update
With these lines of code, I managed to generate a PDF, however, it is an empty PDF of 0 KB.
$dompdf->render();
$pdf=$dompdf->stream($tecnico."-".$fechaent.".pdf");
file_put_contents("forms/", $pdf);
What am I doing wrong?