Example #1
0
$context->fillTemplate($template_footer);
$footer = CCompteRendu::getSpecialModel($user, "CPatient", "[PIED DE PAGE MOZAIC]");
if ($footer->_id) {
    $footer->loadContent();
    $template_footer->renderDocument($footer->_source);
} else {
    $template_footer->document = "<p style=\"text-align:center;\">" . CMbDT::dateToLocale(CMbDT::dateTime()) . "</p>";
}
// main body
$_dispo = explode("_", $dispo);
$_dispos = explode("x", $_dispo[1]);
$cols = $_dispos[0];
$lines = $_dispos[1];
$content = "<html>\n<head>\n<style>\n  body {border:0;margin:0; position:relative;}\n  #header, #footer {position:absolute; top: 0; width:100%; overflow: hidden;}\n  #footer {top:25cm;}\n  #body {height:23cm; width:100%; border-collapse: collapse; table-layout: fixed; position: absolute; top: 2cm;}\n  #images {position:relative; width: 100%; height:100%;}\n  #body div.col {\n    position: absolute;\n    overflow: hidden;\n    line-height: 100%;\n    max-width: 100%;\n    text-align: center;\n    vertical-align: middle!important;\n  }\n\n  #images img {\n  box-shadow: 0 0 5px #b8b8b8;\n  }\n\n  #body p {\n    position:absolute;\n    bottom:0;\n    left:0;\n    width:100%;\n    text-align: center;\n  }\n\n  #body p span {\n    background-color:white;\n    border:solid 1px #6e6e6e;\n    padding:3px;\n  }\n\n  .droppable {\n    padding:4px;\n  }\n\n  #body img {max-width:100%; max-height: 100%;}\n  .nb_line_1 {height:100%;}\n  .nb_line_2 {height:50%;}\n  .nb_line_3 {height:33%;}\n\n  .nb_col_1 {width:100%;}\n  .nb_col_2 {width:50%;}\n  .nb_col_3 {width:33%;}\n\n  .line_1 {top:0;}\n  .nb_line_2.line_2 {top:50%;}\n  .nb_line_3.line_2 {top:33%;}\n  .nb_line_3.line_3 {top:66%;}\n\n  .col_1 {left:0;}\n  .nb_col_2.col_2 {left:50%;}\n  .nb_col_3.col_2 {left:33%;}\n  .nb_col_3.col_3 {left:66%;}\n\n</style>\n</head>\n<body>\n<div id=\"header\">{$template_header->document}</div>\n<div id=\"body\"><div id=\"images\">";
for ($a = 1; $a <= $lines; $a++) {
    for ($b = 1; $b <= $cols; $b++) {
        $content .= "\n    <div class=\"col nb_col_{$cols} nb_line_{$lines} col_{$b} line_{$a}\">";
        $content .= $data[$_dispo[1] . "_" . $a . "x" . $b]["file_id"] ? "<img src=\"" . $data[$_dispo[1] . "_" . $a . "x" . $b]["file_uri"] . "\" alt=\"\"/>" : null;
        $content .= $data[$_dispo[1] . "_" . $a . "x" . $b]["file_id"] ? "<p><span>" . $data[$_dispo[1] . "_" . $a . "x" . $b]["name"] . "</span></p>" : null;
        $content .= "\n    </div>";
    }
}
$content .= "\n</div>\n</div>\n<div id=\"footer\">{$template_footer->document}</div>\n</body>\n</html>";
ob_clean();
$htmltopdf = new CHtmlToPDF("CWkHtmlToPDFConverter");
$htmltopdf->generatePDF($content, $print, $cr, $file);
if ($file->_id) {
    $file->doc_size = filesize($file->_file_path);
    $file->store();
}
CApp::rip();
        /** @var $_node DOMElement */
        if ($_node->nodeName === "span" && ($_node->getAttribute("class") === "name" || $_node->getAttribute("class") === "field") && $_node->childNodes->length != 1 && $_node->firstChild && ($_node->firstChild->nodeType != XML_TEXT_NODE || !preg_match("/\\[.+\\]/", $_node->nodeValue))) {
            return true;
        }
        if ($_node->childNodes) {
            searchSpan($_node);
        }
    }
    return false;
}
$compte_rendu = new CCompteRendu();
$where = array();
$where["object_id"] = "IS NULL";
$compte_rendus = $compte_rendu->loadList($where, null, "350000");
/** @var  $compte_rendus CCompteRendu[] */
$list = array();
/** @var DOMDocument $xml */
$xml = new DOMDocument('1.0', 'iso-8859-1');
foreach ($compte_rendus as $_compte_rendu) {
    mbLog($_compte_rendu->_id);
    $_compte_rendu->loadContent();
    $content = CMbString::convertHTMLToXMLEntities($_compte_rendu->_source);
    $content = utf8_encode(CHtmlToPDF::cleanWord($content));
    $xml->loadXML("<div>" . $content . "</div>");
    if (searchSpan($xml->documentElement)) {
        $list[] = $_compte_rendu;
    }
}
$smarty = new CSmartyDP();
$smarty->assign("list", $list);
$smarty->display("inc_update_class_fields.tpl");
Example #3
0
 /**
  * Suppression des balises fonts imbriquées
  *  
  * @param DOMNode &$node noeud à parcourir
  * 
  * @return void
  */
 function recursiveRemoveNestedFont(DOMNode &$node)
 {
     if (!$node->hasChildNodes()) {
         return;
     }
     foreach ($node->childNodes as $child) {
         /** @var DOMElement $node->firstChild */
         if ($node->nodeName == "font" && $child->nodeName == "font" && $node->firstChild && $node->firstChild === $node->lastChild) {
             if ($node->firstChild->getAttribute("family") == "") {
                 $node->firstChild->setAttribute("family", $node->getAttribute("family"));
             }
             $child = $node->removeChild($node->firstChild);
             $parent = $node->parentNode;
             $parent->insertBefore($child, $node);
             $parent->removeChild($node);
         }
         CHtmlToPDF::recursiveRemoveNestedFont($child);
     }
 }
