PO pdf changes

This commit is contained in:
venbatechnologies@gmail.com 2017-09-18 13:45:24 +05:30
parent 9828d77cec
commit b0668ec8f3
114 changed files with 142952 additions and 33023 deletions

View File

@ -452,7 +452,7 @@ class purchaseorder extends BaseController
$CapitalRange = $_GET['CapitalRange']; $CapitalRange = $_GET['CapitalRange'];
$CapitalAvlBudget = $this->purchaseorder_model->GetAvailableCapitalBudgetAmount($CostCode,$FYdt,$ReqType); $CapitalAvlBudget = $this->purchaseorder_model->GetAvailableCapitalBudgetAmount($CostCode,$FYdt,$ReqType);
print_r($CapitalAvlBudget);die();
if(count($CapitalAvlBudget)>0) if(count($CapitalAvlBudget)>0)
{ {

View File

@ -169,7 +169,7 @@ class storerequisitionlist extends BaseController
$Remarks=$this->input->post('Remarks'.$i); $Remarks=$this->input->post('Remarks'.$i);
$Request = array('MaterialCode'=>$MaterialCode,'Status'=>$StoreItemStatus ,'QuantityRequired'=>$QuantityRequired,'Remarks'=>$Remarks,'StoreReqNo'=>$StoreReqNo); $Request = array('MaterialCode'=>$MaterialCode,'Status'=>$StoreItemStatus ,'QuantityRequired'=>$QuantityRequired,'Remarks'=>$Remarks,'StoreReqNo'=>$StoreReqNo);
print_r($Request);
$addReq=$this->storerequistion_model->addstoreRequistion($Request); $addReq=$this->storerequistion_model->addstoreRequistion($Request);
} }

View File

@ -0,0 +1,479 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); ?>
ERROR - 2017-09-18 09:08:03 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:08:03 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:09:50 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:09:50 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:15:04 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:15:04 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:15:52 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:15:52 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:18:11 --> Severity: Warning --> mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given /opt/lampp/htdocs/18septsymbol/siddharth_application/system/database/drivers/mysqli/mysqli_result.php 38
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:19:40 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:19:40 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:19:40 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:20:54 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:20:54 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:20:54 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:21:16 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:21:16 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:21:16 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:21:18 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:21:18 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:22:12 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:22:12 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:23:16 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:23:16 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:24:53 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:24:53 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:25:22 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:25:22 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:25:23 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:25:23 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:25:24 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:25:24 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:25:50 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:25:50 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:25:51 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:25:51 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:25:52 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:25:52 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:25:53 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:25:53 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:27:04 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:27:04 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:27:05 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:27:05 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:27:07 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:27:07 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:27:09 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:27:09 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:27:11 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:27:11 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:37:38 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:37:38 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:40:48 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:40:48 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:41:45 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:41:45 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:42:07 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:42:07 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:43:02 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:43:02 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:43:48 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:43:48 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:44:10 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:44:10 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:44:46 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:44:46 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:45:31 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:45:31 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:46:46 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:46:46 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:47:35 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:47:35 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:48:38 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:48:38 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:49:27 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:49:27 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:49:42 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:49:42 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:50:12 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:50:12 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:50:12 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 409
ERROR - 2017-09-18 09:50:12 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:50:12 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:50:12 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 410
ERROR - 2017-09-18 09:50:12 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:50:12 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:50:12 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:50:12 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:50:12 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 417
ERROR - 2017-09-18 09:50:12 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:50:12 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:50:34 --> Severity: Notice --> Undefined variable: index /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/servicepopdf.php 320
ERROR - 2017-09-18 09:50:34 --> Severity: Notice --> Undefined variable: PaymentTerms /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/servicepopdf.php 431
ERROR - 2017-09-18 09:50:34 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:50:34 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:50:52 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:50:52 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:54:41 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:54:41 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 426
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 426
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 426
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 427
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 427
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 427
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 426
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 426
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 426
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 427
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 427
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 427
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:07 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:08 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:55:08 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 426
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 426
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 426
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 427
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 427
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 427
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 426
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 426
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 426
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 427
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 427
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 427
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:33 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:33 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:55:33 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:55:36 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 426
ERROR - 2017-09-18 09:55:36 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 426
ERROR - 2017-09-18 09:55:36 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 426
ERROR - 2017-09-18 09:55:36 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 427
ERROR - 2017-09-18 09:55:36 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 427
ERROR - 2017-09-18 09:55:36 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 427
ERROR - 2017-09-18 09:55:36 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:36 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:36 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:36 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:36 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 434
ERROR - 2017-09-18 09:55:36 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:55:36 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 424
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 424
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 424
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 425
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 425
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 425
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 424
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 424
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 424
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 425
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 425
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 425
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:56:31 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:56:32 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:56:32 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 424
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 424
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 424
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 425
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 425
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 425
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 424
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 424
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 424
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 425
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 425
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 425
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:57:44 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 432
ERROR - 2017-09-18 09:57:44 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:57:44 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 09:59:43 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 09:59:44 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 09:59:44 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:00:18 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:00:18 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:00:18 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:01:01 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:01:01 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:01:01 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:22 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:22 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:02:22 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:46 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:02:46 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:02:46 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:03:29 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:03:29 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:03:29 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:07:56 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:07:56 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:07:56 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:07:58 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:07:58 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:08:05 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:08:05 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:08:45 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:08:45 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:09:50 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:09:50 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:10:21 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:10:21 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:11:55 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:11:55 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$DiscountType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 429
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$PackagingType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 430
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:11:57 --> Severity: Notice --> Undefined property: stdClass::$FreightType /opt/lampp/htdocs/18septsymbol/siddharth_application/application/views/revenuepopdf.php 437
ERROR - 2017-09-18 10:11:57 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:11:57 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:11:58 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697
ERROR - 2017-09-18 10:11:58 --> Severity: Warning --> DOMXPath::query(): Invalid expression /opt/lampp/htdocs/18septsymbol/siddharth_application/application/third_party/dompdf/include/stylesheet.cls.php 697

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -566,5 +566,5 @@
), ),
'CIDtoGID_Compressed' => true, 'CIDtoGID_Compressed' => true,
'CIDtoGID' => 'eJwDAAAAAAE=', 'CIDtoGID' => 'eJwDAAAAAAE=',
'_version_' => 4, '_version_' => 6,
); );

View File

@ -566,5 +566,5 @@
), ),
'CIDtoGID_Compressed' => true, 'CIDtoGID_Compressed' => true,
'CIDtoGID' => 'eJwDAAAAAAE=', 'CIDtoGID' => 'eJwDAAAAAAE=',
'_version_' => 4, '_version_' => 6,
); );

View File

@ -1,92 +1,111 @@
<?php return array ( <?php return array (
'sans-serif' => array ( 'sans-serif' =>
'normal' => DOMPDF_FONT_DIR . 'Helvetica', array (
'bold' => DOMPDF_FONT_DIR . 'Helvetica-Bold', 'normal' => DOMPDF_DIR . '/lib/fonts/Helvetica',
'italic' => DOMPDF_FONT_DIR . 'Helvetica-Oblique', 'bold' => DOMPDF_DIR . '/lib/fonts/Helvetica-Bold',
'bold_italic' => DOMPDF_FONT_DIR . 'Helvetica-BoldOblique' 'italic' => DOMPDF_DIR . '/lib/fonts/Helvetica-Oblique',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Helvetica-BoldOblique',
), ),
'times' => array ( 'times' =>
'normal' => DOMPDF_FONT_DIR . 'Times-Roman', array (
'bold' => DOMPDF_FONT_DIR . 'Times-Bold', 'normal' => DOMPDF_DIR . '/lib/fonts/Times-Roman',
'italic' => DOMPDF_FONT_DIR . 'Times-Italic', 'bold' => DOMPDF_DIR . '/lib/fonts/Times-Bold',
'bold_italic' => DOMPDF_FONT_DIR . 'Times-BoldItalic' 'italic' => DOMPDF_DIR . '/lib/fonts/Times-Italic',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Times-BoldItalic',
), ),
'times-roman' => array ( 'times-roman' =>
'normal' => DOMPDF_FONT_DIR . 'Times-Roman', array (
'bold' => DOMPDF_FONT_DIR . 'Times-Bold', 'normal' => DOMPDF_DIR . '/lib/fonts/Times-Roman',
'italic' => DOMPDF_FONT_DIR . 'Times-Italic', 'bold' => DOMPDF_DIR . '/lib/fonts/Times-Bold',
'bold_italic' => DOMPDF_FONT_DIR . 'Times-BoldItalic' 'italic' => DOMPDF_DIR . '/lib/fonts/Times-Italic',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Times-BoldItalic',
), ),
'courier' => array ( 'courier' =>
'normal' => DOMPDF_FONT_DIR . 'Courier', array (
'bold' => DOMPDF_FONT_DIR . 'Courier-Bold', 'normal' => DOMPDF_DIR . '/lib/fonts/Courier',
'italic' => DOMPDF_FONT_DIR . 'Courier-Oblique', 'bold' => DOMPDF_DIR . '/lib/fonts/Courier-Bold',
'bold_italic' => DOMPDF_FONT_DIR . 'Courier-BoldOblique' 'italic' => DOMPDF_DIR . '/lib/fonts/Courier-Oblique',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Courier-BoldOblique',
), ),
'helvetica' => array ( 'helvetica' =>
'normal' => DOMPDF_FONT_DIR . 'Helvetica', array (
'bold' => DOMPDF_FONT_DIR . 'Helvetica-Bold', 'normal' => DOMPDF_DIR . '/lib/fonts/Helvetica',
'italic' => DOMPDF_FONT_DIR . 'Helvetica-Oblique', 'bold' => DOMPDF_DIR . '/lib/fonts/Helvetica-Bold',
'bold_italic' => DOMPDF_FONT_DIR . 'Helvetica-BoldOblique' 'italic' => DOMPDF_DIR . '/lib/fonts/Helvetica-Oblique',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Helvetica-BoldOblique',
), ),
'zapfdingbats' => array ( 'zapfdingbats' =>
'normal' => DOMPDF_FONT_DIR . 'ZapfDingbats', array (
'bold' => DOMPDF_FONT_DIR . 'ZapfDingbats', 'normal' => DOMPDF_DIR . '/lib/fonts/ZapfDingbats',
'italic' => DOMPDF_FONT_DIR . 'ZapfDingbats', 'bold' => DOMPDF_DIR . '/lib/fonts/ZapfDingbats',
'bold_italic' => DOMPDF_FONT_DIR . 'ZapfDingbats' 'italic' => DOMPDF_DIR . '/lib/fonts/ZapfDingbats',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/ZapfDingbats',
), ),
'symbol' => array ( 'symbol' =>
'normal' => DOMPDF_FONT_DIR . 'Symbol', array (
'bold' => DOMPDF_FONT_DIR . 'Symbol', 'normal' => DOMPDF_DIR . '/lib/fonts/Symbol',
'italic' => DOMPDF_FONT_DIR . 'Symbol', 'bold' => DOMPDF_DIR . '/lib/fonts/Symbol',
'bold_italic' => DOMPDF_FONT_DIR . 'Symbol' 'italic' => DOMPDF_DIR . '/lib/fonts/Symbol',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Symbol',
), ),
'serif' => array ( 'serif' =>
'normal' => DOMPDF_FONT_DIR . 'Times-Roman', array (
'bold' => DOMPDF_FONT_DIR . 'Times-Bold', 'normal' => DOMPDF_DIR . '/lib/fonts/Times-Roman',
'italic' => DOMPDF_FONT_DIR . 'Times-Italic', 'bold' => DOMPDF_DIR . '/lib/fonts/Times-Bold',
'bold_italic' => DOMPDF_FONT_DIR . 'Times-BoldItalic' 'italic' => DOMPDF_DIR . '/lib/fonts/Times-Italic',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Times-BoldItalic',
), ),
'monospace' => array ( 'monospace' =>
'normal' => DOMPDF_FONT_DIR . 'Courier', array (
'bold' => DOMPDF_FONT_DIR . 'Courier-Bold', 'normal' => DOMPDF_DIR . '/lib/fonts/Courier',
'italic' => DOMPDF_FONT_DIR . 'Courier-Oblique', 'bold' => DOMPDF_DIR . '/lib/fonts/Courier-Bold',
'bold_italic' => DOMPDF_FONT_DIR . 'Courier-BoldOblique' 'italic' => DOMPDF_DIR . '/lib/fonts/Courier-Oblique',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/Courier-BoldOblique',
), ),
'fixed' => array ( 'fixed' =>
'normal' => DOMPDF_FONT_DIR . 'Courier', array (
'bold' => DOMPDF_FONT_DIR . 'Courier-Bold', 'normal' => DOMPDF_DIR . '/lib/fonts/Courier',
'italic' => DOMPDF_FONT_DIR . 'Courier-Oblique', 'bold' => DOMPDF_DIR . '/lib/fonts/Courier-Bold',
'bold_italic' => DOMPDF_FONT_DIR . 'Courier-BoldOblique' 'italic' => DOMPDF_DIR . '/lib/fonts/Courier-Oblique',
) 'bold_italic' => DOMPDF_DIR . '/lib/fonts/Courier-BoldOblique',
) ),
'dejavu sans' =>
/* The proper way for web browser environment independent font handling in html/css is, array (
* to defining a font search path ending in serif, sans-serif, or monospace, e.g.: 'bold' => DOMPDF_DIR . '/lib/fonts/DejaVuSans-Bold',
* <style>body {font-family: Verdana,Arial,Helvetica,sans-serif;}</style> 'bold_italic' => DOMPDF_DIR . '/lib/fonts/DejaVuSans-BoldOblique',
* 'italic' => DOMPDF_DIR . '/lib/fonts/DejaVuSans-Oblique',
* For more satisfying results on html files without proper font search path, 'normal' => DOMPDF_DIR . '/lib/fonts/DejaVuSans',
* popular fonts which are candidates for further font aliases similar to ),
* 'sans-serif' and 'helvetica' above might be: 'dejavu sans light' =>
* array (
* See 'normal' => DOMPDF_DIR . '/lib/fonts/DejaVuSans-ExtraLight',
* http://www.codestyle.org/css/font-family/index.shtml ),
* http://mondaybynoon.com/2007/04/02/linux-font-equivalents-to-popular-web-typefaces/ 'dejavu sans condensed' =>
* C:\Windows\Fonts array (
* 'bold' => DOMPDF_DIR . '/lib/fonts/DejaVuSansCondensed-Bold',
* Times: 'bold_italic' => DOMPDF_DIR . '/lib/fonts/DejaVuSansCondensed-BoldOblique',
* serif, times, times-roman, times, times new roman, georgia, garamond, ms reference serif, 'italic' => DOMPDF_DIR . '/lib/fonts/DejaVuSansCondensed-Oblique',
* palatino, palatino linotype, dejavu serif, freeserif, liberation serif, luxi serif, 'normal' => DOMPDF_DIR . '/lib/fonts/DejaVuSansCondensed',
* century schoolbook, new century schoolbook ),
* 'dejavu sans mono' =>
* Helvetica: array (
* sans-serif, helvetica, helvetica, microsoft sans serif, verdana, arial, tahoma, 'bold' => DOMPDF_DIR . '/lib/fonts/DejaVuSansMono-Bold',
* trebuchet ms, lucida sans, ms reference sans serif, lucida grande, freesans, 'bold_italic' => DOMPDF_DIR . '/lib/fonts/DejaVuSansMono-BoldOblique',
* liberation sans, dejavu sans, luxi sans, lucida 'italic' => DOMPDF_DIR . '/lib/fonts/DejaVuSansMono-Oblique',
* 'normal' => DOMPDF_DIR . '/lib/fonts/DejaVuSansMono',
* Courier: ),
* monospace, fixed, courier, courier new, lucida console, lucida sans typewriter, freeMono, 'dejavu serif' =>
* fixed, terminal, dejavu sans mono, liberation mono, luxi mono array (
*/ 'bold' => DOMPDF_DIR . '/lib/fonts/DejaVuSerif-Bold',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/DejaVuSerif-BoldItalic',
?> 'italic' => DOMPDF_DIR . '/lib/fonts/DejaVuSerif-Italic',
'normal' => DOMPDF_DIR . '/lib/fonts/DejaVuSerif',
),
'dejavu serif condensed' =>
array (
'bold' => DOMPDF_DIR . '/lib/fonts/DejaVuSerifCondensed-Bold',
'bold_italic' => DOMPDF_DIR . '/lib/fonts/DejaVuSerifCondensed-BoldItalic',
'italic' => DOMPDF_DIR . '/lib/fonts/DejaVuSerifCondensed-Italic',
'normal' => DOMPDF_DIR . '/lib/fonts/DejaVuSerifCondensed',
),
) ?>

View File

@ -1 +1 @@
<span style='color: #900'>8,192 KB</span> <span style='color: #090'>238.9209 ms</span><br /> <span style='color: #900'>2,048 KB</span> <span style='color: #090'>577.3940 ms</span><br />

View File

@ -0,0 +1,114 @@
<?php
// warning: this file is encoded in UTF-8!
class HTML5_Data
{
// at some point this should be moved to a .ser file. Another
// possible optimization is to give UTF-8 bytes, not Unicode
// codepoints
// XXX: Not quite sure why it's named this; this is
// actually the numeric entity dereference table.
protected static $realCodepointTable = array(
0x00 => 0xFFFD, // REPLACEMENT CHARACTER
0x0D => 0x000A, // LINE FEED (LF)
0x80 => 0x20AC, // EURO SIGN ('€')
0x81 => 0x0081, // <control>
0x82 => 0x201A, // SINGLE LOW-9 QUOTATION MARK ('')
0x83 => 0x0192, // LATIN SMALL LETTER F WITH HOOK ('ƒ')
0x84 => 0x201E, // DOUBLE LOW-9 QUOTATION MARK ('„')
0x85 => 0x2026, // HORIZONTAL ELLIPSIS ('…')
0x86 => 0x2020, // DAGGER ('†')
0x87 => 0x2021, // DOUBLE DAGGER ('‡')
0x88 => 0x02C6, // MODIFIER LETTER CIRCUMFLEX ACCENT ('ˆ')
0x89 => 0x2030, // PER MILLE SIGN ('‰')
0x8A => 0x0160, // LATIN CAPITAL LETTER S WITH CARON ('Š')
0x8B => 0x2039, // SINGLE LEFT-POINTING ANGLE QUOTATION MARK ('')
0x8C => 0x0152, // LATIN CAPITAL LIGATURE OE ('Œ')
0x8D => 0x008D, // <control>
0x8E => 0x017D, // LATIN CAPITAL LETTER Z WITH CARON ('Ž')
0x8F => 0x008F, // <control>
0x90 => 0x0090, // <control>
0x91 => 0x2018, // LEFT SINGLE QUOTATION MARK ('')
0x92 => 0x2019, // RIGHT SINGLE QUOTATION MARK ('')
0x93 => 0x201C, // LEFT DOUBLE QUOTATION MARK ('“')
0x94 => 0x201D, // RIGHT DOUBLE QUOTATION MARK ('”')
0x95 => 0x2022, // BULLET ('•')
0x96 => 0x2013, // EN DASH ('')
0x97 => 0x2014, // EM DASH ('—')
0x98 => 0x02DC, // SMALL TILDE ('˜')
0x99 => 0x2122, // TRADE MARK SIGN ('™')
0x9A => 0x0161, // LATIN SMALL LETTER S WITH CARON ('š')
0x9B => 0x203A, // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK ('')
0x9C => 0x0153, // LATIN SMALL LIGATURE OE ('œ')
0x9D => 0x009D, // <control>
0x9E => 0x017E, // LATIN SMALL LETTER Z WITH CARON ('ž')
0x9F => 0x0178, // LATIN CAPITAL LETTER Y WITH DIAERESIS ('Ÿ')
);
protected static $namedCharacterReferences;
protected static $namedCharacterReferenceMaxLength;
/**
* Returns the "real" Unicode codepoint of a malformed character
* reference.
*/
public static function getRealCodepoint($ref) {
if (!isset(self::$realCodepointTable[$ref])) return false;
else return self::$realCodepointTable[$ref];
}
public static function getNamedCharacterReferences() {
if (!self::$namedCharacterReferences) {
self::$namedCharacterReferences = unserialize(
file_get_contents(dirname(__FILE__) . '/named-character-references.ser'));
}
return self::$namedCharacterReferences;
}
/**
* Converts a Unicode codepoint to sequence of UTF-8 bytes.
* @note Shamelessly stolen from HTML Purifier, which is also
* shamelessly stolen from Feyd (which is in public domain).
*/
public static function utf8chr($code) {
/* We don't care: we live dangerously
* if($code > 0x10FFFF or $code < 0x0 or
($code >= 0xD800 and $code <= 0xDFFF) ) {
// bits are set outside the "valid" range as defined
// by UNICODE 4.1.0
return "\xEF\xBF\xBD";
}*/
$x = $y = $z = $w = 0;
if ($code < 0x80) {
// regular ASCII character
$x = $code;
} else {
// set up bits for UTF-8
$x = ($code & 0x3F) | 0x80;
if ($code < 0x800) {
$y = (($code & 0x7FF) >> 6) | 0xC0;
} else {
$y = (($code & 0xFC0) >> 6) | 0x80;
if($code < 0x10000) {
$z = (($code >> 12) & 0x0F) | 0xE0;
} else {
$z = (($code >> 12) & 0x3F) | 0x80;
$w = (($code >> 18) & 0x07) | 0xF0;
}
}
}
// set up the actual character
$ret = '';
if($w) $ret .= chr($w);
if($z) $ret .= chr($z);
if($y) $ret .= chr($y);
$ret .= chr($x);
return $ret;
}
}

View File

@ -0,0 +1,284 @@
<?php
/*
Copyright 2009 Geoffrey Sneddon <http://gsnedders.com/>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
// Some conventions:
// /* */ indicates verbatim text from the HTML 5 specification
// // indicates regular comments
class HTML5_InputStream {
/**
* The string data we're parsing.
*/
private $data;
/**
* The current integer byte position we are in $data
*/
private $char;
/**
* Length of $data; when $char === $data, we are at the end-of-file.
*/
private $EOF;
/**
* Parse errors.
*/
public $errors = array();
/**
* @param $data Data to parse
*/
public function __construct($data) {
/* Given an encoding, the bytes in the input stream must be
converted to Unicode characters for the tokeniser, as
described by the rules for that encoding, except that the
leading U+FEFF BYTE ORDER MARK character, if any, must not
be stripped by the encoding layer (it is stripped by the rule below).
Bytes or sequences of bytes in the original byte stream that
could not be converted to Unicode characters must be converted
to U+FFFD REPLACEMENT CHARACTER code points. */
// XXX currently assuming input data is UTF-8; once we
// build encoding detection this will no longer be the case
//
// We previously had an mbstring implementation here, but that
// implementation is heavily non-conforming, so it's been
// omitted.
if (extension_loaded('iconv')) {
// non-conforming
$data = @iconv('UTF-8', 'UTF-8//IGNORE', $data);
} else {
// we can make a conforming native implementation
throw new Exception('Not implemented, please install mbstring or iconv');
}
/* One leading U+FEFF BYTE ORDER MARK character must be
ignored if any are present. */
if (substr($data, 0, 3) === "\xEF\xBB\xBF") {
$data = substr($data, 3);
}
/* All U+0000 NULL characters in the input must be replaced
by U+FFFD REPLACEMENT CHARACTERs. Any occurrences of such
characters is a parse error. */
for ($i = 0, $count = substr_count($data, "\0"); $i < $count; $i++) {
$this->errors[] = array(
'type' => HTML5_Tokenizer::PARSEERROR,
'data' => 'null-character'
);
}
/* U+000D CARRIAGE RETURN (CR) characters and U+000A LINE FEED
(LF) characters are treated specially. Any CR characters
that are followed by LF characters must be removed, and any
CR characters not followed by LF characters must be converted
to LF characters. Thus, newlines in HTML DOMs are represented
by LF characters, and there are never any CR characters in the
input to the tokenization stage. */
$data = str_replace(
array(
"\0",
"\r\n",
"\r"
),
array(
"\xEF\xBF\xBD",
"\n",
"\n"
),
$data
);
/* Any occurrences of any characters in the ranges U+0001 to
U+0008, U+000B, U+000E to U+001F, U+007F to U+009F,
U+D800 to U+DFFF , U+FDD0 to U+FDEF, and
characters U+FFFE, U+FFFF, U+1FFFE, U+1FFFF, U+2FFFE, U+2FFFF,
U+3FFFE, U+3FFFF, U+4FFFE, U+4FFFF, U+5FFFE, U+5FFFF, U+6FFFE,
U+6FFFF, U+7FFFE, U+7FFFF, U+8FFFE, U+8FFFF, U+9FFFE, U+9FFFF,
U+AFFFE, U+AFFFF, U+BFFFE, U+BFFFF, U+CFFFE, U+CFFFF, U+DFFFE,
U+DFFFF, U+EFFFE, U+EFFFF, U+FFFFE, U+FFFFF, U+10FFFE, and
U+10FFFF are parse errors. (These are all control characters
or permanently undefined Unicode characters.) */
// Check PCRE is loaded.
if (extension_loaded('pcre')) {
$count = preg_match_all(
'/(?:
[\x01-\x08\x0B\x0E-\x1F\x7F] # U+0001 to U+0008, U+000B, U+000E to U+001F and U+007F
|
\xC2[\x80-\x9F] # U+0080 to U+009F
|
\xED(?:\xA0[\x80-\xFF]|[\xA1-\xBE][\x00-\xFF]|\xBF[\x00-\xBF]) # U+D800 to U+DFFFF
|
\xEF\xB7[\x90-\xAF] # U+FDD0 to U+FDEF
|
\xEF\xBF[\xBE\xBF] # U+FFFE and U+FFFF
|
[\xF0-\xF4][\x8F-\xBF]\xBF[\xBE\xBF] # U+nFFFE and U+nFFFF (1 <= n <= 10_{16})
)/x',
$data,
$matches
);
for ($i = 0; $i < $count; $i++) {
$this->errors[] = array(
'type' => HTML5_Tokenizer::PARSEERROR,
'data' => 'invalid-codepoint'
);
}
} else {
// XXX: Need non-PCRE impl, probably using substr_count
}
$this->data = $data;
$this->char = 0;
$this->EOF = strlen($data);
}
/**
* Returns the current line that the tokenizer is at.
*/
public function getCurrentLine() {
// Check the string isn't empty
if($this->EOF) {
// Add one to $this->char because we want the number for the next
// byte to be processed.
return substr_count($this->data, "\n", 0, min($this->char, $this->EOF)) + 1;
} else {
// If the string is empty, we are on the first line (sorta).
return 1;
}
}
/**
* Returns the current column of the current line that the tokenizer is at.
*/
public function getColumnOffset() {
// strrpos is weird, and the offset needs to be negative for what we
// want (i.e., the last \n before $this->char). This needs to not have
// one (to make it point to the next character, the one we want the
// position of) added to it because strrpos's behaviour includes the
// final offset byte.
$lastLine = strrpos($this->data, "\n", $this->char - 1 - strlen($this->data));
// However, for here we want the length up until the next byte to be
// processed, so add one to the current byte ($this->char).
if($lastLine !== false) {
$findLengthOf = substr($this->data, $lastLine + 1, $this->char - 1 - $lastLine);
} else {
$findLengthOf = substr($this->data, 0, $this->char);
}
// Get the length for the string we need.
if(extension_loaded('iconv')) {
return iconv_strlen($findLengthOf, 'utf-8');
} elseif(extension_loaded('mbstring')) {
return mb_strlen($findLengthOf, 'utf-8');
} elseif(extension_loaded('xml')) {
return strlen(utf8_decode($findLengthOf));
} else {
$count = count_chars($findLengthOf);
// 0x80 = 0x7F - 0 + 1 (one added to get inclusive range)
// 0x33 = 0xF4 - 0x2C + 1 (one added to get inclusive range)
return array_sum(array_slice($count, 0, 0x80)) +
array_sum(array_slice($count, 0xC2, 0x33));
}
}
/**
* Retrieve the currently consume character.
* @note This performs bounds checking
*/
public function char() {
return ($this->char++ < $this->EOF)
? $this->data[$this->char - 1]
: false;
}
/**
* Get all characters until EOF.
* @note This performs bounds checking
*/
public function remainingChars() {
if($this->char < $this->EOF) {
$data = substr($this->data, $this->char);
$this->char = $this->EOF;
return $data;
} else {
return false;
}
}
/**
* Matches as far as possible until we reach a certain set of bytes
* and returns the matched substring.
* @param $bytes Bytes to match.
*/
public function charsUntil($bytes, $max = null) {
if ($this->char < $this->EOF) {
if ($max === 0 || $max) {
$len = strcspn($this->data, $bytes, $this->char, $max);
} else {
$len = strcspn($this->data, $bytes, $this->char);
}
$string = (string) substr($this->data, $this->char, $len);
$this->char += $len;
return $string;
} else {
return false;
}
}
/**
* Matches as far as possible with a certain set of bytes
* and returns the matched substring.
* @param $bytes Bytes to match.
*/
public function charsWhile($bytes, $max = null) {
if ($this->char < $this->EOF) {
if ($max === 0 || $max) {
$len = strspn($this->data, $bytes, $this->char, $max);
} else {
$len = strspn($this->data, $bytes, $this->char);
}
$string = (string) substr($this->data, $this->char, $len);
$this->char += $len;
return $string;
} else {
return false;
}
}
/**
* Unconsume one character.
*/
public function unget() {
if ($this->char <= $this->EOF) {
$this->char--;
}
}
}

View File

@ -0,0 +1,36 @@
<?php
require_once dirname(__FILE__) . '/Data.php';
require_once dirname(__FILE__) . '/InputStream.php';
require_once dirname(__FILE__) . '/TreeBuilder.php';
require_once dirname(__FILE__) . '/Tokenizer.php';
/**
* Outwards facing interface for HTML5.
*/
class HTML5_Parser
{
/**
* Parses a full HTML document.
* @param $text HTML text to parse
* @param $builder Custom builder implementation
* @return Parsed HTML as DOMDocument
*/
static public function parse($text, $builder = null) {
$tokenizer = new HTML5_Tokenizer($text, $builder);
$tokenizer->parse();
return $tokenizer->save();
}
/**
* Parses an HTML fragment.
* @param $text HTML text to parse
* @param $context String name of context element to pretend parsing is in.
* @param $builder Custom builder implementation
* @return Parsed HTML as DOMDocument
*/
static public function parseFragment($text, $context = null, $builder = null) {
$tokenizer = new HTML5_Tokenizer($text, $builder);
$tokenizer->parseFragment($context);
return $tokenizer->save();
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,217 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib;
use FontLib\Table\Type\name;
use FontLib\TrueType\File;
/**
* Adobe Font Metrics file creation utility class.
*
* @package php-font-lib
*/
class AdobeFontMetrics {
private $f;
/**
* @var File
*/
private $font;
function __construct(File $font) {
$this->font = $font;
}
function write($file, $encoding = null) {
$map_data = array();
if ($encoding) {
$encoding = preg_replace("/[^a-z0-9-_]/", "", $encoding);
$map_file = dirname(__FILE__) . "/../maps/$encoding.map";
if (!file_exists($map_file)) {
throw new \Exception("Unkown encoding ($encoding)");
}
$map = new EncodingMap($map_file);
$map_data = $map->parse();
}
$this->f = fopen($file, "w+");
$font = $this->font;
$this->startSection("FontMetrics", 4.1);
$this->addPair("Notice", "Converted by PHP-font-lib");
$this->addPair("Comment", "https://github.com/PhenX/php-font-lib");
$encoding_scheme = ($encoding ? $encoding : "FontSpecific");
$this->addPair("EncodingScheme", $encoding_scheme);
$records = $font->getData("name", "records");
foreach ($records as $id => $record) {
if (!isset(name::$nameIdCodes[$id]) || preg_match("/[\r\n]/", $record->string)) {
continue;
}
$this->addPair(name::$nameIdCodes[$id], $record->string);
}
$os2 = $font->getData("OS/2");
$this->addPair("Weight", ($os2["usWeightClass"] > 400 ? "Bold" : "Medium"));
$post = $font->getData("post");
$this->addPair("ItalicAngle", $post["italicAngle"]);
$this->addPair("IsFixedPitch", ($post["isFixedPitch"] ? "true" : "false"));
$this->addPair("UnderlineThickness", $font->normalizeFUnit($post["underlineThickness"]));
$this->addPair("UnderlinePosition", $font->normalizeFUnit($post["underlinePosition"]));
$hhea = $font->getData("hhea");
if (isset($hhea["ascent"])) {
$this->addPair("FontHeightOffset", $font->normalizeFUnit($hhea["lineGap"]));
$this->addPair("Ascender", $font->normalizeFUnit($hhea["ascent"]));
$this->addPair("Descender", $font->normalizeFUnit($hhea["descent"]));
}
else {
$this->addPair("FontHeightOffset", $font->normalizeFUnit($os2["typoLineGap"]));
$this->addPair("Ascender", $font->normalizeFUnit($os2["typoAscender"]));
$this->addPair("Descender", -abs($font->normalizeFUnit($os2["typoDescender"])));
}
$head = $font->getData("head");
$this->addArray("FontBBox", array(
$font->normalizeFUnit($head["xMin"]),
$font->normalizeFUnit($head["yMin"]),
$font->normalizeFUnit($head["xMax"]),
$font->normalizeFUnit($head["yMax"]),
));
$glyphIndexArray = $font->getUnicodeCharMap();
if ($glyphIndexArray) {
$hmtx = $font->getData("hmtx");
$names = $font->getData("post", "names");
$this->startSection("CharMetrics", count($hmtx));
if ($encoding) {
foreach ($map_data as $code => $value) {
list($c, $name) = $value;
if (!isset($glyphIndexArray[$c])) {
continue;
}
$g = $glyphIndexArray[$c];
if (!isset($hmtx[$g])) {
$hmtx[$g] = $hmtx[0];
}
$this->addMetric(array(
"C" => ($code > 255 ? -1 : $code),
"WX" => $font->normalizeFUnit($hmtx[$g][0]),
"N" => $name,
));
}
}
else {
foreach ($glyphIndexArray as $c => $g) {
if (!isset($hmtx[$g])) {
$hmtx[$g] = $hmtx[0];
}
$this->addMetric(array(
"U" => $c,
"WX" => $font->normalizeFUnit($hmtx[$g][0]),
"N" => (isset($names[$g]) ? $names[$g] : sprintf("uni%04x", $c)),
"G" => $g,
));
}
}
$this->endSection("CharMetrics");
$kern = $font->getData("kern", "subtable");
$tree = $kern["tree"];
if (!$encoding && is_array($tree)) {
$this->startSection("KernData");
$this->startSection("KernPairs", count($tree, COUNT_RECURSIVE) - count($tree));
foreach ($tree as $left => $values) {
if (!is_array($values)) {
continue;
}
if (!isset($glyphIndexArray[$left])) {
continue;
}
$left_gid = $glyphIndexArray[$left];
if (!isset($names[$left_gid])) {
continue;
}
$left_name = $names[$left_gid];
$this->addLine("");
foreach ($values as $right => $value) {
if (!isset($glyphIndexArray[$right])) {
continue;
}
$right_gid = $glyphIndexArray[$right];
if (!isset($names[$right_gid])) {
continue;
}
$right_name = $names[$right_gid];
$this->addPair("KPX", "$left_name $right_name $value");
}
}
$this->endSection("KernPairs");
$this->endSection("KernData");
}
}
$this->endSection("FontMetrics");
}
function addLine($line) {
fwrite($this->f, "$line\n");
}
function addPair($key, $value) {
$this->addLine("$key $value");
}
function addArray($key, $array) {
$this->addLine("$key " . implode(" ", $array));
}
function addMetric($data) {
$array = array();
foreach ($data as $key => $value) {
$array[] = "$key $value";
}
$this->addLine(implode(" ; ", $array));
}
function startSection($name, $value = "") {
$this->addLine("Start$name $value");
}
function endSection($name) {
$this->addLine("End$name");
}
}

View File

@ -0,0 +1,43 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib;
/**
* Autoloads FontLib classes
*
* @package php-font-lib
*/
class Autoloader {
const PREFIX = 'FontLib';
/**
* Register the autoloader
*/
public static function register() {
spl_autoload_register(array(new self, 'autoload'));
}
/**
* Autoloader
*
* @param string
*/
public static function autoload($class) {
$prefixLength = strlen(self::PREFIX);
if (0 === strncmp(self::PREFIX, $class, $prefixLength)) {
$file = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, $prefixLength));
$file = realpath(__DIR__ . (empty($file) ? '' : DIRECTORY_SEPARATOR) . $file . '.php');
if (file_exists($file)) {
require_once $file;
}
}
}
}
Autoloader::register();

View File