Example #4
0
     $file->file_type = "application/pdf";
     $file->author_id = $user_id;
     $file->fillFields();
     $file->updateFormFields();
     $file->forceDir();
 }
 if ($file->_id && !file_exists($file->_file_path)) {
     $file->forceDir();
 }
 $file->file_name = $compte_rendu->nom . ".pdf";
 $c1 = preg_replace("!\\s!", '', $save_content);
 $c2 = preg_replace("!\\s!", '', $compte_rendu->_source);
 // Si la source envoyée et celle présente en base sont différentes, on regénère le PDF
 // Suppression des espaces, tabulations, retours chariots et sauts de lignes pour effectuer le md5
 if ($compte_rendu->valide || md5($c1) != md5($c2) || !$file->_id || !file_exists($file->_file_path) || file_get_contents($file->_file_path) == "") {
     $htmltopdf = new CHtmlToPDF($compte_rendu->factory);
     $content = CCompteRendu::restoreId($content);
     $htmltopdf->generatePDF($content, 0, $compte_rendu, $file);
     $file->doc_size = filesize($file->_file_path);
 }
 // Il peut y avoir plusieurs cfiles pour un même compte-rendu, à cause
 // de n requêtes simultanées pour la génération du pdf.
 // On supprime donc les autres cfiles.
 $compte_rendu->loadRefsFiles();
 $files = $compte_rendu->_ref_files;
 if ($file->_id) {
     unset($files[$file->_id]);
 }
 foreach ($files as $_file) {
     $_file->delete();
 }
 /**
  * Stream document for object
  *
  * @param CCompteRendu $compte_rendu Document
  * @param CMbObject    $object       Object
  * @param string       $factory      Factory name
  *
  * @return void
  */
 static function streamDocForObject($compte_rendu, $object, $factory = null)
 {
     ob_clean();
     $template = new CTemplateManager();
     $source = $compte_rendu->getFullContentFromModel();
     $object->fillTemplate($template);
     $template->renderDocument($source);
     $htmltopdf = new CHtmlToPDF($factory);
     $htmltopdf->generatePDF($template->document, 1, $compte_rendu, new CFile());
     CApp::rip();
 }
Example #6
0
<?php

/**
 * $Id$
 *
 * @package    Mediboard
 * @subpackage System
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 */
$data = CValue::post("data");
$filename = CValue::post("filename", "data");
$data = stripslashes($data);
// @todo Inclure la CSS de MB
$data = "\r\n<html>\r\n  <head>\r\n    <title>{$filename}</title>\r\n    <style type=\"text/css\">\r\n    \r\n      " . file_get_contents("style/mediboard/htmlarea.css") . "\r\n      \r\n      table.tbl th,\r\n      table.tbl td {\r\n        padding: 0.5pt; \r\n      }\r\n      \r\n      .not-printable {\r\n        display: none; \r\n      }\r\n    </style>\r\n  </head>\r\n  <body>{$data}</body>\r\n</html>";
$file = new CFile();
$file->file_name = $filename;
$cr = new CCompteRendu();
$cr->_page_format = "A4";
$cr->_orientation = "landscape";
$convert = new CHtmlToPDF();
@$convert->generatePDF($data, 1, $cr, $file);