@ -0,0 +1,444 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib;
/**
* Generic font file binary stream.
*
* @package php-font-lib
*/
class BinaryStream {
/**
* @var resource The file pointer
*/
protected $f;
const uint8 = 1;
const int8 = 2;
const uint16 = 3;
const int16 = 4;
const uint32 = 5;
const int32 = 6;
const shortFrac = 7;
const Fixed = 8;
const FWord = 9;
const uFWord = 10;
const F2Dot14 = 11;
const longDateTime = 12;
const char = 13;
const modeRead = "rb";
const modeWrite = "wb";
const modeReadWrite = "rb+";
static function backtrace() {
var_dump(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS));
}
/**
* Open a font file in read mode
*
* @param string $filename The file name of the font to open
*
* @return bool
*/
public function load($filename) {
return $this->open($filename, self::modeRead);
}
/**
* Open a font file in a chosen mode
*
* @param string $filename The file name of the font to open
* @param string $mode The opening mode
*
* @throws \Exception
* @return bool
*/
public function open($filename, $mode = self::modeRead) {
if (!in_array($mode, array(self::modeRead, self::modeWrite, self::modeReadWrite))) {
throw new \Exception("Unkown file open mode");
}
$this->f = fopen($filename, $mode);
return $this->f != false;
}
/**
* Close the internal file pointer
*/
public function close() {
return fclose($this->f) != false;
}
/**
* Change the internal file pointer
*
* @param resource $fp
*
* @throws \Exception
*/
public function setFile($fp) {
if (!is_resource($fp)) {
throw new \Exception('$fp is not a valid resource');
}
$this->f = $fp;
}
/**
* Create a temporary file in write mode
*
* @param bool $allow_memory Allow in-memory files
*
* @return resource the temporary file pointer resource
*/
public static function getTempFile($allow_memory = true) {
$f = null;
if ($allow_memory) {
$f = fopen("php://temp", "rb+");
}
else {
$f = fopen(tempnam(sys_get_temp_dir(), "fnt"), "rb+");
}
return $f;
}
/**
* Move the internal file pinter to $offset bytes
*
* @param int $offset
*
* @return bool True if the $offset position exists in the file
*/
public function seek($offset) {
return fseek($this->f, $offset, SEEK_SET) == 0;
}
/**
* Gives the current position in the file
*
* @return int The current position
*/
public function pos() {
return ftell($this->f);
}
public function skip($n) {
fseek($this->f, $n, SEEK_CUR);
}
public function read($n) {
if ($n < 1) {
return "";
}
return fread($this->f, $n);
}
public function write($data, $length = null) {
if ($data === null || $data === "" || $data === false) {
return 0;
}
return fwrite($this->f, $data, $length);
}
public function readUInt8() {
return ord($this->read(1));
}
public function readUInt8Many($count) {
return array_values(unpack("C*", $this->read($count)));
}
public function writeUInt8($data) {
return $this->write(chr($data), 1);
}
public function readInt8() {
$v = $this->readUInt8();
if ($v >= 0x80) {
$v -= 0x100;
}
return $v;
}
public function readInt8Many($count) {
return array_values(unpack("c*", $this->read($count)));
}
public function writeInt8($data) {
if ($data < 0) {
$data += 0x100;
}
return $this->writeUInt8($data);
}
public function readUInt16() {
$a = unpack("nn", $this->read(2));
return $a["n"];
}
public function readUInt16Many($count) {
return array_values(unpack("n*", $this->read($count * 2)));
}
public function readUFWord() {
return $this->readUInt16();
}
public function writeUInt16($data) {
return $this->write(pack("n", $data), 2);
}
public function writeUFWord($data) {
return $this->writeUInt16($data);
}
public function readInt16() {
$a = unpack("nn", $this->read(2));
$v = $a["n"];
if ($v >= 0x8000) {
$v -= 0x10000;
}
return $v;
}
public function readInt16Many($count) {
$vals = array_values(unpack("n*", $this->read($count * 2)));
foreach ($vals as &$v) {
if ($v >= 0x8000) {
$v -= 0x10000;
}
}
return $vals;
}
public function readFWord() {
return $this->readInt16();
}
public function writeInt16($data) {
if ($data < 0) {
$data += 0x10000;
}
return $this->writeUInt16($data);
}
public function writeFWord($data) {
return $this->writeInt16($data);
}
public function readUInt32() {
$a = unpack("NN", $this->read(4));
return $a["N"];
}
public function writeUInt32($data) {
return $this->write(pack("N", $data), 4);
}
public function readFixed() {
$d = $this->readInt16();
$d2 = $this->readUInt16();
return round($d + $d2 / 0x10000, 4);
}
public function writeFixed($data) {
$left = floor($data);
$right = ($data - $left) * 0x10000;
return $this->writeInt16($left) + $this->writeUInt16($right);
}
public function readLongDateTime() {
$this->readUInt32(); // ignored
$date = $this->readUInt32() - 2082844800;
# PHP_INT_MIN isn't defined in PHP < 7.0
$php_int_min = defined("PHP_INT_MIN") ? PHP_INT_MIN : ~PHP_INT_MAX;
if (is_string($date) || $date > PHP_INT_MAX || $date < $php_int_min) {
$date = 0;
}
return strftime("%Y-%m-%d %H:%M:%S", $date);
}
public function writeLongDateTime($data) {
$date = strtotime($data);
$date += 2082844800;
return $this->writeUInt32(0) + $this->writeUInt32($date);
}
public function unpack($def) {
$d = array();
foreach ($def as $name => $type) {
$d[$name] = $this->r($type);
}
return $d;
}
public function pack($def, $data) {
$bytes = 0;
foreach ($def as $name => $type) {
$bytes += $this->w($type, $data[$name]);
}
return $bytes;
}
/**
* Read a data of type $type in the file from the current position
*
* @param mixed $type The data type to read
*
* @return mixed The data that was read
*/
public function r($type) {
switch ($type) {
case self::uint8:
return $this->readUInt8();
case self::int8:
return $this->readInt8();
case self::uint16:
return $this->readUInt16();
case self::int16:
return $this->readInt16();
case self::uint32:
return $this->readUInt32();
case self::int32:
return $this->readUInt32();
case self::shortFrac:
return $this->readFixed();
case self::Fixed:
return $this->readFixed();
case self::FWord:
return $this->readInt16();
case self::uFWord:
return $this->readUInt16();
case self::F2Dot14:
return $this->readInt16();
case self::longDateTime:
return $this->readLongDateTime();
case self::char:
return $this->read(1);
default:
if (is_array($type)) {
if ($type[0] == self::char) {
return $this->read($type[1]);
}
if ($type[0] == self::uint16) {
return $this->readUInt16Many($type[1]);
}
if ($type[0] == self::int16) {
return $this->readInt16Many($type[1]);
}
if ($type[0] == self::uint8) {
return $this->readUInt8Many($type[1]);
}
if ($type[0] == self::int8) {
return $this->readInt8Many($type[1]);
}
$ret = array();
for ($i = 0; $i < $type[1]; $i++) {
$ret[] = $this->r($type[0]);
}
return $ret;
}
return null;
}
}
/**
* Write $data of type $type in the file from the current position
*
* @param mixed $type The data type to write
* @param mixed $data The data to write
*
* @return int The number of bytes read
*/
public function w($type, $data) {
switch ($type) {
case self::uint8:
return $this->writeUInt8($data);
case self::int8:
return $this->writeInt8($data);
case self::uint16:
return $this->writeUInt16($data);
case self::int16:
return $this->writeInt16($data);
case self::uint32:
return $this->writeUInt32($data);
case self::int32:
return $this->writeUInt32($data);
case self::shortFrac:
return $this->writeFixed($data);
case self::Fixed:
return $this->writeFixed($data);
case self::FWord:
return $this->writeInt16($data);
case self::uFWord:
return $this->writeUInt16($data);
case self::F2Dot14:
return $this->writeInt16($data);
case self::longDateTime:
return $this->writeLongDateTime($data);
case self::char:
return $this->write($data, 1);
default:
if (is_array($type)) {
if ($type[0] == self::char) {
return $this->write($data, $type[1]);
}
$ret = 0;
for ($i = 0; $i < $type[1]; $i++) {
if (isset($data[$i])) {
$ret += $this->w($type[0], $data[$i]);
}
}
return $ret;
}
return null;
}
}
/**
* Converts a Uint32 value to string
*
* @param int $uint32
*
* @return string The string
*/
public function convertUInt32ToStr($uint32) {
return chr(($uint32 >> 24) & 0xFF) . chr(($uint32 >> 16) & 0xFF) . chr(($uint32 >> 8) & 0xFF) . chr($uint32 & 0xFF);
}
}

View File

@ -0,0 +1,160 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\EOT;
/**
* EOT font file.
*
* @package php-font-lib
*/
class File extends \FontLib\TrueType\File {
const TTEMBED_SUBSET = 0x00000001;
const TTEMBED_TTCOMPRESSED = 0x00000004;
const TTEMBED_FAILIFVARIATIONSIMULATED = 0x00000010;
const TTMBED_EMBEDEUDC = 0x00000020;
const TTEMBED_VALIDATIONTESTS = 0x00000040; // Deprecated
const TTEMBED_WEBOBJECT = 0x00000080;
const TTEMBED_XORENCRYPTDATA = 0x10000000;
/**
* @var Header
*/
public $header;
function parseHeader() {
if (!empty($this->header)) {
return;
}
$this->header = new Header($this);
$this->header->parse();
}
function parse() {
$this->parseHeader();
$flags = $this->header->data["Flags"];
if ($flags & self::TTEMBED_TTCOMPRESSED) {
$mtx_version = $this->readUInt8();
$mtx_copy_limit = $this->readUInt8() << 16 | $this->readUInt8() << 8 | $this->readUInt8();
$mtx_offset_1 = $this->readUInt8() << 16 | $this->readUInt8() << 8 | $this->readUInt8();
$mtx_offset_2 = $this->readUInt8() << 16 | $this->readUInt8() << 8 | $this->readUInt8();
/*
var_dump("$mtx_version $mtx_copy_limit $mtx_offset_1 $mtx_offset_2");
$pos = $this->pos();
$size = $mtx_offset_1 - $pos;
var_dump("pos: $pos");
var_dump("size: $size");*/
}
if ($flags & self::TTEMBED_XORENCRYPTDATA) {
// Process XOR
}
// TODO Read font data ...
}
/**
* Little endian version of the read method
*
* @param int $n The number of bytes to read
*
* @return string
*/
public function read($n) {
if ($n < 1) {
return "";
}
$string = fread($this->f, $n);
$chunks = str_split($string, 2);
$chunks = array_map("strrev", $chunks);
return implode("", $chunks);
}
public function readUInt32() {
$uint32 = parent::readUInt32();
return $uint32 >> 16 & 0x0000FFFF | $uint32 << 16 & 0xFFFF0000;
}
/**
* Get font copyright
*
* @return string|null
*/
function getFontCopyright() {
return null;
}
/**
* Get font name
*
* @return string|null
*/
function getFontName() {
return $this->header->data["FamilyName"];
}
/**
* Get font subfamily
*
* @return string|null
*/
function getFontSubfamily() {
return $this->header->data["StyleName"];
}
/**
* Get font subfamily ID
*
* @return string|null
*/
function getFontSubfamilyID() {
return $this->header->data["StyleName"];
}
/**
* Get font full name
*
* @return string|null
*/
function getFontFullName() {
return $this->header->data["FullName"];
}
/**
* Get font version
*
* @return string|null
*/
function getFontVersion() {
return $this->header->data["VersionName"];
}
/**
* Get font weight
*
* @return string|null
*/
function getFontWeight() {
return $this->header->data["Weight"];
}
/**
* Get font Postscript name
*
* @return string|null
*/
function getFontPostscriptName() {
return null;
}
}

View File

@ -0,0 +1,113 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\EOT;
use Exception;
use FontLib\Font;
/**
* TrueType font file header.
*
* @package php-font-lib
*
* @property File $font
*/
class Header extends \FontLib\Header {
protected $def = array(
"format" => self::uint32,
"numTables" => self::uint16,
"searchRange" => self::uint16,
"entrySelector" => self::uint16,
"rangeShift" => self::uint16,
);
public function parse() {
$font = $this->font;
$this->data = $font->unpack(array(
"EOTSize" => self::uint32,
"FontDataSize" => self::uint32,
"Version" => self::uint32,
"Flags" => self::uint32,
"FontPANOSE" => array(self::uint8, 10),
"Charset" => self::uint8,
"Italic" => self::uint8,
"Weight" => self::uint32,
"fsType" => self::uint16,
"MagicNumber" => self::uint16,
"UnicodeRange1" => self::uint32,
"UnicodeRange2" => self::uint32,
"UnicodeRange3" => self::uint32,
"UnicodeRange4" => self::uint32,
"CodePageRange1" => self::uint32,
"CodePageRange2" => self::uint32,
"CheckSumAdjustment" => self::uint32,
"Reserved1" => self::uint32,
"Reserved2" => self::uint32,
"Reserved3" => self::uint32,
"Reserved4" => self::uint32,
));
$this->data["Padding1"] = $font->readUInt16();
$this->readString("FamilyName");
$this->data["Padding2"] = $font->readUInt16();
$this->readString("StyleName");
$this->data["Padding3"] = $font->readUInt16();
$this->readString("VersionName");
$this->data["Padding4"] = $font->readUInt16();
$this->readString("FullName");
switch ($this->data["Version"]) {
default:
throw new Exception("Unknown EOT version " . $this->data["Version"]);
case 0x00010000:
// Nothing to do more
break;
case 0x00020001:
$this->data["Padding5"] = $font->readUInt16();
$this->readString("RootString");
break;
case 0x00020002:
$this->data["Padding5"] = $font->readUInt16();
$this->readString("RootString");
$this->data["RootStringCheckSum"] = $font->readUInt32();
$this->data["EUDCCodePage"] = $font->readUInt32();
$this->data["Padding6"] = $font->readUInt16();
$this->readString("Signature");
$this->data["EUDCFlags"] = $font->readUInt32();
$this->data["EUDCFontSize"] = $font->readUInt32();
break;
}
if (!empty($this->data["RootString"])) {
$this->data["RootString"] = explode("\0", $this->data["RootString"]);
}
}
private function readString($name) {
$font = $this->font;
$size = $font->readUInt16();
$this->data["{$name}Size"] = $size;
$this->data[$name] = Font::UTF16ToUTF8($font->read($size));
}
public function encode() {
//return $this->font->pack($this->def, $this->data);
}
}

View File

@ -0,0 +1,37 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib;
/**
* Encoding map used to map a code point to a Unicode char.
*
* @package php-font-lib
*/
class EncodingMap {
private $f;
function __construct($file) {
$this->f = fopen($file, "r");
}
function parse() {
$map = array();
while ($line = fgets($this->f)) {
if (preg_match('/^[\!\=]([0-9A-F]{2,})\s+U\+([0-9A-F]{2})([0-9A-F]{2})\s+([^\s]+)/', $line, $matches)) {
$unicode = (hexdec($matches[2]) << 8) + hexdec($matches[3]);
$map[hexdec($matches[1])] = array($unicode, $matches[4]);
}
}
ksort($map);
return $map;
}
}

View File

@ -0,0 +1,11 @@
<?php
namespace FontLib\Exception;
class FontNotFoundException extends \Exception
{
public function __construct($fontPath)
{
$this->message = 'Font not found in: ' . $fontPath;
}
}

View File

@ -0,0 +1,89 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib;
use FontLib\Exception\FontNotFoundException;
/**
* Generic font file.
*
* @package php-font-lib
*/
class Font {
static $debug = false;
/**
* @param string $file The font file
*
* @return TrueType\File|null $file
*/
public static function load($file) {
if(!file_exists($file)){
throw new FontNotFoundException($file);
}
$header = file_get_contents($file, false, null, null, 4);
$class = null;
switch ($header) {
case "\x00\x01\x00\x00":
case "true":
case "typ1":
$class = "TrueType\\File";
break;
case "OTTO":
$class = "OpenType\\File";
break;
case "wOFF":
$class = "WOFF\\File";
break;
case "ttcf":
$class = "TrueType\\Collection";
break;
// Unknown type or EOT
default:
$magicNumber = file_get_contents($file, false, null, 34, 2);
if ($magicNumber === "LP") {
$class = "EOT\\File";
}
}
if ($class) {
$class = "FontLib\\$class";
/** @var TrueType\File $obj */
$obj = new $class;
$obj->load($file);
return $obj;
}
return null;
}
static function d($str) {
if (!self::$debug) {
return;
}
echo "$str\n";
}
static function UTF16ToUTF8($str) {
return mb_convert_encoding($str, "utf-8", "utf-16");
}
static function UTF8ToUTF16($str) {
return mb_convert_encoding($str, "utf-16", "utf-8");
}
}

View File

@ -0,0 +1,110 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
* @version $Id: Font_Table_glyf.php 46 2012-04-02 20:22:38Z fabien.menager $
*/
namespace FontLib\Glyph;
use FontLib\Table\Type\glyf;
use FontLib\TrueType\File;
use FontLib\BinaryStream;
/**
* `glyf` font table.
*
* @package php-font-lib
*/
class Outline extends BinaryStream {
/**
* @var \FontLib\Table\Type\glyf
*/
protected $table;
protected $offset;
protected $size;
// Data
public $numberOfContours;
public $xMin;
public $yMin;
public $xMax;
public $yMax;
public $raw;
/**
* @param glyf $table
* @param $offset
* @param $size
*
* @return Outline
*/
static function init(glyf $table, $offset, $size, BinaryStream $font) {
$font->seek($offset);
if ($font->readInt16() > -1) {
/** @var OutlineSimple $glyph */
$glyph = new OutlineSimple($table, $offset, $size);
}
else {
/** @var OutlineComposite $glyph */
$glyph = new OutlineComposite($table, $offset, $size);
}
$glyph->parse($font);
return $glyph;
}
/**
* @return File
*/
function getFont() {
return $this->table->getFont();
}
function __construct(glyf $table, $offset = null, $size = null) {
$this->table = $table;
$this->offset = $offset;
$this->size = $size;
}
function parse(BinaryStream $font) {
$font->seek($this->offset);
if (!$this->size) {
return;
}
$this->raw = $font->read($this->size);
}
function parseData() {
$font = $this->getFont();
$font->seek($this->offset);
$this->numberOfContours = $font->readInt16();
$this->xMin = $font->readFWord();
$this->yMin = $font->readFWord();
$this->xMax = $font->readFWord();
$this->yMax = $font->readFWord();
}
function encode() {
$font = $this->getFont();
return $font->write($this->raw, strlen($this->raw));
}
function getSVGContours() {
// Inherit
}
function getGlyphIDs() {
return array();
}
}

View File

@ -0,0 +1,31 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
* @version $Id: Font_Table_glyf.php 46 2012-04-02 20:22:38Z fabien.menager $
*/
namespace FontLib\Glyph;
/**
* Glyph outline component
*
* @package php-font-lib
*/
class OutlineComponent {
public $flags;
public $glyphIndex;
public $a, $b, $c, $d, $e, $f;
public $point_compound;
public $point_component;
public $instructions;
function getMatrix() {
return array(
$this->a, $this->b,
$this->c, $this->d,
$this->e, $this->f,
);
}
}

View File

@ -0,0 +1,242 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
* @version $Id: Font_Table_glyf.php 46 2012-04-02 20:22:38Z fabien.menager $
*/
namespace FontLib\Glyph;
/**
* Composite glyph outline
*
* @package php-font-lib
*/
class OutlineComposite extends Outline {
const ARG_1_AND_2_ARE_WORDS = 0x0001;
const ARGS_ARE_XY_VALUES = 0x0002;
const ROUND_XY_TO_GRID = 0x0004;
const WE_HAVE_A_SCALE = 0x0008;
const MORE_COMPONENTS = 0x0020;
const WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;
const WE_HAVE_A_TWO_BY_TWO = 0x0080;
const WE_HAVE_INSTRUCTIONS = 0x0100;
const USE_MY_METRICS = 0x0200;
const OVERLAP_COMPOUND = 0x0400;
/**
* @var OutlineComponent[]
*/
public $components = array();
function getGlyphIDs() {
if (empty($this->components)) {
$this->parseData();
}
$glyphIDs = array();
foreach ($this->components as $_component) {
$glyphIDs[] = $_component->glyphIndex;
$_glyph = $this->table->data[$_component->glyphIndex];
if ($_glyph !== $this) {
$glyphIDs = array_merge($glyphIDs, $_glyph->getGlyphIDs());
}
}
return $glyphIDs;
}
/*function parse() {
//$this->parseData();
}*/
function parseData() {
parent::parseData();
$font = $this->getFont();
do {
$flags = $font->readUInt16();
$glyphIndex = $font->readUInt16();
$a = 1.0;
$b = 0.0;
$c = 0.0;
$d = 1.0;
$e = 0.0;
$f = 0.0;
$point_compound = null;
$point_component = null;
$instructions = null;
if ($flags & self::ARG_1_AND_2_ARE_WORDS) {
if ($flags & self::ARGS_ARE_XY_VALUES) {
$e = $font->readInt16();
$f = $font->readInt16();
}
else {
$point_compound = $font->readUInt16();
$point_component = $font->readUInt16();
}
}
else {
if ($flags & self::ARGS_ARE_XY_VALUES) {
$e = $font->readInt8();
$f = $font->readInt8();
}
else {
$point_compound = $font->readUInt8();
$point_component = $font->readUInt8();
}
}
if ($flags & self::WE_HAVE_A_SCALE) {
$a = $d = $font->readInt16();
}
elseif ($flags & self::WE_HAVE_AN_X_AND_Y_SCALE) {
$a = $font->readInt16();
$d = $font->readInt16();
}
elseif ($flags & self::WE_HAVE_A_TWO_BY_TWO) {
$a = $font->readInt16();
$b = $font->readInt16();
$c = $font->readInt16();
$d = $font->readInt16();
}
//if ($flags & self::WE_HAVE_INSTRUCTIONS) {
//
//}
$component = new OutlineComponent();
$component->flags = $flags;
$component->glyphIndex = $glyphIndex;
$component->a = $a;
$component->b = $b;
$component->c = $c;
$component->d = $d;
$component->e = $e;
$component->f = $f;
$component->point_compound = $point_compound;
$component->point_component = $point_component;
$component->instructions = $instructions;
$this->components[] = $component;
} while ($flags & self::MORE_COMPONENTS);
}
function encode() {
$font = $this->getFont();
$gids = $font->getSubset();
$size = $font->writeInt16(-1);
$size += $font->writeFWord($this->xMin);
$size += $font->writeFWord($this->yMin);
$size += $font->writeFWord($this->xMax);
$size += $font->writeFWord($this->yMax);
foreach ($this->components as $_i => $_component) {
$flags = 0;
if ($_component->point_component === null && $_component->point_compound === null) {
$flags |= self::ARGS_ARE_XY_VALUES;
if (abs($_component->e) > 0x7F || abs($_component->f) > 0x7F) {
$flags |= self::ARG_1_AND_2_ARE_WORDS;
}
}
elseif ($_component->point_component > 0xFF || $_component->point_compound > 0xFF) {
$flags |= self::ARG_1_AND_2_ARE_WORDS;
}
if ($_component->b == 0 && $_component->c == 0) {
if ($_component->a == $_component->d) {
if ($_component->a != 1.0) {
$flags |= self::WE_HAVE_A_SCALE;
}
}
else {
$flags |= self::WE_HAVE_AN_X_AND_Y_SCALE;
}
}
else {
$flags |= self::WE_HAVE_A_TWO_BY_TWO;
}
if ($_i < count($this->components) - 1) {
$flags |= self::MORE_COMPONENTS;
}
$size += $font->writeUInt16($flags);
$new_gid = array_search($_component->glyphIndex, $gids);
$size += $font->writeUInt16($new_gid);
if ($flags & self::ARG_1_AND_2_ARE_WORDS) {
if ($flags & self::ARGS_ARE_XY_VALUES) {
$size += $font->writeInt16($_component->e);
$size += $font->writeInt16($_component->f);
}
else {
$size += $font->writeUInt16($_component->point_compound);
$size += $font->writeUInt16($_component->point_component);
}
}
else {
if ($flags & self::ARGS_ARE_XY_VALUES) {
$size += $font->writeInt8($_component->e);
$size += $font->writeInt8($_component->f);
}
else {
$size += $font->writeUInt8($_component->point_compound);
$size += $font->writeUInt8($_component->point_component);
}
}
if ($flags & self::WE_HAVE_A_SCALE) {
$size += $font->writeInt16($_component->a);
}
elseif ($flags & self::WE_HAVE_AN_X_AND_Y_SCALE) {
$size += $font->writeInt16($_component->a);
$size += $font->writeInt16($_component->d);
}
elseif ($flags & self::WE_HAVE_A_TWO_BY_TWO) {
$size += $font->writeInt16($_component->a);
$size += $font->writeInt16($_component->b);
$size += $font->writeInt16($_component->c);
$size += $font->writeInt16($_component->d);
}
}
return $size;
}
public function getSVGContours() {
$contours = array();
/** @var \FontLib\Table\Type\glyf $glyph_data */
$glyph_data = $this->getFont()->getTableObject("glyf");
/** @var Outline[] $glyphs */
$glyphs = $glyph_data->data;
foreach ($this->components as $component) {
$_glyph = $glyphs[$component->glyphIndex];
if ($_glyph !== $this) {
$contours[] = array(
"contours" => $_glyph->getSVGContours(),
"transform" => $component->getMatrix(),
);
}
}
return $contours;
}
}

View File

@ -0,0 +1,335 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
* @version $Id: Font_Table_glyf.php 46 2012-04-02 20:22:38Z fabien.menager $
*/
namespace FontLib\Glyph;
/**
* `glyf` font table.
*
* @package php-font-lib
*/
class OutlineSimple extends Outline {
const ON_CURVE = 0x01;
const X_SHORT_VECTOR = 0x02;
const Y_SHORT_VECTOR = 0x04;
const REPEAT = 0x08;
const THIS_X_IS_SAME = 0x10;
const THIS_Y_IS_SAME = 0x20;
public $instructions;
public $points;
function parseData() {
parent::parseData();
if (!$this->size) {
return;
}
$font = $this->getFont();
$noc = $this->numberOfContours;
if ($noc == 0) {
return;
}
$endPtsOfContours = $font->r(array(self::uint16, $noc));
$instructionLength = $font->readUInt16();
$this->instructions = $font->r(array(self::uint8, $instructionLength));
$count = $endPtsOfContours[$noc - 1] + 1;
// Flags
$flags = array();
for ($index = 0; $index < $count; $index++) {
$flags[$index] = $font->readUInt8();
if ($flags[$index] & self::REPEAT) {
$repeats = $font->readUInt8();
for ($i = 1; $i <= $repeats; $i++) {
$flags[$index + $i] = $flags[$index];
}
$index += $repeats;
}
}
$points = array();
foreach ($flags as $i => $flag) {
$points[$i]["onCurve"] = $flag & self::ON_CURVE;
$points[$i]["endOfContour"] = in_array($i, $endPtsOfContours);
}
// X Coords
$x = 0;
for ($i = 0; $i < $count; $i++) {
$flag = $flags[$i];
if ($flag & self::THIS_X_IS_SAME) {
if ($flag & self::X_SHORT_VECTOR) {
$x += $font->readUInt8();
}
}
else {
if ($flag & self::X_SHORT_VECTOR) {
$x -= $font->readUInt8();
}
else {
$x += $font->readInt16();
}
}
$points[$i]["x"] = $x;
}
// Y Coords
$y = 0;
for ($i = 0; $i < $count; $i++) {
$flag = $flags[$i];
if ($flag & self::THIS_Y_IS_SAME) {
if ($flag & self::Y_SHORT_VECTOR) {
$y += $font->readUInt8();
}
}
else {
if ($flag & self::Y_SHORT_VECTOR) {
$y -= $font->readUInt8();
}
else {
$y += $font->readInt16();
}
}
$points[$i]["y"] = $y;
}
$this->points = $points;
}
public function splitSVGPath($path) {
preg_match_all('/([a-z])|(-?\d+(?:\.\d+)?)/i', $path, $matches, PREG_PATTERN_ORDER);
return $matches[0];
}
public function makePoints($path) {
$path = $this->splitSVGPath($path);
$l = count($path);
$i = 0;
$points = array();
while ($i < $l) {
switch ($path[$i]) {
// moveTo
case "M":
$points[] = array(
"onCurve" => true,
"x" => $path[++$i],
"y" => $path[++$i],
"endOfContour" => false,
);
break;
// lineTo
case "L":
$points[] = array(
"onCurve" => true,
"x" => $path[++$i],
"y" => $path[++$i],
"endOfContour" => false,
);
break;
// quadraticCurveTo
case "Q":
$points[] = array(
"onCurve" => false,
"x" => $path[++$i],
"y" => $path[++$i],
"endOfContour" => false,
);
$points[] = array(
"onCurve" => true,
"x" => $path[++$i],
"y" => $path[++$i],
"endOfContour" => false,
);
break;
// closePath
/** @noinspection PhpMissingBreakStatementInspection */
case "z":
$points[count($points) - 1]["endOfContour"] = true;
default:
$i++;
break;
}
}
return $points;
}
function encode() {
if (empty($this->points)) {
return parent::encode();
}
return $this->size = $this->encodePoints($this->points);
}
public function encodePoints($points) {
$endPtsOfContours = array();
$flags = array();
$coords_x = array();
$coords_y = array();
$last_x = 0;
$last_y = 0;
$xMin = $yMin = 0xFFFF;
$xMax = $yMax = -0xFFFF;
foreach ($points as $i => $point) {
$flag = 0;
if ($point["onCurve"]) {
$flag |= self::ON_CURVE;
}
if ($point["endOfContour"]) {
$endPtsOfContours[] = $i;
}
// Simplified, we could do some optimizations
if ($point["x"] == $last_x) {
$flag |= self::THIS_X_IS_SAME;
}
else {
$x = intval($point["x"]);
$xMin = min($x, $xMin);
$xMax = max($x, $xMax);
$coords_x[] = $x - $last_x; // int16
}
// Simplified, we could do some optimizations
if ($point["y"] == $last_y) {
$flag |= self::THIS_Y_IS_SAME;
}
else {
$y = intval($point["y"]);
$yMin = min($y, $yMin);
$yMax = max($y, $yMax);
$coords_y[] = $y - $last_y; // int16
}
$flags[] = $flag;
$last_x = $point["x"];
$last_y = $point["y"];
}
$font = $this->getFont();
$l = 0;
$l += $font->writeInt16(count($endPtsOfContours)); // endPtsOfContours
$l += $font->writeFWord(isset($this->xMin) ? $this->xMin : $xMin); // xMin
$l += $font->writeFWord(isset($this->yMin) ? $this->yMin : $yMin); // yMin
$l += $font->writeFWord(isset($this->xMax) ? $this->xMax : $xMax); // xMax
$l += $font->writeFWord(isset($this->yMax) ? $this->yMax : $yMax); // yMax
// Simple glyf
$l += $font->w(array(self::uint16, count($endPtsOfContours)), $endPtsOfContours); // endPtsOfContours
$l += $font->writeUInt16(0); // instructionLength
$l += $font->w(array(self::uint8, count($flags)), $flags); // flags
$l += $font->w(array(self::int16, count($coords_x)), $coords_x); // xCoordinates
$l += $font->w(array(self::int16, count($coords_y)), $coords_y); // yCoordinates
return $l;
}
public function getSVGContours($points = null) {
$path = "";
if (!$points) {
if (empty($this->points)) {
$this->parseData();
}
$points = $this->points;
}
$length = count($points);
$firstIndex = 0;
$count = 0;
for ($i = 0; $i < $length; $i++) {
$count++;
if ($points[$i]["endOfContour"]) {
$path .= $this->getSVGPath($points, $firstIndex, $count);
$firstIndex = $i + 1;
$count = 0;
}
}
return $path;
}
protected function getSVGPath($points, $startIndex, $count) {
$offset = 0;
$path = "";
while ($offset < $count) {
$point = $points[$startIndex + $offset % $count];
$point_p1 = $points[$startIndex + ($offset + 1) % $count];
if ($offset == 0) {
$path .= "M{$point['x']},{$point['y']} ";
}
if ($point["onCurve"]) {
if ($point_p1["onCurve"]) {
$path .= "L{$point_p1['x']},{$point_p1['y']} ";
$offset++;
}
else {
$point_p2 = $points[$startIndex + ($offset + 2) % $count];
if ($point_p2["onCurve"]) {
$path .= "Q{$point_p1['x']},{$point_p1['y']},{$point_p2['x']},{$point_p2['y']} ";
}
else {
$path .= "Q{$point_p1['x']},{$point_p1['y']}," . $this->midValue($point_p1['x'], $point_p2['x']) . "," . $this->midValue($point_p1['y'], $point_p2['y']) . " ";
}
$offset += 2;
}
}
else {
if ($point_p1["onCurve"]) {
$path .= "Q{$point['x']},{$point['y']},{$point_p1['x']},{$point_p1['y']} ";
}
else {
$path .= "Q{$point['x']},{$point['y']}," . $this->midValue($point['x'], $point_p1['x']) . "," . $this->midValue($point['y'], $point_p1['y']) . " ";
}
$offset++;
}
}
$path .= "z ";
return $path;
}
function midValue($a, $b) {
return $a + ($b - $a) / 2;
}
}

View File

@ -0,0 +1,37 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib;
use FontLib\TrueType\File;
/**
* Font header container.
*
* @package php-font-lib
*/
abstract class Header extends BinaryStream {
/**
* @var File
*/
protected $font;
protected $def = array();
public $data;
public function __construct(File $font) {
$this->font = $font;
}
public function encode() {
return $this->font->pack($this->def, $this->data);
}
public function parse() {
$this->data = $this->font->unpack($this->def);
}
}

View File

@ -0,0 +1,18 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\OpenType;
/**
* Open Type font, the same as a TrueType one.
*
* @package php-font-lib
*/
class File extends \FontLib\TrueType\File {
//
}

View File

@ -0,0 +1,18 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\OpenType;
/**
* Open Type Table directory entry, the same as a TrueType one.
*
* @package php-font-lib
*/
class TableDirectoryEntry extends \FontLib\TrueType\TableDirectoryEntry {
}

View File

@ -0,0 +1,129 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\Table;
use FontLib\TrueType\File;
use FontLib\Font;
use FontLib\BinaryStream;
/**
* Generic Font table directory entry.
*
* @package php-font-lib
*/
class DirectoryEntry extends BinaryStream {
/**
* @var File
*/
protected $font;
/**
* @var Table
*/
protected $font_table;
public $entryLength = 4;
public $tag;
public $checksum;
public $offset;
public $length;
protected $origF;
static function computeChecksum($data) {
$len = strlen($data);
$mod = $len % 4;
if ($mod) {
$data = str_pad($data, $len + (4 - $mod), "\0");
}
$len = strlen($data);
$hi = 0x0000;
$lo = 0x0000;
for ($i = 0; $i < $len; $i += 4) {
$hi += (ord($data[$i]) << 8) + ord($data[$i + 1]);
$lo += (ord($data[$i + 2]) << 8) + ord($data[$i + 3]);
$hi += $lo >> 16;
$lo = $lo & 0xFFFF;
$hi = $hi & 0xFFFF;
}
return ($hi << 8) + $lo;
}
function __construct(File $font) {
$this->font = $font;
$this->f = $font->f;
}
function parse() {
$this->tag = $this->font->read(4);
}
function open($filename, $mode = self::modeRead) {
// void
}
function setTable(Table $font_table) {
$this->font_table = $font_table;
}
function encode($entry_offset) {
Font::d("\n==== $this->tag ====");
//Font::d("Entry offset = $entry_offset");
$data = $this->font_table;
$font = $this->font;
$table_offset = $font->pos();
$this->offset = $table_offset;
$table_length = $data->encode();
$font->seek($table_offset);
$table_data = $font->read($table_length);
$font->seek($entry_offset);
$font->write($this->tag, 4);
$font->writeUInt32(self::computeChecksum($table_data));
$font->writeUInt32($table_offset);
$font->writeUInt32($table_length);
Font::d("Bytes written = $table_length");
$font->seek($table_offset + $table_length);
}
/**
* @return File
*/
function getFont() {
return $this->font;
}
function startRead() {
$this->font->seek($this->offset);
}
function endRead() {
//
}
function startWrite() {
$this->font->seek($this->offset);
}
function endWrite() {
//
}
}

View File

@ -0,0 +1,93 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\Table;
use FontLib\TrueType\File;
use FontLib\Font;
use FontLib\BinaryStream;
/**
* Generic font table.
*
* @package php-font-lib
*/
class Table extends BinaryStream {
/**
* @var DirectoryEntry
*/
protected $entry;
protected $def = array();
public $data;
final public function __construct(DirectoryEntry $entry) {
$this->entry = $entry;
$entry->setTable($this);
}
/**
* @return File
*/
public function getFont() {
return $this->entry->getFont();
}
protected function _encode() {
if (empty($this->data)) {
Font::d(" >> Table is empty");
return 0;
}
return $this->getFont()->pack($this->def, $this->data);
}
protected function _parse() {
$this->data = $this->getFont()->unpack($this->def);
}
protected function _parseRaw() {
$this->data = $this->getFont()->read($this->entry->length);
}
protected function _encodeRaw() {
return $this->getFont()->write($this->data, $this->entry->length);
}
public function toHTML() {
return "<pre>" . var_export($this->data, true) . "</pre>";
}
final public function encode() {
$this->entry->startWrite();
if (false && empty($this->def)) {
$length = $this->_encodeRaw();
}
else {
$length = $this->_encode();
}
$this->entry->endWrite();
return $length;
}
final public function parse() {
$this->entry->startRead();
if (false && empty($this->def)) {
$this->_parseRaw();
}
else {
$this->_parse();
}
$this->entry->endRead();
}
}

View File

@ -0,0 +1,298 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\Table\Type;
use FontLib\Table\Table;
/**
* `cmap` font table.
*
* @package php-font-lib
*/
class cmap extends Table {
private static $header_format = array(
"version" => self::uint16,
"numberSubtables" => self::uint16,
);
private static $subtable_header_format = array(
"platformID" => self::uint16,
"platformSpecificID" => self::uint16,
"offset" => self::uint32,
);
private static $subtable_v4_format = array(
"length" => self::uint16,
"language" => self::uint16,
"segCountX2" => self::uint16,
"searchRange" => self::uint16,
"entrySelector" => self::uint16,
"rangeShift" => self::uint16,
);
private static $subtable_v12_format = array(
"length" => self::uint32,
"language" => self::uint32,
"ngroups" => self::uint32
);
protected function _parse() {
$font = $this->getFont();
$cmap_offset = $font->pos();
$data = $font->unpack(self::$header_format);
$subtables = array();
for ($i = 0; $i < $data["numberSubtables"]; $i++) {
$subtables[] = $font->unpack(self::$subtable_header_format);
}
$data["subtables"] = $subtables;
foreach ($data["subtables"] as $i => &$subtable) {
$font->seek($cmap_offset + $subtable["offset"]);
$subtable["format"] = $font->readUInt16();
// @todo Only CMAP version 4 and 12
if (($subtable["format"] != 4) && ($subtable["format"] != 12)) {
unset($data["subtables"][$i]);
$data["numberSubtables"]--;
continue;
}
if ($subtable["format"] == 12) {
$font->readUInt16();
$subtable += $font->unpack(self::$subtable_v12_format);
$glyphIndexArray = array();
$endCodes = array();
$startCodes = array();
for ($p = 0; $p < $subtable['ngroups']; $p++) {
$startCode = $startCodes[] = $font->readUInt32();
$endCode = $endCodes[] = $font->readUInt32();
$startGlyphCode = $font->readUInt32();
for ($c = $startCode; $c <= $endCode; $c++) {
$glyphIndexArray[$c] = $startGlyphCode;
$startGlyphCode++;
}
}
$subtable += array(
"startCode" => $startCodes,
"endCode" => $endCodes,
"glyphIndexArray" => $glyphIndexArray,
);
}
else if ($subtable["format"] == 4) {
$subtable += $font->unpack(self::$subtable_v4_format);
$segCount = $subtable["segCountX2"] / 2;
$subtable["segCount"] = $segCount;
$endCode = $font->readUInt16Many($segCount);
$font->readUInt16(); // reservedPad
$startCode = $font->readUInt16Many($segCount);
$idDelta = $font->readInt16Many($segCount);
$ro_start = $font->pos();
$idRangeOffset = $font->readUInt16Many($segCount);
$glyphIndexArray = array();
for ($i = 0; $i < $segCount; $i++) {
$c1 = $startCode[$i];
$c2 = $endCode[$i];
$d = $idDelta[$i];
$ro = $idRangeOffset[$i];
if ($ro > 0) {
$font->seek($subtable["offset"] + 2 * $i + $ro);
}
for ($c = $c1; $c <= $c2; $c++) {
if ($ro == 0) {
$gid = ($c + $d) & 0xFFFF;
}
else {
$offset = ($c - $c1) * 2 + $ro;
$offset = $ro_start + 2 * $i + $offset;
$font->seek($offset);
$gid = $font->readUInt16();
if ($gid != 0) {
$gid = ($gid + $d) & 0xFFFF;
}
}
if ($gid > 0) {
$glyphIndexArray[$c] = $gid;
}
}
}
$subtable += array(
"endCode" => $endCode,
"startCode" => $startCode,
"idDelta" => $idDelta,
"idRangeOffset" => $idRangeOffset,
"glyphIndexArray" => $glyphIndexArray,
);
}
}
$this->data = $data;
}
function _encode() {
$font = $this->getFont();
$subset = $font->getSubset();
$glyphIndexArray = $font->getUnicodeCharMap();
$newGlyphIndexArray = array();
foreach ($glyphIndexArray as $code => $gid) {
$new_gid = array_search($gid, $subset);
if ($new_gid !== false) {
$newGlyphIndexArray[$code] = $new_gid;
}
}
ksort($newGlyphIndexArray); // Sort by char code
$segments = array();
$i = -1;
$prevCode = 0xFFFF;
$prevGid = 0xFFFF;
foreach ($newGlyphIndexArray as $code => $gid) {
if (
$prevCode + 1 != $code ||
$prevGid + 1 != $gid
) {
$i++;
$segments[$i] = array();
}
$segments[$i][] = array($code, $gid);
$prevCode = $code;
$prevGid = $gid;
}
$segments[][] = array(0xFFFF, 0xFFFF);
$startCode = array();
$endCode = array();
$idDelta = array();
foreach ($segments as $codes) {
$start = reset($codes);
$end = end($codes);
$startCode[] = $start[0];
$endCode[] = $end[0];
$idDelta[] = $start[1] - $start[0];
}
$segCount = count($startCode);
$idRangeOffset = array_fill(0, $segCount, 0);
$searchRange = 1;
$entrySelector = 0;
while ($searchRange * 2 <= $segCount) {
$searchRange *= 2;
$entrySelector++;
}
$searchRange *= 2;
$rangeShift = $segCount * 2 - $searchRange;
$subtables = array(
array(
// header
"platformID" => 3, // Unicode
"platformSpecificID" => 1,
"offset" => null,
// subtable
"format" => 4,
"length" => null,
"language" => 0,
"segCount" => $segCount,
"segCountX2" => $segCount * 2,
"searchRange" => $searchRange,
"entrySelector" => $entrySelector,
"rangeShift" => $rangeShift,
"startCode" => $startCode,
"endCode" => $endCode,
"idDelta" => $idDelta,
"idRangeOffset" => $idRangeOffset,
"glyphIndexArray" => $newGlyphIndexArray,
)
);
$data = array(
"version" => 0,
"numberSubtables" => count($subtables),
"subtables" => $subtables,
);
$length = $font->pack(self::$header_format, $data);
$subtable_headers_size = $data["numberSubtables"] * 8; // size of self::$subtable_header_format
$subtable_headers_offset = $font->pos();
$length += $font->write(str_repeat("\0", $subtable_headers_size), $subtable_headers_size);
// write subtables data
foreach ($data["subtables"] as $i => $subtable) {
$length_before = $length;
$data["subtables"][$i]["offset"] = $length;
$length += $font->writeUInt16($subtable["format"]);
$before_subheader = $font->pos();
$length += $font->pack(self::$subtable_v4_format, $subtable);
$segCount = $subtable["segCount"];
$length += $font->w(array(self::uint16, $segCount), $subtable["endCode"]);
$length += $font->writeUInt16(0); // reservedPad
$length += $font->w(array(self::uint16, $segCount), $subtable["startCode"]);
$length += $font->w(array(self::int16, $segCount), $subtable["idDelta"]);
$length += $font->w(array(self::uint16, $segCount), $subtable["idRangeOffset"]);
$length += $font->w(array(self::uint16, $segCount), array_values($subtable["glyphIndexArray"]));
$after_subtable = $font->pos();
$subtable["length"] = $length - $length_before;
$font->seek($before_subheader);
$length += $font->pack(self::$subtable_v4_format, $subtable);
$font->seek($after_subtable);
}
// write subtables headers
$font->seek($subtable_headers_offset);
foreach ($data["subtables"] as $subtable) {
$font->pack(self::$subtable_header_format, $subtable);
}
return $length;
}
}

View File

@ -0,0 +1,154 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\Table\Type;
use FontLib\Table\Table;
use FontLib\Glyph\Outline;
use FontLib\Glyph\OutlineSimple;
/**
* `glyf` font table.
*
* @package php-font-lib
* @property Outline[] $data
*/
class glyf extends Table {
protected function _parse() {
$font = $this->getFont();
$offset = $font->pos();
$loca = $font->getData("loca");
$real_loca = array_slice($loca, 0, -1); // Not the last dummy loca entry
$data = array();
foreach ($real_loca as $gid => $location) {
$_offset = $offset + $loca[$gid];
$_size = $loca[$gid + 1] - $loca[$gid];
$data[$gid] = Outline::init($this, $_offset, $_size, $font);
}
$this->data = $data;
}
public function getGlyphIDs($gids = array()) {
$glyphIDs = array();
foreach ($gids as $_gid) {
$_glyph = $this->data[$_gid];
$glyphIDs = array_merge($glyphIDs, $_glyph->getGlyphIDs());
}
return array_unique(array_merge($gids, $glyphIDs));
}
public function toHTML() {
$max = 160;
$font = $this->getFont();
$head = $font->getData("head");
$head_json = json_encode($head);
$os2 = $font->getData("OS/2");
$os2_json = json_encode($os2);
$hmtx = $font->getData("hmtx");
$hmtx_json = json_encode($hmtx);
$names = $font->getData("post", "names");
$glyphIndexArray = array_flip($font->getUnicodeCharMap());
$width = (abs($head["xMin"]) + $head["xMax"]);
$height = (abs($head["yMin"]) + $head["yMax"]);
$ratio = 1;
if ($width > $max || $height > $max) {
$ratio = max($width, $height) / $max;
$width = round($width / $ratio);
$height = round($height / $ratio);
}
$n = 500;
$s = "<h3>" . "Only the first $n simple glyphs are shown (" . count($this->data) . " total)
<div class='glyph-view simple'>Simple glyph</div>
<div class='glyph-view composite'>Composite glyph</div>
Zoom: <input type='range' value='100' max='400' onchange='Glyph.resize(this.value)' />
</h3>
<script>
Glyph.ratio = $ratio;
Glyph.head = $head_json;
Glyph.os2 = $os2_json;
Glyph.hmtx = $hmtx_json;
Glyph.width = $width;
Glyph.height = $height;
</script>";
foreach ($this->data as $g => $glyph) {
if ($n-- <= 0) {
break;
}
$glyph->parseData();
$shape = array(
"SVGContours" => $glyph->getSVGContours(),
"xMin" => $glyph->xMin,
"yMin" => $glyph->yMin,
"xMax" => $glyph->xMax,
"yMax" => $glyph->yMax,
);
$shape_json = json_encode($shape);
$type = ($glyph instanceof OutlineSimple ? "simple" : "composite");
$char = isset($glyphIndexArray[$g]) ? $glyphIndexArray[$g] : 0;
$name = isset($names[$g]) ? $names[$g] : sprintf("uni%04x", $char);
$char = $char ? "&#{$glyphIndexArray[$g]};" : "";
$s .= "<div class='glyph-view $type' id='glyph-$g'>
<span class='glyph-id'>$g</span>
<span class='char'>$char</span>
<span class='char-name'>$name</span>
";
if ($type == "composite") {
foreach ($glyph->getGlyphIDs() as $_id) {
$s .= "<a href='#glyph-$_id' class='glyph-component-id'>$_id</a> ";
}
}
$s .= "<br />
<canvas width='$width' height='$height' id='glyph-canvas-$g'></canvas>
</div>
<script>Glyph.glyphs.push([$g,$shape_json]);</script>";
}
return $s;
}
protected function _encode() {
$font = $this->getFont();
$subset = $font->getSubset();
$data = $this->data;
$loca = array();
$length = 0;
foreach ($subset as $gid) {
$loca[] = $length;
$length += $data[$gid]->encode();
}
$loca[] = $length; // dummy loca
$font->getTableObject("loca")->data = $loca;
return $length;
}
}

View File

@ -0,0 +1,46 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\Table\Type;
use FontLib\Table\Table;
use Exception;
/**
* `head` font table.
*
* @package php-font-lib
*/
class head extends Table {
protected $def = array(
"tableVersion" => self::Fixed,
"fontRevision" => self::Fixed,
"checkSumAdjustment" => self::uint32,
"magicNumber" => self::uint32,
"flags" => self::uint16,
"unitsPerEm" => self::uint16,
"created" => self::longDateTime,
"modified" => self::longDateTime,
"xMin" => self::FWord,
"yMin" => self::FWord,
"xMax" => self::FWord,
"yMax" => self::FWord,
"macStyle" => self::uint16,
"lowestRecPPEM" => self::uint16,
"fontDirectionHint" => self::int16,
"indexToLocFormat" => self::int16,
"glyphDataFormat" => self::int16,
);
protected function _parse() {
parent::_parse();
if ($this->data["magicNumber"] != 0x5F0F3CF5) {
throw new Exception("Incorrect magic number (" . dechex($this->data["magicNumber"]) . ")");
}
}
}

View File

@ -0,0 +1,44 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\Table\Type;
use FontLib\Table\Table;
/**
* `hhea` font table.
*
* @package php-font-lib
*/
class hhea extends Table {
protected $def = array(
"version" => self::Fixed,
"ascent" => self::FWord,
"descent" => self::FWord,
"lineGap" => self::FWord,
"advanceWidthMax" => self::uFWord,
"minLeftSideBearing" => self::FWord,
"minRightSideBearing" => self::FWord,
"xMaxExtent" => self::FWord,
"caretSlopeRise" => self::int16,
"caretSlopeRun" => self::int16,
"caretOffset" => self::FWord,
self::int16,
self::int16,
self::int16,
self::int16,
"metricDataFormat" => self::int16,
"numOfLongHorMetrics" => self::uint16,
);
function _encode() {
$font = $this->getFont();
$this->data["numOfLongHorMetrics"] = count($font->getSubset());
return parent::_encode();
}
}

View File

@ -0,0 +1,59 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\Table\Type;
use FontLib\Table\Table;
/**
* `hmtx` font table.
*
* @package php-font-lib
*/
class hmtx extends Table {
protected function _parse() {
$font = $this->getFont();
$offset = $font->pos();
$numOfLongHorMetrics = $font->getData("hhea", "numOfLongHorMetrics");
$numGlyphs = $font->getData("maxp", "numGlyphs");
$font->seek($offset);
$data = array();
$metrics = $font->readUInt16Many($numOfLongHorMetrics * 2);
for ($gid = 0, $mid = 0; $gid < $numOfLongHorMetrics; $gid++) {
$advanceWidth = isset($metrics[$mid]) ? $metrics[$mid] : 0;
$mid += 1;
$leftSideBearing = isset($metrics[$mid]) ? $metrics[$mid] : 0;
$mid += 1;
$data[$gid] = array($advanceWidth, $leftSideBearing);
}
if ($numOfLongHorMetrics < $numGlyphs) {
$lastWidth = end($data);
$data = array_pad($data, $numGlyphs, $lastWidth);
}
$this->data = $data;
}
protected function _encode() {
$font = $this->getFont();
$subset = $font->getSubset();
$data = $this->data;
$length = 0;
foreach ($subset as $gid) {
$length += $font->writeUInt16($data[$gid][0]);
$length += $font->writeUInt16($data[$gid][1]);
}
return $length;
}
}

View File

@ -0,0 +1,80 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\Table\Type;
use FontLib\Table\Table;
/**
* `kern` font table.
*
* @package php-font-lib
*/
class kern extends Table {
protected function _parse() {
$font = $this->getFont();
$data = $font->unpack(array(
"version" => self::uint16,
"nTables" => self::uint16,
// only the first subtable will be parsed
"subtableVersion" => self::uint16,
"length" => self::uint16,
"coverage" => self::uint16,
));
$data["format"] = ($data["coverage"] >> 8);
$subtable = array();
switch ($data["format"]) {
case 0:
$subtable = $font->unpack(array(
"nPairs" => self::uint16,
"searchRange" => self::uint16,
"entrySelector" => self::uint16,
"rangeShift" => self::uint16,
));
$pairs = array();
$tree = array();
$values = $font->readUInt16Many($subtable["nPairs"] * 3);
for ($i = 0, $idx = 0; $i < $subtable["nPairs"]; $i++) {
$left = $values[$idx++];
$right = $values[$idx++];
$value = $values[$idx++];
if ($value >= 0x8000) {
$value -= 0x10000;
}
$pairs[] = array(
"left" => $left,
"right" => $right,
"value" => $value,
);
$tree[$left][$right] = $value;
}
//$subtable["pairs"] = $pairs;
$subtable["tree"] = $tree;
break;
case 1:
case 2:
case 3:
break;
}
$data["subtable"] = $subtable;
$this->data = $data;
}
}

View File

@ -0,0 +1,80 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\Table\Type;
use FontLib\Table\Table;
/**
* `loca` font table.
*
* @package php-font-lib
*/
class loca extends Table {
protected function _parse() {
$font = $this->getFont();
$offset = $font->pos();
$indexToLocFormat = $font->getData("head", "indexToLocFormat");
$numGlyphs = $font->getData("maxp", "numGlyphs");
$font->seek($offset);
$data = array();
// 2 bytes
if ($indexToLocFormat == 0) {
$d = $font->read(($numGlyphs + 1) * 2);
$loc = unpack("n*", $d);
for ($i = 0; $i <= $numGlyphs; $i++) {
$data[] = isset($loc[$i + 1]) ? $loc[$i + 1] * 2 : 0;
}
}
// 4 bytes
else {
if ($indexToLocFormat == 1) {
$d = $font->read(($numGlyphs + 1) * 4);
$loc = unpack("N*", $d);
for ($i = 0; $i <= $numGlyphs; $i++) {
$data[] = isset($loc[$i + 1]) ? $loc[$i + 1] : 0;
}
}
}
$this->data = $data;
}
function _encode() {
$font = $this->getFont();
$data = $this->data;
$indexToLocFormat = $font->getData("head", "indexToLocFormat");
$numGlyphs = $font->getData("maxp", "numGlyphs");
$length = 0;
// 2 bytes
if ($indexToLocFormat == 0) {
for ($i = 0; $i <= $numGlyphs; $i++) {
$length += $font->writeUInt16($data[$i] / 2);
}
}
// 4 bytes
else {
if ($indexToLocFormat == 1) {
for ($i = 0; $i <= $numGlyphs; $i++) {
$length += $font->writeUInt32($data[$i]);
}
}
}
return $length;
}
}

View File

@ -0,0 +1,42 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\Table\Type;
use FontLib\Table\Table;
/**
* `maxp` font table.
*
* @package php-font-lib
*/
class maxp extends Table {
protected $def = array(
"version" => self::Fixed,
"numGlyphs" => self::uint16,
"maxPoints" => self::uint16,
"maxContours" => self::uint16,
"maxComponentPoints" => self::uint16,
"maxComponentContours" => self::uint16,
"maxZones" => self::uint16,
"maxTwilightPoints" => self::uint16,
"maxStorage" => self::uint16,
"maxFunctionDefs" => self::uint16,
"maxInstructionDefs" => self::uint16,
"maxStackElements" => self::uint16,
"maxSizeOfInstructions" => self::uint16,
"maxComponentElements" => self::uint16,
"maxComponentDepth" => self::uint16,
);
function _encode() {
$font = $this->getFont();
$this->data["numGlyphs"] = count($font->getSubset());
return parent::_encode();
}
}

View File

@ -0,0 +1,193 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\Table\Type;
use FontLib\Table\Table;
use FontLib\Font;
/**
* `name` font table.
*
* @package php-font-lib
*/
class name extends Table {
private static $header_format = array(
"format" => self::uint16,
"count" => self::uint16,
"stringOffset" => self::uint16,
);
const NAME_COPYRIGHT = 0;
const NAME_NAME = 1;
const NAME_SUBFAMILY = 2;
const NAME_SUBFAMILY_ID = 3;
const NAME_FULL_NAME = 4;
const NAME_VERSION = 5;
const NAME_POSTSCRIPT_NAME = 6;
const NAME_TRADEMARK = 7;
const NAME_MANUFACTURER = 8;
const NAME_DESIGNER = 9;
const NAME_DESCRIPTION = 10;
const NAME_VENDOR_URL = 11;
const NAME_DESIGNER_URL = 12;
const NAME_LICENSE = 13;
const NAME_LICENSE_URL = 14;
const NAME_PREFERRE_FAMILY = 16;
const NAME_PREFERRE_SUBFAMILY = 17;
const NAME_COMPAT_FULL_NAME = 18;
const NAME_SAMPLE_TEXT = 19;
static $nameIdCodes = array(
0 => "Copyright",
1 => "FontName",
2 => "FontSubfamily",
3 => "UniqueID",
4 => "FullName",
5 => "Version",
6 => "PostScriptName",
7 => "Trademark",
8 => "Manufacturer",
9 => "Designer",
10 => "Description",
11 => "FontVendorURL",
12 => "FontDesignerURL",
13 => "LicenseDescription",
14 => "LicenseURL",
// 15
16 => "PreferredFamily",
17 => "PreferredSubfamily",
18 => "CompatibleFullName",
19 => "SampleText",
);
static $platforms = array(
0 => "Unicode",
1 => "Macintosh",
// 2 => Reserved
3 => "Microsoft",
);
static $platformSpecific = array(
// Unicode
0 => array(
0 => "Default semantics",
1 => "Version 1.1 semantics",
2 => "ISO 10646 1993 semantics (deprecated)",
3 => "Unicode 2.0 or later semantics",
),
// Macintosh
1 => array(
0 => "Roman",
1 => "Japanese",
2 => "Traditional Chinese",
3 => "Korean",
4 => "Arabic",
5 => "Hebrew",
6 => "Greek",
7 => "Russian",
8 => "RSymbol",
9 => "Devanagari",
10 => "Gurmukhi",
11 => "Gujarati",
12 => "Oriya",
13 => "Bengali",
14 => "Tamil",
15 => "Telugu",
16 => "Kannada",
17 => "Malayalam",
18 => "Sinhalese",
19 => "Burmese",
20 => "Khmer",
21 => "Thai",
22 => "Laotian",
23 => "Georgian",
24 => "Armenian",
25 => "Simplified Chinese",
26 => "Tibetan",
27 => "Mongolian",
28 => "Geez",
29 => "Slavic",
30 => "Vietnamese",
31 => "Sindhi",
),
// Microsoft
3 => array(
0 => "Symbol",
1 => "Unicode BMP (UCS-2)",
2 => "ShiftJIS",
3 => "PRC",
4 => "Big5",
5 => "Wansung",
6 => "Johab",
// 7 => Reserved
// 8 => Reserved
// 9 => Reserved
10 => "Unicode UCS-4",
),
);
protected function _parse() {
$font = $this->getFont();
$tableOffset = $font->pos();
$data = $font->unpack(self::$header_format);
$records = array();
for ($i = 0; $i < $data["count"]; $i++) {
$record = new nameRecord();
$record_data = $font->unpack(nameRecord::$format);
$record->map($record_data);
$records[] = $record;
}
$names = array();
foreach ($records as $record) {
$font->seek($tableOffset + $data["stringOffset"] + $record->offset);
$s = $font->read($record->length);
$record->string = Font::UTF16ToUTF8($s);
$names[$record->nameID] = $record;
}
$data["records"] = $names;
$this->data = $data;
}
protected function _encode() {
$font = $this->getFont();
/** @var nameRecord[] $records */
$records = $this->data["records"];
$count_records = count($records);
$this->data["count"] = $count_records;
$this->data["stringOffset"] = 6 + $count_records * 12; // 6 => uint16 * 3, 12 => sizeof self::$record_format
$length = $font->pack(self::$header_format, $this->data);
$offset = 0;
foreach ($records as $record) {
$record->length = mb_strlen($record->getUTF16(), "8bit");
$record->offset = $offset;
$offset += $record->length;
$length += $font->pack(nameRecord::$format, (array)$record);
}
foreach ($records as $record) {
$str = $record->getUTF16();
$length += $font->write($str, mb_strlen($str, "8bit"));
}
return $length;
}
}

View File

@ -0,0 +1,53 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\Table\Type;
use FontLib\Font;
use FontLib\BinaryStream;
/**
* Font table name record.
*
* @package php-font-lib
*/
class nameRecord extends BinaryStream {
public $platformID;
public $platformSpecificID;
public $languageID;
public $nameID;
public $length;
public $offset;
public $string;
public static $format = array(
"platformID" => self::uint16,
"platformSpecificID" => self::uint16,
"languageID" => self::uint16,
"nameID" => self::uint16,
"length" => self::uint16,
"offset" => self::uint16,
);
public function map($data) {
foreach ($data as $key => $value) {
$this->$key = $value;
}
}
public function getUTF8() {
return $this->string;
}
public function getUTF16() {
return Font::UTF8ToUTF16($this->string);
}
function __toString() {
return $this->string;
}
}

View File

@ -0,0 +1,47 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\Table\Type;
use FontLib\Table\Table;
/**
* `OS/2` font table.
*
* @package php-font-lib
*/
class os2 extends Table {
protected $def = array(
"version" => self::uint16,
"xAvgCharWidth" => self::int16,
"usWeightClass" => self::uint16,
"usWidthClass" => self::uint16,
"fsType" => self::int16,
"ySubscriptXSize" => self::int16,
"ySubscriptYSize" => self::int16,
"ySubscriptXOffset" => self::int16,
"ySubscriptYOffset" => self::int16,
"ySuperscriptXSize" => self::int16,
"ySuperscriptYSize" => self::int16,
"ySuperscriptXOffset" => self::int16,
"ySuperscriptYOffset" => self::int16,
"yStrikeoutSize" => self::int16,
"yStrikeoutPosition" => self::int16,
"sFamilyClass" => self::int16,
"panose" => array(self::uint8, 10),
"ulCharRange" => array(self::uint32, 4),
"achVendID" => array(self::char, 4),
"fsSelection" => self::uint16,
"fsFirstCharIndex" => self::uint16,
"fsLastCharIndex" => self::uint16,
"typoAscender" => self::int16,
"typoDescender" => self::int16,
"typoLineGap" => self::int16,
"winAscent" => self::int16,
"winDescent" => self::int16,
);
}

View File

@ -0,0 +1,141 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\Table\Type;
use FontLib\Table\Table;
use FontLib\TrueType\File;
/**
* `post` font table.
*
* @package php-font-lib
*/
class post extends Table {
protected $def = array(
"format" => self::Fixed,
"italicAngle" => self::Fixed,
"underlinePosition" => self::FWord,
"underlineThickness" => self::FWord,
"isFixedPitch" => self::uint32,
"minMemType42" => self::uint32,
"maxMemType42" => self::uint32,
"minMemType1" => self::uint32,
"maxMemType1" => self::uint32,
);
protected function _parse() {
$font = $this->getFont();
$data = $font->unpack($this->def);
$names = array();
switch ($data["format"]) {
case 1:
$names = File::$macCharNames;
break;
case 2:
$data["numberOfGlyphs"] = $font->readUInt16();
$glyphNameIndex = $font->readUInt16Many($data["numberOfGlyphs"]);
$data["glyphNameIndex"] = $glyphNameIndex;
$namesPascal = array();
for ($i = 0; $i < $data["numberOfGlyphs"]; $i++) {
$len = $font->readUInt8();
$namesPascal[] = $font->read($len);
}
foreach ($glyphNameIndex as $g => $index) {
if ($index < 258) {
$names[$g] = File::$macCharNames[$index];
}
else {
$names[$g] = $namesPascal[$index - 258];
}
}
break;
case 2.5:
// TODO
break;
case 3:
// nothing
break;
case 4:
// TODO
break;
}
$data["names"] = $names;
$this->data = $data;
}
function _encode() {
$font = $this->getFont();
$data = $this->data;
$data["format"] = 3;
$length = $font->pack($this->def, $data);
return $length;
/*
$subset = $font->getSubset();
switch($data["format"]) {
case 1:
// nothing to do
break;
case 2:
$old_names = $data["names"];
$glyphNameIndex = range(0, count($subset));
$names = array();
foreach($subset as $gid) {
$names[] = $data["names"][$data["glyphNameIndex"][$gid]];
}
$numberOfGlyphs = count($names);
$length += $font->writeUInt16($numberOfGlyphs);
foreach($glyphNameIndex as $gni) {
$length += $font->writeUInt16($gni);
}
//$names = array_slice($names, 257);
foreach($names as $name) {
$len = strlen($name);
$length += $font->writeUInt8($len);
$length += $font->write($name, $len);
}
break;
case 2.5:
// TODO
break;
case 3:
// nothing
break;
case 4:
// TODO
break;
}
return $length;*/
}
}

View File

@ -0,0 +1,100 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\TrueType;
use Countable;
use FontLib\BinaryStream;
use Iterator;
use OutOfBoundsException;
/**
* TrueType collection font file.
*
* @package php-font-lib
*/
class Collection extends BinaryStream implements Iterator, Countable {
/**
* Current iterator position.
*
* @var integer
*/
private $position = 0;
protected $collectionOffsets = array();
protected $collection = array();
protected $version;
protected $numFonts;
function parse() {
if (isset($this->numFonts)) {
return;
}
$this->read(4); // tag name
$this->version = $this->readFixed();
$this->numFonts = $this->readUInt32();
for ($i = 0; $i < $this->numFonts; $i++) {
$this->collectionOffsets[] = $this->readUInt32();
}
}
/**
* @param int $fontId
*
* @throws OutOfBoundsException
* @return File
*/
function getFont($fontId) {
$this->parse();
if (!isset($this->collectionOffsets[$fontId])) {
throw new OutOfBoundsException();
}
if (isset($this->collection[$fontId])) {
return $this->collection[$fontId];
}
$font = new File();
$font->f = $this->f;
$font->setTableOffset($this->collectionOffsets[$fontId]);
return $this->collection[$fontId] = $font;
}
function current() {
return $this->getFont($this->position);
}
function key() {
return $this->position;
}
function next() {
return ++$this->position;
}
function rewind() {
$this->position = 0;
}
function valid() {
$this->parse();
return isset($this->collectionOffsets[$this->position]);
}
function count() {
$this->parse();
return $this->numFonts;
}
}

View File

@ -0,0 +1,471 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\TrueType;
use FontLib\AdobeFontMetrics;
use FontLib\Font;
use FontLib\BinaryStream;
use FontLib\Table\Table;
use FontLib\Table\DirectoryEntry;
use FontLib\Table\Type\glyf;
use FontLib\Table\Type\name;
use FontLib\Table\Type\nameRecord;
/**
* TrueType font file.
*
* @package php-font-lib
*/
class File extends BinaryStream {
/**
* @var Header
*/
public $header = array();
private $tableOffset = 0; // Used for TTC
private static $raw = false;
protected $directory = array();
protected $data = array();
protected $glyph_subset = array();
public $glyph_all = array();
static $macCharNames = array(
".notdef", ".null", "CR",
"space", "exclam", "quotedbl", "numbersign",
"dollar", "percent", "ampersand", "quotesingle",
"parenleft", "parenright", "asterisk", "plus",
"comma", "hyphen", "period", "slash",
"zero", "one", "two", "three",
"four", "five", "six", "seven",
"eight", "nine", "colon", "semicolon",
"less", "equal", "greater", "question",
"at", "A", "B", "C", "D", "E", "F", "G",
"H", "I", "J", "K", "L", "M", "N", "O",
"P", "Q", "R", "S", "T", "U", "V", "W",
"X", "Y", "Z", "bracketleft",
"backslash", "bracketright", "asciicircum", "underscore",
"grave", "a", "b", "c", "d", "e", "f", "g",
"h", "i", "j", "k", "l", "m", "n", "o",
"p", "q", "r", "s", "t", "u", "v", "w",
"x", "y", "z", "braceleft",
"bar", "braceright", "asciitilde", "Adieresis",
"Aring", "Ccedilla", "Eacute", "Ntilde",
"Odieresis", "Udieresis", "aacute", "agrave",
"acircumflex", "adieresis", "atilde", "aring",
"ccedilla", "eacute", "egrave", "ecircumflex",
"edieresis", "iacute", "igrave", "icircumflex",
"idieresis", "ntilde", "oacute", "ograve",
"ocircumflex", "odieresis", "otilde", "uacute",
"ugrave", "ucircumflex", "udieresis", "dagger",
"degree", "cent", "sterling", "section",
"bullet", "paragraph", "germandbls", "registered",
"copyright", "trademark", "acute", "dieresis",
"notequal", "AE", "Oslash", "infinity",
"plusminus", "lessequal", "greaterequal", "yen",
"mu", "partialdiff", "summation", "product",
"pi", "integral", "ordfeminine", "ordmasculine",
"Omega", "ae", "oslash", "questiondown",
"exclamdown", "logicalnot", "radical", "florin",
"approxequal", "increment", "guillemotleft", "guillemotright",
"ellipsis", "nbspace", "Agrave", "Atilde",
"Otilde", "OE", "oe", "endash",
"emdash", "quotedblleft", "quotedblright", "quoteleft",
"quoteright", "divide", "lozenge", "ydieresis",
"Ydieresis", "fraction", "currency", "guilsinglleft",
"guilsinglright", "fi", "fl", "daggerdbl",
"periodcentered", "quotesinglbase", "quotedblbase", "perthousand",
"Acircumflex", "Ecircumflex", "Aacute", "Edieresis",
"Egrave", "Iacute", "Icircumflex", "Idieresis",
"Igrave", "Oacute", "Ocircumflex", "applelogo",
"Ograve", "Uacute", "Ucircumflex", "Ugrave",
"dotlessi", "circumflex", "tilde", "macron",
"breve", "dotaccent", "ring", "cedilla",
"hungarumlaut", "ogonek", "caron", "Lslash",
"lslash", "Scaron", "scaron", "Zcaron",
"zcaron", "brokenbar", "Eth", "eth",
"Yacute", "yacute", "Thorn", "thorn",
"minus", "multiply", "onesuperior", "twosuperior",
"threesuperior", "onehalf", "onequarter", "threequarters",
"franc", "Gbreve", "gbreve", "Idot",
"Scedilla", "scedilla", "Cacute", "cacute",
"Ccaron", "ccaron", "dmacron"
);
function getTable() {
$this->parseTableEntries();
return $this->directory;
}
function setTableOffset($offset) {
$this->tableOffset = $offset;
}
function parse() {
$this->parseTableEntries();
$this->data = array();
foreach ($this->directory as $tag => $table) {
if (empty($this->data[$tag])) {
$this->readTable($tag);
}
}
}
function utf8toUnicode($str) {
$len = strlen($str);
$out = array();
for ($i = 0; $i < $len; $i++) {
$uni = -1;
$h = ord($str[$i]);
if ($h <= 0x7F) {
$uni = $h;
}
elseif ($h >= 0xC2) {
if (($h <= 0xDF) && ($i < $len - 1)) {
$uni = ($h & 0x1F) << 6 | (ord($str[++$i]) & 0x3F);
}
elseif (($h <= 0xEF) && ($i < $len - 2)) {
$uni = ($h & 0x0F) << 12 | (ord($str[++$i]) & 0x3F) << 6 | (ord($str[++$i]) & 0x3F);
}
elseif (($h <= 0xF4) && ($i < $len - 3)) {
$uni = ($h & 0x0F) << 18 | (ord($str[++$i]) & 0x3F) << 12 | (ord($str[++$i]) & 0x3F) << 6 | (ord($str[++$i]) & 0x3F);
}
}
if ($uni >= 0) {
$out[] = $uni;
}
}
return $out;
}
function getUnicodeCharMap() {
$subtable = null;
foreach ($this->getData("cmap", "subtables") as $_subtable) {
if ($_subtable["platformID"] == 0 || $_subtable["platformID"] == 3 && $_subtable["platformSpecificID"] == 1) {
$subtable = $_subtable;
break;
}
}
if ($subtable) {
return $subtable["glyphIndexArray"];
}
return null;
}
function setSubset($subset) {
if (!is_array($subset)) {
$subset = $this->utf8toUnicode($subset);
}
$subset = array_unique($subset);
$glyphIndexArray = $this->getUnicodeCharMap();
if (!$glyphIndexArray) {
return;
}
$gids = array(
0, // .notdef
1, // .null
);
foreach ($subset as $code) {
if (!isset($glyphIndexArray[$code])) {
continue;
}
$gid = $glyphIndexArray[$code];
$gids[$gid] = $gid;
}
/** @var glyf $glyf */
$glyf = $this->getTableObject("glyf");
$gids = $glyf->getGlyphIDs($gids);
sort($gids);
$this->glyph_subset = $gids;
$this->glyph_all = array_values($glyphIndexArray); // FIXME
}
function getSubset() {
if (empty($this->glyph_subset)) {
return $this->glyph_all;
}
return $this->glyph_subset;
}
function encode($tags = array()) {
if (!self::$raw) {
$tags = array_merge(array("head", "hhea", "cmap", "hmtx", "maxp", "glyf", "loca", "name", "post"), $tags);
}
else {
$tags = array_keys($this->directory);
}
$num_tables = count($tags);
$n = 16; // @todo
Font::d("Tables : " . implode(", ", $tags));
/** @var DirectoryEntry[] $entries */
$entries = array();
foreach ($tags as $tag) {
if (!isset($this->directory[$tag])) {
Font::d(" >> '$tag' table doesn't exist");
continue;
}
$entries[$tag] = $this->directory[$tag];
}
$this->header->data["numTables"] = $num_tables;
$this->header->encode();
$directory_offset = $this->pos();
$offset = $directory_offset + $num_tables * $n;
$this->seek($offset);
$i = 0;
foreach ($entries as $entry) {
$entry->encode($directory_offset + $i * $n);
$i++;
}
}
function parseHeader() {
if (!empty($this->header)) {
return;
}
$this->seek($this->tableOffset);
$this->header = new Header($this);
$this->header->parse();
}
function getFontType(){
$class_parts = explode("\\", get_class($this));
return $class_parts[1];
}
function parseTableEntries() {
$this->parseHeader();
if (!empty($this->directory)) {
return;
}
if (empty($this->header->data["numTables"])) {
return;
}
$type = $this->getFontType();
$class = "FontLib\\$type\\TableDirectoryEntry";
for ($i = 0; $i < $this->header->data["numTables"]; $i++) {
/** @var TableDirectoryEntry $entry */
$entry = new $class($this);
$entry->parse();
$this->directory[$entry->tag] = $entry;
}
}
function normalizeFUnit($value, $base = 1000) {
return round($value * ($base / $this->getData("head", "unitsPerEm")));
}
protected function readTable($tag) {
$this->parseTableEntries();
if (!self::$raw) {
$name_canon = preg_replace("/[^a-z0-9]/", "", strtolower($tag));
$class = "FontLib\\Table\\Type\\$name_canon";
if (!isset($this->directory[$tag]) || !@class_exists($class)) {
return;
}
}
else {
$class = "FontLib\\Table\\Table";
}
/** @var Table $table */
$table = new $class($this->directory[$tag]);
$table->parse();
$this->data[$tag] = $table;
}
/**
* @param $name
*
* @return Table
*/
public function getTableObject($name) {
return $this->data[$name];
}
public function setTableObject($name, Table $data) {
$this->data[$name] = $data;
}
public function getData($name, $key = null) {
$this->parseTableEntries();
if (empty($this->data[$name])) {
$this->readTable($name);
}
if (!isset($this->data[$name])) {
return null;
}
if (!$key) {
return $this->data[$name]->data;
}
else {
return $this->data[$name]->data[$key];
}
}
function addDirectoryEntry(DirectoryEntry $entry) {
$this->directory[$entry->tag] = $entry;
}
function saveAdobeFontMetrics($file, $encoding = null) {
$afm = new AdobeFontMetrics($this);
$afm->write($file, $encoding);
}
/**
* Get a specific name table string value from its ID
*
* @param int $nameID The name ID
*
* @return string|null
*/
function getNameTableString($nameID) {
/** @var nameRecord[] $records */
$records = $this->getData("name", "records");
if (!isset($records[$nameID])) {
return null;
}
return $records[$nameID]->string;
}
/**
* Get font copyright
*
* @return string|null
*/
function getFontCopyright() {
return $this->getNameTableString(name::NAME_COPYRIGHT);
}
/**
* Get font name
*
* @return string|null
*/
function getFontName() {
return $this->getNameTableString(name::NAME_NAME);
}
/**
* Get font subfamily
*
* @return string|null
*/
function getFontSubfamily() {
return $this->getNameTableString(name::NAME_SUBFAMILY);
}
/**
* Get font subfamily ID
*
* @return string|null
*/
function getFontSubfamilyID() {
return $this->getNameTableString(name::NAME_SUBFAMILY_ID);
}
/**
* Get font full name
*
* @return string|null
*/
function getFontFullName() {
return $this->getNameTableString(name::NAME_FULL_NAME);
}
/**
* Get font version
*
* @return string|null
*/
function getFontVersion() {
return $this->getNameTableString(name::NAME_VERSION);
}
/**
* Get font weight
*
* @return string|null
*/
function getFontWeight() {
return $this->getTableObject("OS/2")->data["usWeightClass"];
}
/**
* Get font Postscript name
*
* @return string|null
*/
function getFontPostscriptName() {
return $this->getNameTableString(name::NAME_POSTSCRIPT_NAME);
}
function reduce() {
$names_to_keep = array(
name::NAME_COPYRIGHT,
name::NAME_NAME,
name::NAME_SUBFAMILY,
name::NAME_SUBFAMILY_ID,
name::NAME_FULL_NAME,
name::NAME_VERSION,
name::NAME_POSTSCRIPT_NAME,
);
foreach ($this->data["name"]->data["records"] as $id => $rec) {
if (!in_array($id, $names_to_keep)) {
unset($this->data["name"]->data["records"][$id]);
}
}
}
}

View File

@ -0,0 +1,31 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\TrueType;
/**
* TrueType font file header.
*
* @package php-font-lib
*/
class Header extends \FontLib\Header {
protected $def = array(
"format" => self::uint32,
"numTables" => self::uint16,
"searchRange" => self::uint16,
"entrySelector" => self::uint16,
"rangeShift" => self::uint16,
);
public function parse() {
parent::parse();
$format = $this->data["format"];
$this->data["formatText"] = $this->convertUInt32ToStr($format);
}
}

View File

@ -0,0 +1,33 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\TrueType;
use FontLib\Table\DirectoryEntry;
/**
* TrueType table directory entry.
*
* @package php-font-lib
*/
class TableDirectoryEntry extends DirectoryEntry {
function __construct(File $font) {
parent::__construct($font);
}
function parse() {
parent::parse();
$font = $this->font;
$this->checksum = $font->readUInt32();
$this->offset = $font->readUInt32();
$this->length = $font->readUInt32();
$this->entryLength += 12;
}
}

View File

@ -0,0 +1,81 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\WOFF;
use FontLib\Table\DirectoryEntry;
/**
* WOFF font file.
*
* @package php-font-lib
*
* @property TableDirectoryEntry[] $directory
*/
class File extends \FontLib\TrueType\File {
function parseHeader() {
if (!empty($this->header)) {
return;
}
$this->header = new Header($this);
$this->header->parse();
}
public function load($file) {
parent::load($file);
$this->parseTableEntries();
$dataOffset = $this->pos() + count($this->directory) * 20;
$fw = $this->getTempFile(false);
$fr = $this->f;
$this->f = $fw;
$offset = $this->header->encode();
foreach ($this->directory as $entry) {
// Read ...
$this->f = $fr;
$this->seek($entry->offset);
$data = $this->read($entry->length);
if ($entry->length < $entry->origLength) {
$data = gzuncompress($data);
}
// Prepare data ...
$length = strlen($data);
$entry->length = $entry->origLength = $length;
$entry->offset = $dataOffset;
// Write ...
$this->f = $fw;
// Woff Entry
$this->seek($offset);
$offset += $this->write($entry->tag, 4); // tag
$offset += $this->writeUInt32($dataOffset); // offset
$offset += $this->writeUInt32($length); // length
$offset += $this->writeUInt32($length); // origLength
$offset += $this->writeUInt32(DirectoryEntry::computeChecksum($data)); // checksum
// Data
$this->seek($dataOffset);
$dataOffset += $this->write($data, $length);
}
$this->f = $fw;
$this->seek(0);
// Need to re-parse this, don't know why
$this->header = null;
$this->directory = array();
$this->parseTableEntries();
}
}

View File

@ -0,0 +1,32 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\WOFF;
/**
* WOFF font file header.
*
* @package php-font-lib
*/
class Header extends \FontLib\TrueType\Header {
protected $def = array(
"format" => self::uint32,
"flavor" => self::uint32,
"length" => self::uint32,
"numTables" => self::uint16,
self::uint16,
"totalSfntSize" => self::uint32,
"majorVersion" => self::uint16,
"minorVersion" => self::uint16,
"metaOffset" => self::uint32,
"metaLength" => self::uint32,
"metaOrigLength" => self::uint32,
"privOffset" => self::uint32,
"privLength" => self::uint32,
);
}

View File

@ -0,0 +1,34 @@
<?php
/**
* @package php-font-lib
* @link https://github.com/PhenX/php-font-lib
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*/
namespace FontLib\WOFF;
use FontLib\Table\DirectoryEntry;
/**
* WOFF font file table directory entry.
*
* @package php-font-lib
*/
class TableDirectoryEntry extends DirectoryEntry {
public $origLength;
function __construct(File $font) {
parent::__construct($font);
}
function parse() {
parent::parse();
$font = $this->font;
$this->offset = $font->readUInt32();
$this->length = $font->readUInt32();
$this->origLength = $font->readUInt32();
$this->checksum = $font->readUInt32();
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 267 B

After

Width:  |  Height:  |  Size: 618 B

View File

@ -1,60 +1,28 @@
/** /**
* DOMPDF - PHP5 HTML to PDF renderer * dompdf default stylesheet.
*
* File: $RCSfile: html.css,v $
* Created on: 2004-08-04
*
* Copyright (c) 2004 - Benj Carson <benjcarson@digitaljunkies.ca>
* 1998 - Netscape Communications Corporation
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library in the file LICENSE.LGPL; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
* 02111-1307 USA
*
* Originally from mozilla (http://www.mozilla.org). Original code was
* licensed under the NPL, with the option of release under the GPL or LGPL.
* This file is hence released under the LGPL.
* *
* The Original Code is mozilla.org code. * The Original Code is mozilla.org code.
* *
* The Initial Developer of the Original Code is * The Initial Developer of the Original Code is Netscape Communications Corporation.
* Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 the Initial Developer.
* Portions created by the Initial Developer are Copyright (C) 1998 * All Rights Reserved.
* the Initial Developer. All Rights Reserved.
* *
* Contributor(s):
* Blake Ross <BlakeR1234@aol.com>
*
* The latest version of DOMPDF might be available at:
* http://www.dompdf.com/
*
* @link http://www.dompdf.com/
* @copyright 2004 Benj Carson
* @author Benj Carson <benjcarson@digitaljunkies.ca>
* @package dompdf * @package dompdf
* @version 0.3 * @link http://dompdf.github.com/
* @author Benj Carson <benjcarson@digitaljunkies.ca>
* @author Blake Ross <BlakeR1234@aol.com>
* @author Fabien Ménager <fabien.menager@gmail.com>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
* @version $Id$
*/ */
/* $Id: html.css,v 1.4 2006-04-05 20:09:00 benjcarson Exp $ */
@page { @page {
margin: 1.2cm; margin: 1.2cm;
} }
html { html {
display: -dompdf-page; display: -dompdf-page;
counter-increment: page; counter-reset: page;
} }
/* blocks */ /* blocks */
@ -66,6 +34,7 @@ div, map, dt, isindex {
body { body {
page-break-before: avoid; page-break-before: avoid;
display: block; display: block;
counter-increment: page;
} }
p, dl, multicol { p, dl, multicol {
@ -151,6 +120,13 @@ plaintext, xmp, pre {
margin: 1em 0; margin: 1em 0;
} }
article, aside, details,
figcaption, figure,
footer, header, hgroup,
nav, section {
display: block;
}
/* tables */ /* tables */
table { table {
@ -182,7 +158,7 @@ td, th, tr {
/* caption inherits from table not table-outer */ /* caption inherits from table not table-outer */
caption { caption {
display: table-caption; display: block;
text-align: center; text-align: center;
} }
@ -247,7 +223,7 @@ q:after {
content: close-quote; content: close-quote;
} }
a:link { :link {
color: #00c; color: #00c;
text-decoration: underline; text-decoration: underline;
} }
@ -320,6 +296,12 @@ li {
display: list-item; display: list-item;
} }
/*li:before {
display: -dompdf-list-bullet !important;
content: counter(-dompdf-default-counter) ". ";
padding-right: 0.5em;
}*/
/* nested lists have no top/bottom margins */ /* nested lists have no top/bottom margins */
ul ul, ul ol, ul dir, ul menu, ul dl, ul ul, ul ol, ul dir, ul menu, ul dl,
ol ul, ol ol, ol dir, ol menu, ol dl, ol ul, ol ol, ol dir, ol menu, ol dl,
@ -354,35 +336,134 @@ dir ol dir, dir ul dir, dir menu dir, dir dir dir {
} }
/* forms */ /* forms */
/* From http://dev.w3.org/csswg/css3-ui/#appearance */
/* form {
input[type=text] { display: block;
border: 1pt solid black;
background-color: white;
} }
input[type=text]:before { input, button, select {
display: inline-block;
font-family: sans-serif;
}
input[type=text],
input[type=password],
select {
width: 12em;
}
input[type=text],
input[type=password],
input[type=button],
input[type=submit],
input[type=reset],
input[type=file],
button,
textarea,
select {
background: #FFF;
border: 1px solid #999;
padding: 2px;
margin: 2px;
}
input[type=button],
input[type=submit],
input[type=reset],
input[type=file],
button {
background: #CCC;
width: 8em;
text-align: center;
}
input[type=text]:before,
input[type=button]:before,
input[type=submit]:before,
input[type=reset]:before {
content: attr(value); content: attr(value);
}*/ }
input[type=file]:before {
content: "Chose a file";
}
input[type=password][value]:before {
font-family: "DejaVu Sans";
content: "\2022\2022\2022\2022\2022\2022\2022\2022";
line-height: 1em;
}
input[type=checkbox],
input[type=radio],
select:after {
font-family: "DejaVu Sans";
font-size: 18px;
line-height: 1;
}
input[type=checkbox]:before {
content: "\2610";
}
input[type=checkbox][checked]:before {
content: "\2611";
}
input[type=radio]:before {
content: "\25CB";
}
input[type=radio][checked]:before {
content: "\25C9";
}
textarea {
display: block;
height: 3em;
overflow: hidden;
font-family: monospace;
white-space: pre-wrap;
word-wrap: break-word;
}
select {
position: relative!important;
overflow: hidden!important;
}
select:after {
position: absolute;
right: 0;
top: 0;
height: 5em;
width: 1.4em;
text-align: center;
background: #CCC;
content: "\25BE";
}
select option {
display: none;
}
select option[selected] {
display: inline;
}
fieldset { fieldset {
display: block; display: block;
margin-left: 2px; margin: 0.6em 2px 2px;
margin-right: 2px; padding: 0.75em;
padding: 0.35em 0.625em 0.75em;
border: 1pt groove #666; border: 1pt groove #666;
position: relative;
} }
fieldset > legend { fieldset > legend {
padding-left: 2px; position: absolute;
padding-right: 2px; top: -0.6em;
min-width: 1em; left: 0.75em;
max-width: none; padding: 0 0.3em;
height: auto;
min-height: 0;
max-height: none;
white-space: nowrap;
margin-top: -1.0em;
background: white; background: white;
} }
@ -390,12 +471,11 @@ legend {
display: inline-block; display: inline-block;
} }
/* leafs */ /* leafs */
hr { hr {
display: block; display: block;
height: 2px; height: 0;
border: 1px inset; border: 1px inset;
margin: 0.5em auto 0.5em auto; margin: 0.5em auto 0.5em auto;
} }
@ -424,4 +504,5 @@ dompdf_generated {
area, base, basefont, head, meta, script, style, title, area, base, basefont, head, meta, script, style, title,
noembed, noscript, param { noembed, noscript, param {
display: none; display: none;
-dompdf-keep: yes;
} }

View File

@ -135,8 +135,8 @@
?> ?>
<style> <style>
@page { margin: 294px 25px 210px 25px; } @page { margin: 280px 25px 210px 25px; }
.header { position: fixed; left: 0px; top: -294px; right: 0px; height: 500px;text-align: center; } .header { position: fixed; left: 0px; top: -280px; right: 0px; height: 500px;text-align: center; }
.footer { position: fixed; bottom: 10px;} .footer { position: fixed; bottom: 10px;}
.pagenum:before { content: counter(page); } .pagenum:before { content: counter(page); }
</style> </style>
@ -241,10 +241,10 @@
{ {
?> ?>
<tr> <tr>
<td><strong>Indent :</strong></td> <td width="8%"><strong>Indent :</strong></td>
<td><?php echo $ReqDetails['RequistionNo']; ?></td> <td width="11%"><?php echo $ReqDetails['RequistionNo']; ?></td>
<td><?php $date = new DateTime($ReqDetails['ReqDate'],new DateTimeZone('Asia/Kolkata')); $date=$date->format("d-m-Y"); echo $date; ?></td> <td><?php $date = new DateTime($ReqDetails['ReqDate'],new DateTimeZone('Asia/Kolkata')); $date=$date->format("d-m-Y"); echo $date; ?></td>
<td><strong>Dept:</strong> <?php echo $ReqDetails['RequestedDept']; ?></td> <td width="11%"><strong>Dept:</strong> <?php echo $ReqDetails['RequestedDept']; ?></td>
<td><strong>CCD: </strong><?php echo $ReqDetails['CostCenterCode']; ?></td> <td><strong>CCD: </strong><?php echo $ReqDetails['CostCenterCode']; ?></td>
<td><strong>Fin cap:</strong><?php echo $finCap; ?></td> <td><strong>Fin cap:</strong><?php echo $finCap; ?></td>
</tr> </tr>
@ -253,8 +253,8 @@
</table> </table>
</div> </div>
<div class="page" style="height:98%;border-right: solid 2px ; <div class="page" style="height:98%;border-right: solid 1.5px ;
border-left: solid 2px;font-size:12px; "> border-left: solid 1.5px;font-size:12px; ">
<br> <br>
<p><strong>Mode of Shipment</strong>: <?php echo $modShp; ?></p> <p><strong>Mode of Shipment</strong>: <?php echo $modShp; ?></p>
<p><strong>Insurance : <?php echo $insNo; ?></strong></p> <p><strong>Insurance : <?php echo $insNo; ?></strong></p>
@ -268,7 +268,7 @@
<th><strong>HSN</strong></th> <th><strong>HSN</strong></th>
<th>&nbsp;<strong>UOM</strong></th> <th>&nbsp;<strong>UOM</strong></th>
<th><strong>&nbsp;QTY</strong></th> <th><strong>&nbsp;QTY</strong></th>
<th>&nbsp;<strong>RATE Rs</strong></th> <th>&nbsp;<strong>RATE&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></th>
<th>&nbsp;<strong>PER</strong></th> <th>&nbsp;<strong>PER</strong></th>
</tr> </tr>
</thead> </thead>
@ -291,7 +291,7 @@
<tr style="line-height: 1.9em;text-align: center;border: none;"> <tr style="line-height: 1.9em;text-align: center;border: none;">
<td style="border-right: solid 1px ; <td style="border-right: solid 1px ;
border-left: solid 1px ;"><?php echo $index ; ?></td> border-left: solid 0px ;"><?php echo $index ; ?></td>
<td style="text-align: left;border-right: solid 1px ; <td style="text-align: left;border-right: solid 1px ;
border-left: solid 1px ;"><?php echo $record->MaterialCode;?></td> border-left: solid 1px ;"><?php echo $record->MaterialCode;?></td>
<td style="text-align: left;border-right: solid 1px ; <td style="text-align: left;border-right: solid 1px ;
@ -314,6 +314,26 @@
} }
?> ?>
<?php for($index = ++$index;$index <10;$index++) { ?>
<tr style="line-height: 1.9em;text-align: center;border: none;">
<td style="border-right: solid 1px ;
border-left: solid 0px ;"> <br><br></td>
<td style="text-align: left;border-right: solid 1px ;
border-left: solid 1px ;"> </td>
<td style="text-align: left;border-right: solid 1px ;
border-left: solid 1px ;"></td>
<td style="border-right: solid 1px ;
border-left: solid 1px ;"></td>
<td style="border-right: solid 1px ;
border-left: solid 1px ;"></td>
<td style="border-right: solid 1px ;
border-left: solid 1px ;"></td>
<td style="border-right: solid 1px ;
border-left: solid 1px ;"></td>
<td style="border-right: solid 1px ;
border-left: solid 1px ;"></td>
</tr>
<?php }?>
</tbody> </tbody>
@ -468,13 +488,13 @@
<span><strong>Payment terms :</strong><br><?php echo $PaymentTerms ."&nbsp;&nbsp;".$PaymentOtherDescription;?></span> <span><strong>Payment terms :</strong><br><?php echo $PaymentTerms ."&nbsp;&nbsp;".$PaymentOtherDescription;?></span>
</td> </td>
<td style="text-align: center;"><strong>Total Amount in Rs</strong></td> <td style="text-align: center;"><strong>Total Amount&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Total CGST Amount in Rs</strong></td> <td style="text-align: center;"><strong>Total CGST Amount&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Total SGST Amount in RS</strong></td> <td style="text-align: center;"><strong>Total SGST Amount&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Total IGST Amount in RS</strong></td> <td style="text-align: center;"><strong>Total IGST Amount&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Others in Rs</strong></td> <td style="text-align: center;"><strong>Others&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Total Tax Amount in Rs</strong></td> <td style="text-align: center;"><strong>Total Tax Amount&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Order Value in Rs</strong></td> <td style="text-align: center;"><strong>Order Value&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
</tr> </tr>
<tr style="text-align: right;"> <tr style="text-align: right;">
<td><?php echo number_format(($TotalOrderValue),2); ?></td> <td><?php echo number_format(($TotalOrderValue),2); ?></td>

0
application/views/capitalpurchaseorder.php Normal file → Executable file
View File

View File

@ -1198,10 +1198,11 @@ $("#PaymentMethod").select2();
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-12" style="padding:0px"> <div class="col-md-12" style="padding:2%">
<div class="col-md-12" id="ADDCAPdiv" > <div class="col-md-12" id="ADDCAPdiv" >
<div class="col-md-12" style="border:1px solid #000;"> <div class="col-md-12" style="border:1px solid #000;padding:0px" >
<div class="col-md-12"> <div class="col-md-4"> <div class="col-md-12">
<div class="col-md-4">
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<label>Discount Type </label> <label>Discount Type </label>
@ -1342,7 +1343,7 @@ $("#PaymentMethod").select2();
</div> </div>
</div> </div>
</div> </div>
</div>
<div class="col-md-12" style="padding:1%;" ></div> <div class="col-md-12" style="padding:1%;" ></div>
<div class="col-md-12" style="border:1px solid #000;padding:0px;" id="ModalImportTaxHide" style="display:none;"> <div class="col-md-12" style="border:1px solid #000;padding:0px;" id="ModalImportTaxHide" style="display:none;">
<br/> <br/>
@ -1728,7 +1729,7 @@ $("#PaymentMethod").select2();
</div> </div>
</div>
</div> </div>

View File

@ -194,7 +194,7 @@
<td style= "text-align: center;" colspan="12"><center> <span style="font-size:24px;">PURCHASE ORDER </span></center></td> <td style= "text-align: center;" colspan="12"><center> <span style="font-size:24px;">PURCHASE ORDER </span></center></td>
</tr> </tr>
<tr> <tr>
<td style="width:1px;" rowspan="2"><center><img width="100" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA11JREFUeNrsnT9IHEEYxWfFw8rgpUhlo5URi2gTbIUUSrq1ui4oRLRIY9JIKrGKTQrBgJLuuutEi4CtSSOpPIuATdIEcid2YpN9C3sc8c6bf7uZmX0P7k7ultm7337zzXxvZjGaiaIfQoiqoHTUHk6eniSPUbLQUmUoebojB23dDZGBmQiQAAmQAAmQIkACJEACpAiweA3bbvDV5mb6+iKOxfTc3MDjf15dicbBQfr3591d7wBGM1H0J3l9bNLI84UFsby6mkIzFWACJMCafJ9PJyfSx29vbHQuoqJaxl34zc5O+mVtwIPi5EIcXV52IjnoLvx+by/9wXkIF8aHbq0dgYi4vOB1Q7QV2c4BXM4Z3r+RGBTAR9VqmqhVBoZnIyOdx9taTXqQGJ+YUDqXFwBV4WGU69aXRkNsr69LtyEzHfIKIKJCVl9PT3u+/63P+6bnC64SuWm3jdsYn5xkKcdamCJAAiwjQJcHAC8ATs/OBg1Qy0y4ub6WPhb1cuPwUFycn9/77OPWlvXzeQGw2QPGQ9o/PhZrS0v3IPpooFrpwgChYniidq6fnTnvrBSaA3Uc3A/1uvPuSmEA0f0uFLsyBKcZDjaisvSj8DsFW6pbcHPQpV12WQoBCHhri4taEOGwhJAXjeeBgFebn1eyp0LKi1Ym0rCsXieRqLk06HVetFqJwHmWnRz3yotHzabT9n0hpRxGZ0SjjpGKCEQkxgUtWDlbCyMfIi/qTHMgrDf7srCem5mQDS5YQNKRD2vCuQLMhCVM3bwIiK4PLIUYqrp5EXPFeGWFALO8CEdGddId7NYOHWFQUa1cUO4Fty78/fZW6tFrjx7gqfqAT0PbmWAqVCwq+bDUOxMeyokh6L8B1J1kE2BgIkACJMDyAbSx56/cACV3CoyOjfX9rNSrcrI7E/qVYYCnYhKY3LXkJECVOdx+Us51m6Nwm7HVQyUCf4UGEJuFZPMgIhC+XlYfw21WWQ/GxXJ50q09iBS1MSjYW73ww3SXMVXOobsk4MU80GQZc5DQbl5tOzWRRpS8nJqy1tUAzWZ7ecvKDdfdggWfTV0GbdnA4JB1UdhbHjo0LesAS6YWa2GaCQRIgARIESABEiABUgRIgARYRoAVYtBWBfcL/xb8hwS6av8VYADVjF2M5sTWJAAAAABJRU5ErkJggg==" width="80" /></center></td> <td style="width:1px;background-color: #2c0101;" rowspan="2"><center><img width="100" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA11JREFUeNrsnT9IHEEYxWfFw8rgpUhlo5URi2gTbIUUSrq1ui4oRLRIY9JIKrGKTQrBgJLuuutEi4CtSSOpPIuATdIEcid2YpN9C3sc8c6bf7uZmX0P7k7ultm7337zzXxvZjGaiaIfQoiqoHTUHk6eniSPUbLQUmUoebojB23dDZGBmQiQAAmQAAmQIkACJEACpAiweA3bbvDV5mb6+iKOxfTc3MDjf15dicbBQfr3591d7wBGM1H0J3l9bNLI84UFsby6mkIzFWACJMCafJ9PJyfSx29vbHQuoqJaxl34zc5O+mVtwIPi5EIcXV52IjnoLvx+by/9wXkIF8aHbq0dgYi4vOB1Q7QV2c4BXM4Z3r+RGBTAR9VqmqhVBoZnIyOdx9taTXqQGJ+YUDqXFwBV4WGU69aXRkNsr69LtyEzHfIKIKJCVl9PT3u+/63P+6bnC64SuWm3jdsYn5xkKcdamCJAAiwjQJcHAC8ATs/OBg1Qy0y4ub6WPhb1cuPwUFycn9/77OPWlvXzeQGw2QPGQ9o/PhZrS0v3IPpooFrpwgChYniidq6fnTnvrBSaA3Uc3A/1uvPuSmEA0f0uFLsyBKcZDjaisvSj8DsFW6pbcHPQpV12WQoBCHhri4taEOGwhJAXjeeBgFebn1eyp0LKi1Ym0rCsXieRqLk06HVetFqJwHmWnRz3yotHzabT9n0hpRxGZ0SjjpGKCEQkxgUtWDlbCyMfIi/qTHMgrDf7srCem5mQDS5YQNKRD2vCuQLMhCVM3bwIiK4PLIUYqrp5EXPFeGWFALO8CEdGddId7NYOHWFQUa1cUO4Fty78/fZW6tFrjx7gqfqAT0PbmWAqVCwq+bDUOxMeyokh6L8B1J1kE2BgIkACJMDyAbSx56/cACV3CoyOjfX9rNSrcrI7E/qVYYCnYhKY3LXkJECVOdx+Us51m6Nwm7HVQyUCf4UGEJuFZPMgIhC+XlYfw21WWQ/GxXJ50q09iBS1MSjYW73ww3SXMVXOobsk4MU80GQZc5DQbl5tOzWRRpS8nJqy1tUAzWZ7ecvKDdfdggWfTV0GbdnA4JB1UdhbHjo0LesAS6YWa2GaCQRIgARIESABEiABUgRIgARYRoAVYtBWBfcL/xb8hwS6av8VYADVjF2M5sTWJAAAAABJRU5ErkJggg==" width="80" /></center></td>
<td style="text-align: left;" colspan="5" rowspan="2"> <td style="text-align: left;" colspan="5" rowspan="2">
<span><strong style="font-size:16px;"> <?php echo $CompanyName; ?> </strong></span><br> <span><strong style="font-size:16px;"> <?php echo $CompanyName; ?> </strong></span><br>
<span><?php echo $CompanyAddress; ?></span><br><br> <span><?php echo $CompanyAddress; ?></span><br><br>
@ -234,10 +234,10 @@
{ {
?> ?>
<tr> <tr>
<td><strong>Indent :</strong></td> <td width="8%"><strong>Indent :</strong></td>
<td><?php echo $ReqDetails['RequistionNo']; ?></td> <td width="11%"><?php echo $ReqDetails['RequistionNo']; ?></td>
<td><?php $date = new DateTime($ReqDetails['ReqDate'],new DateTimeZone('Asia/Kolkata')); $date=$date->format("d-m-Y"); echo $date; ?></td> <td><?php $date = new DateTime($ReqDetails['ReqDate'],new DateTimeZone('Asia/Kolkata')); $date=$date->format("d-m-Y"); echo $date; ?></td>
<td><strong>Dept:</strong> <?php echo $ReqDetails['RequestedDept']; ?></td> <td width="11%"><strong>Dept:</strong> <?php echo $ReqDetails['RequestedDept']; ?></td>
<td><strong>CCD: </strong><?php echo $ReqDetails['CostCenterCode']; ?></td> <td><strong>CCD: </strong><?php echo $ReqDetails['CostCenterCode']; ?></td>
<td><strong>Fin cap:</strong><?php echo $finCap; ?></td> <td><strong>Fin cap:</strong><?php echo $finCap; ?></td>
</tr> </tr>
@ -246,8 +246,8 @@
</table> </table>
</div> </div>
<div class="page" style="height:98%; border-right: solid 1px ; <div class="page" style="height:98%; border-right: solid 1.5px ;
border-left: solid 1px ;font-size:12px;"> border-left: solid 1.5px ;font-size:12px;">
<br> <br>
<p><strong>Mode of Shipment</strong>:<?php echo $modeofshipment;?> </p> <p><strong>Mode of Shipment</strong>:<?php echo $modeofshipment;?> </p>
<p><strong>Insurance : </strong><?php echo $insuranceno;?></p> <p><strong>Insurance : </strong><?php echo $insuranceno;?></p>
@ -262,7 +262,7 @@
<th style="text-align: center;"><strong>HSN</strong></th> <th style="text-align: center;"><strong>HSN</strong></th>
<th style="text-align: center;"> <strong>UOM</strong></th> <th style="text-align: center;"> <strong>UOM</strong></th>
<th style="text-align: center;"><strong> QTY</strong></th> <th style="text-align: center;"><strong> QTY</strong></th>
<th style="text-align: center;"> <strong>RATE Rs</strong></th> <th style="text-align: center;"> <strong>RATE&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></th>
<th style="text-align: center;"> <strong>PER</strong></th> <th style="text-align: center;"> <strong>PER</strong></th>
</tr> </tr>
@ -291,9 +291,9 @@
$index = $index + 1; $index = $index + 1;
?> ?>
<tr style="text-align: center;line-height: 1.5em;border: none;"> <tr style="text-align: center;line-height: 1.8em;border: none;">
<td style="border-right: solid 1px ; <td style="border-right: solid 1px ;
border-left: solid 1px ;"><?php echo $index ; ?></td> border-left: solid 0px ;"><?php echo $index ; ?></td>
<td style="text-align: left;border-right: solid 1px ; <td style="text-align: left;border-right: solid 1px ;
border-left: solid 1px ;"><?php echo $record->MaterialCode ; ?></td> border-left: solid 1px ;"><?php echo $record->MaterialCode ; ?></td>
<td style="text-align: left;border-right: solid 1px ; <td style="text-align: left;border-right: solid 1px ;
@ -307,9 +307,8 @@
<td style="border-right: solid 1px ; <td style="border-right: solid 1px ;
border-left: solid 1px ;"><?php echo number_format(($record->Rate),2) ; ?></td> border-left: solid 1px ;"><?php echo number_format(($record->Rate),2) ; ?></td>
<td style="border-right: solid 1px ; <td style="border-right: solid 1px ;
border-left: solid 1px ;"><?php echo $record->Per ; ?></td><!--per data should be come--> border-left: solid 1px ;"><?php echo $record->Per ; ?></td>
</tr> </tr>
<?php <?php
$SubTotalAmount = $SubTotalAmount + $record->BasicValue; $SubTotalAmount = $SubTotalAmount + $record->BasicValue;
@ -328,6 +327,27 @@
$OrderValue = (( $SubTotalAmount + $AfterCGST +$AfterIGST+$AfterSGST +$Insurance +$AfterFreightValue+$AfterPackaging) - $AfterDiscount) ; $OrderValue = (( $SubTotalAmount + $AfterCGST +$AfterIGST+$AfterSGST +$Insurance +$AfterFreightValue+$AfterPackaging) - $AfterDiscount) ;
}?> }?>
<?php for($index = ++$index;$index <10;$index++) { ?>
<tr style="text-align: center;line-height: 1.8em;border: none;">
<td style="border-right: solid 1px ;
border-left: solid 0px ;"> <br><br></td>
<td style="text-align: left;border-right: solid 1px ;
border-left: solid 1px ;"> </td>
<td style="text-align: left;border-right: solid 1px ;
border-left: solid 1px ;"> </td>
<td style="border-right: solid 1px ;
border-left: solid 1px ;"> </td>
<td style="border-right: solid 1px ;
border-left: solid 1px ;"> </td>
<td style="border-right: solid 1px ;
border-left: solid 1px ;"> </td>
<td style="border-right: solid 1px ;
border-left: solid 1px ;"> </td>
<td style="border-right: solid 1px ;
border-left: solid 1px ;"> </td>
</tr>
<?php } ?>
</tbody> </tbody>
</table> </table>
@ -428,13 +448,13 @@ $OrderValue = (( $SubTotalAmount + $AfterCGST +$AfterIGST+$AfterSGST +$Insuranc
<td colspan="4" rowspan="3" width="50%"> <td colspan="4" rowspan="3" width="50%">
<span><strong>Payment terms</strong> :<br><?php echo $PaymentTerms ."&nbsp;&nbsp;".$PaymentOtherDescription;?></span> <span><strong>Payment terms</strong> :<br><?php echo $PaymentTerms ."&nbsp;&nbsp;".$PaymentOtherDescription;?></span>
</td> </td>
<td style="text-align: center;"><strong>Total Amount in Rs</strong></td> <td style="text-align: center;"><strong>Total Amount&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Total CGST Amount in Rs</strong></td> <td style="text-align: center;"><strong>Total CGST Amount&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Total SGST Amount in RS</strong></td> <td style="text-align: center;"><strong>Total SGST Amount&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Total IGST Amount in RS</strong></td> <td style="text-align: center;"><strong>Total IGST Amount&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Others in Rs</strong></td> <td style="text-align: center;"><strong>Others&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Total Tax Amount in Rs</strong></td> <td style="text-align: center;"><strong>Total Tax Amount&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Order Value in Rs</strong></td> <td style="text-align: center;"><strong>Order Value&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
</tr> </tr>
<tr> <tr>
<td style="text-align: right;"><?php echo number_format($OrderValue,2);?></td> <td style="text-align: right;"><?php echo number_format($OrderValue,2);?></td>

View File

@ -131,6 +131,7 @@
.header { position: fixed; left: 0px; top: -280px; right: 0px; height: 500px;text-align: center; } .header { position: fixed; left: 0px; top: -280px; right: 0px; height: 500px;text-align: center; }
.footer { position: fixed; bottom: 10px;} .footer { position: fixed; bottom: 10px;}
.pagenum:before { content: counter(page); } .pagenum:before { content: counter(page); }
</style> </style>
<body> <body>
@ -191,7 +192,7 @@
<td style= "text-align: center;" colspan="12"><center> <span style="font-size:24px;">PURCHASE ORDER </span></center></td> <td style= "text-align: center;" colspan="12"><center> <span style="font-size:24px;">PURCHASE ORDER </span></center></td>
</tr> </tr>
<tr> <tr>
<td style="width:1px;" rowspan="2"><center><img width="100" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA11JREFUeNrsnT9IHEEYxWfFw8rgpUhlo5URi2gTbIUUSrq1ui4oRLRIY9JIKrGKTQrBgJLuuutEi4CtSSOpPIuATdIEcid2YpN9C3sc8c6bf7uZmX0P7k7ultm7337zzXxvZjGaiaIfQoiqoHTUHk6eniSPUbLQUmUoebojB23dDZGBmQiQAAmQAAmQIkACJEACpAiweA3bbvDV5mb6+iKOxfTc3MDjf15dicbBQfr3591d7wBGM1H0J3l9bNLI84UFsby6mkIzFWACJMCafJ9PJyfSx29vbHQuoqJaxl34zc5O+mVtwIPi5EIcXV52IjnoLvx+by/9wXkIF8aHbq0dgYi4vOB1Q7QV2c4BXM4Z3r+RGBTAR9VqmqhVBoZnIyOdx9taTXqQGJ+YUDqXFwBV4WGU69aXRkNsr69LtyEzHfIKIKJCVl9PT3u+/63P+6bnC64SuWm3jdsYn5xkKcdamCJAAiwjQJcHAC8ATs/OBg1Qy0y4ub6WPhb1cuPwUFycn9/77OPWlvXzeQGw2QPGQ9o/PhZrS0v3IPpooFrpwgChYniidq6fnTnvrBSaA3Uc3A/1uvPuSmEA0f0uFLsyBKcZDjaisvSj8DsFW6pbcHPQpV12WQoBCHhri4taEOGwhJAXjeeBgFebn1eyp0LKi1Ym0rCsXieRqLk06HVetFqJwHmWnRz3yotHzabT9n0hpRxGZ0SjjpGKCEQkxgUtWDlbCyMfIi/qTHMgrDf7srCem5mQDS5YQNKRD2vCuQLMhCVM3bwIiK4PLIUYqrp5EXPFeGWFALO8CEdGddId7NYOHWFQUa1cUO4Fty78/fZW6tFrjx7gqfqAT0PbmWAqVCwq+bDUOxMeyokh6L8B1J1kE2BgIkACJMDyAbSx56/cACV3CoyOjfX9rNSrcrI7E/qVYYCnYhKY3LXkJECVOdx+Us51m6Nwm7HVQyUCf4UGEJuFZPMgIhC+XlYfw21WWQ/GxXJ50q09iBS1MSjYW73ww3SXMVXOobsk4MU80GQZc5DQbl5tOzWRRpS8nJqy1tUAzWZ7ecvKDdfdggWfTV0GbdnA4JB1UdhbHjo0LesAS6YWa2GaCQRIgARIESABEiABUgRIgARYRoAVYtBWBfcL/xb8hwS6av8VYADVjF2M5sTWJAAAAABJRU5ErkJggg==" width="80" /></center></td> <td style="width:1px;background-color: #2c0101;" rowspan="2"><center><img width="100" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA11JREFUeNrsnT9IHEEYxWfFw8rgpUhlo5URi2gTbIUUSrq1ui4oRLRIY9JIKrGKTQrBgJLuuutEi4CtSSOpPIuATdIEcid2YpN9C3sc8c6bf7uZmX0P7k7ultm7337zzXxvZjGaiaIfQoiqoHTUHk6eniSPUbLQUmUoebojB23dDZGBmQiQAAmQAAmQIkACJEACpAiweA3bbvDV5mb6+iKOxfTc3MDjf15dicbBQfr3591d7wBGM1H0J3l9bNLI84UFsby6mkIzFWACJMCafJ9PJyfSx29vbHQuoqJaxl34zc5O+mVtwIPi5EIcXV52IjnoLvx+by/9wXkIF8aHbq0dgYi4vOB1Q7QV2c4BXM4Z3r+RGBTAR9VqmqhVBoZnIyOdx9taTXqQGJ+YUDqXFwBV4WGU69aXRkNsr69LtyEzHfIKIKJCVl9PT3u+/63P+6bnC64SuWm3jdsYn5xkKcdamCJAAiwjQJcHAC8ATs/OBg1Qy0y4ub6WPhb1cuPwUFycn9/77OPWlvXzeQGw2QPGQ9o/PhZrS0v3IPpooFrpwgChYniidq6fnTnvrBSaA3Uc3A/1uvPuSmEA0f0uFLsyBKcZDjaisvSj8DsFW6pbcHPQpV12WQoBCHhri4taEOGwhJAXjeeBgFebn1eyp0LKi1Ym0rCsXieRqLk06HVetFqJwHmWnRz3yotHzabT9n0hpRxGZ0SjjpGKCEQkxgUtWDlbCyMfIi/qTHMgrDf7srCem5mQDS5YQNKRD2vCuQLMhCVM3bwIiK4PLIUYqrp5EXPFeGWFALO8CEdGddId7NYOHWFQUa1cUO4Fty78/fZW6tFrjx7gqfqAT0PbmWAqVCwq+bDUOxMeyokh6L8B1J1kE2BgIkACJMDyAbSx56/cACV3CoyOjfX9rNSrcrI7E/qVYYCnYhKY3LXkJECVOdx+Us51m6Nwm7HVQyUCf4UGEJuFZPMgIhC+XlYfw21WWQ/GxXJ50q09iBS1MSjYW73ww3SXMVXOobsk4MU80GQZc5DQbl5tOzWRRpS8nJqy1tUAzWZ7ecvKDdfdggWfTV0GbdnA4JB1UdhbHjo0LesAS6YWa2GaCQRIgARIESABEiABUgRIgARYRoAVYtBWBfcL/xb8hwS6av8VYADVjF2M5sTWJAAAAABJRU5ErkJggg==" width="80" /></center></td>
<td style="text-align: left;" colspan="5" rowspan="2"> <td style="text-align: left;" colspan="5" rowspan="2">
<span><strong style="font-size:16px;"> <?php echo $CompanyName; ?> </strong></span><br> <span><strong style="font-size:16px;"> <?php echo $CompanyName; ?> </strong></span><br>
<span><?php echo $CompanyAddress; ?></span><br><br> <span><?php echo $CompanyAddress; ?></span><br><br>
@ -231,10 +232,10 @@
{ {
?> ?>
<tr> <tr>
<td><strong>Indent :</strong></td> <td width="8%"><strong>Indent :</strong></td>
<td><?php echo $ReqDetails['RequistionNo']; ?></td> <td width="11%"><?php echo $ReqDetails['RequistionNo']; ?></td>
<td><?php $date = new DateTime($ReqDetails['ReqDate'],new DateTimeZone('Asia/Kolkata')); $date=$date->format("d-m-Y"); echo $date; ?></td> <td><?php $date = new DateTime($ReqDetails['ReqDate'],new DateTimeZone('Asia/Kolkata')); $date=$date->format("d-m-Y"); echo $date; ?></td>
<td><strong>Dept:</strong> <?php echo $ReqDetails['RequestedDept']; ?></td> <td width="11%"><strong>Dept:</strong> <?php echo $ReqDetails['RequestedDept']; ?></td>
<td><strong>CCD: </strong><?php echo $ReqDetails['CostCenterCode']; ?></td> <td><strong>CCD: </strong><?php echo $ReqDetails['CostCenterCode']; ?></td>
<td><strong>Fin cap:</strong><?php echo $finCap; ?></td> <td><strong>Fin cap:</strong><?php echo $finCap; ?></td>
</tr> </tr>
@ -243,8 +244,8 @@
</table> </table>
</div> </div>
<div class="page" style="height:98%;border-right: solid 2px ; <div class="page" style="height:98%;border-right: solid 1.5px ;
border-left: solid 2px;font-size:12px;"> border-left: solid 1.5px;font-size:12px;">
<br> <br>
<p><strong>Mode of Shipment</strong>: <?php echo $modShp; ?></p> <p><strong>Mode of Shipment</strong>: <?php echo $modShp; ?></p>
<p><strong>Insurance </strong>:<?php echo $insNo; ?></p> <p><strong>Insurance </strong>:<?php echo $insNo; ?></p>
@ -257,7 +258,7 @@
<th style="text-align: center;"><strong>SERVICE DESCRIPTION</strong></th> <th style="text-align: center;"><strong>SERVICE DESCRIPTION</strong></th>
<th style="text-align: center;"><strong>UOM</strong></th> <th style="text-align: center;"><strong>UOM</strong></th>
<th style="text-align: center;"><strong>QTY</strong></th> <th style="text-align: center;"><strong>QTY</strong></th>
<th style="text-align: center;"><strong>RATE Rs</strong></th> <th style="text-align: center;"><strong>RATE&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></th>
<th style="text-align: center;"><strong>PER</strong></th> <th style="text-align: center;"><strong>PER</strong></th>
</tr> </tr>
</thead> </thead>
@ -265,7 +266,7 @@
<tr style="border: none;"><td style="border-right: solid 1px ; <tr style="border: none;"><td style="border-right: solid 1px ;
border-left: solid 1px ;"></td><td style="border-right: solid 1px ; border-left: solid 1px ;"></td><td style="border-right: solid 1px ;
border-left: solid 1px ;"> <strong><?php echo $serviceDescription; ?></strong></td><td style="border-right: solid 1px ; border-left: solid 1px ;"> <strong><?php if ($serviceDescription != ''){echo $serviceDescription;} else { echo '<br/>';} ?></strong></td><td style="border-right: solid 1px ;
border-left: solid 1px ;"></td><td style="border-right: solid 1px ; border-left: solid 1px ;"></td><td style="border-right: solid 1px ;
border-left: solid 1px ;"></td><td style="border-right: solid 1px ; border-left: solid 1px ;"></td><td style="border-right: solid 1px ;
border-left: solid 1px ;"></td><td style="border-right: solid 1px ; border-left: solid 1px ;"></td><td style="border-right: solid 1px ;
@ -290,18 +291,19 @@
?> ?>
<tr style="line-height: 1em;border: none;""> <tr style="line-height: 1em;border: none;"">
<td style="text-align: center;border-right: solid 1px ; <td style="text-align: center;border-right: solid 1px ;
border-left: solid 1px ;"><?php echo $index ; ?></td> border-left: solid 0px ;"><?php echo $index ; ?></td>
<td style="border-right: solid 1px ; <td style="border-right: solid 1px ;
border-left: solid 1px ;"><?php echo $record->ServiceMaterialDescription ; ?></td> border-left: solid 1px ;"><?php echo $record->ServiceMaterialDescription ; ?></td>
<td style="text-align: center;border-right: solid 1px ; <td style="text-align: center;border-right: solid 1px ;
border-left: solid 1px ;"><?php echo $record->UOM ; ?></td> border-left: solid 1px ;"><?php echo $record->UOM ; ?></td>
<td style="text-align: center;border-right: solid 1px ; <td style="text-align: center;border-right: solid 1px ;
border-left: solid 1px ;"><?php echo $record->Quantity ; ?>&nbsp;</td> border-left: solid 1px ;"><?php echo $record->Quantity ; ?> </td>
<td style="text-align: center;border-right: solid 1px ; <td style="text-align: center;border-right: solid 1px ;
border-left: solid 1px ;"><?php echo number_format(($record->Rate),2) ; ?>&nbsp;</td> border-left: solid 1px ;"><?php echo number_format(($record->Rate),2) ; ?> </td>
<td style="text-align: center;border-right: solid 1px ; <td style="text-align: center;border-right: solid 1px ;
border-left: solid 1px ;"><?php echo $record->Per; ?></td> border-left: solid 1px ;"><?php echo $record->Per; ?></td>
</tr> </tr>
<?php <?php
$SubTotalAmount = $SubTotalAmount + $TotalAmount; $SubTotalAmount = $SubTotalAmount + $TotalAmount;
$AfterSGST =$AfterSGST + $record->After_SGST; $AfterSGST =$AfterSGST + $record->After_SGST;
@ -315,6 +317,22 @@
} }
?> ?>
<?php for($index = ++$index;$index <10;$index++) { ?>
<tr style="line-height: 1em;border: none;">
<td style="text-align: center;border-right: solid 1px ;
border-left: solid 0px ;"> <br> <br></td>
<td style="border-right: solid 1px ;
border-left: solid 1px ;"> </td>
<td style="text-align: center;border-right: solid 1px ;
border-left: solid 1px ;"> </td>
<td style="text-align: center;border-right: solid 1px ;
border-left: solid 1px ;"> &nbsp;</td>
<td style="text-align: center;border-right: solid 1px ;
border-left: solid 1px ;"> </td>
<td style="text-align: center;border-right: solid 1px ;
border-left: solid 1px ;"> </td>
</tr>
<?php }?>
</tbody> </tbody>
</table> </table>
@ -412,13 +430,13 @@
<td colspan="4" rowspan="3" width="50%"> <td colspan="4" rowspan="3" width="50%">
<span><strong>Payment terms :</strong><br><?php echo $PaymentTerms ."&nbsp;&nbsp;".$PaymentOtherDescription;?></span> <span><strong>Payment terms :</strong><br><?php echo $PaymentTerms ."&nbsp;&nbsp;".$PaymentOtherDescription;?></span>
</td> </td>
<td style="text-align: center;"><strong>Total Amount in Rs</strong></td> <td style="text-align: center;"><strong>Total Amount&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Total CGST Amount in Rs</strong></td> <td style="text-align: center;"><strong>Total CGST Amount&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Total SGST Amount in Rs</strong></td> <td style="text-align: center;"><strong>Total SGST Amount&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Total IGST Amount in Rs</strong></td> <td style="text-align: center;"><strong>Total IGST Amount&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Others in Rs</strong></td> <td style="text-align: center;"><strong>Others&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Total Tax in Rs</strong></td> <td style="text-align: center;"><strong>Total Tax&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
<td style="text-align: center;"><strong>Order value in Rs</strong></td> <td style="text-align: center;"><strong>Order value&nbsp; <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></strong></td>
</tr> </tr>
<tr style="text-align: right;"> <tr style="text-align: right;">
<td><?php echo number_format(($BasicAmount),2 )?>&nbsp;</td> <td><?php echo number_format(($BasicAmount),2 )?>&nbsp;</td>