Hi Sam,
"Division by zero" error is coming in yii2 , while in yii1 it was working perfectly.
I have included "namespace" in each of library file & instead of "require" i have used "use" property of namespace.
Following is the full error text including stacktrace(also attached) :
Error
PHP Warning – yii\base\ErrorException
Division by zero
1. in C:\xampp\htdocs\yii2\readpdfandupdatelib\fpdi_pdf_parser.php at line 225
216217218219220221222223224225226227228229230231232233234
if (!is_null($box) && $box[0] == pdf_parser::TYPE_OBJREF) {
$tmp_box = $this->resolveObject($box);
$box = $tmp_box[1];
}
if (!is_null($box) && $box[0] == pdf_parser::TYPE_ARRAY) {
$b = $box[1];
return array(
'x' => $b[0][1] / $k,
'y' => $b[1][1] / $k,
'w' => abs($b[0][1] - $b[2][1]) / $k,
'h' => abs($b[1][1] - $b[3][1]) / $k,
'llx' => min($b[0][1], $b[2][1]) / $k,
'lly' => min($b[1][1], $b[3][1]) / $k,
'urx' => max($b[0][1], $b[2][1]) / $k,
'ury' => max($b[1][1], $b[3][1]) / $k,
);
} else if (!isset($page[1][1]['/Parent'])) {
2. in C:\xampp\htdocs\yii2\readpdfandupdatelib\fpdi_pdf_parser.php – yii\base\ErrorHandler::handleError(2, 'Division by zero', 'C:\xampp\htdocs\yii2\readpdfandu...', 225, ...) at line 225
219220221222223224225226227228229230231
$box = $tmp_box[1];
}
if (!is_null($box) && $box[0] == pdf_parser::TYPE_ARRAY) {
$b = $box[1];
return array(
'x' => $b[0][1] / $k,
'y' => $b[1][1] / $k,
'w' => abs($b[0][1] - $b[2][1]) / $k,
'h' => abs($b[1][1] - $b[3][1]) / $k,
'llx' => min($b[0][1], $b[2][1]) / $k,
'lly' => min($b[1][1], $b[3][1]) / $k,
'urx' => max($b[0][1], $b[2][1]) / $k,
3. in C:\xampp\htdocs\yii2\readpdfandupdatelib\fpdi_pdf_parser.php – app\readpdfandupdatelib\fpdi_pdf_parser::_getPageBox([0 => 9, 'obj' => 5, 'gen' => 0, 1 => [5, ['/ArtBox' => [6, [[12, 0], [12, 0], [12, 612.24], [12, 858.96]]], '/Contents' => [8, 6, 0], '/MediaBox' => [6, [[12, 0], [12, 0], [12, 612.24], [12, 858.96]]], '/Parent' => [8, 3, 0], ...]]], '/MediaBox', null) at line 271
265266267268269270271272273274275276277
*/
protected function _getPageBoxes($page, $k)
{
$boxes = array();
foreach($this->availableBoxes AS $box) {
if ($_box = $this->_getPageBox($page, $box, $k)) {
$boxes[$box] = $_box;
}
}
return $boxes;
}
4. in C:\xampp\htdocs\yii2\readpdfandupdatelib\fpdi_pdf_parser.php – app\readpdfandupdatelib\fpdi_pdf_parser::_getPageBoxes([0 => 9, 'obj' => 5, 'gen' => 0, 1 => [5, ['/ArtBox' => [6, [[12, 0], [12, 0], [12, 612.24], [12, 858.96]]], '/Contents' => [8, 6, 0], '/MediaBox' => [6, [[12, 0], [12, 0], [12, 612.24], [12, 858.96]]], '/Parent' => [8, 3, 0], ...]]], null) at line 256
250251252253254255256257258259260261262
public function getPageBoxes($pageNo, $k)
{
if (!isset($this->_pages[$pageNo - 1])) {
throw new InvalidArgumentException('Page ' . $pageNo . ' does not exists.');
}
return $this->_getPageBoxes($this->_pages[$pageNo - 1], $k);
}
/**
* Get all boxes from /Page dictionary
*
* @param array $page A /Page dictionary
5. in C:\xampp\htdocs\yii2\readpdfandupdatelib\fpdi.php – app\readpdfandupdatelib\fpdi_pdf_parser::getPageBoxes(1, null) at line 198
192193194195196197198199200201202203204
$parser->setPageNo($pageNo);
if (!in_array($boxName, $parser->availableBoxes)) {
throw new InvalidArgumentException(sprintf('Unknown box: %s', $boxName));
}
$pageBoxes = $parser->getPageBoxes($pageNo, $this->k);
/**
* MediaBox
* CropBox: Default -> MediaBox
* BleedBox: Default -> CropBox
* TrimBox: Default -> CropBox
6. in C:\xampp\htdocs\yii2\controllers\SiteController.php – app\readpdfandupdatelib\FPDI::importPage(1) at line 70
64656667686970717273747576
$this->layout = false;
//require_once(Yii::$app->basePath."/readpdfandupdatelib/fpdf.php");
//require_once(Yii::$app->basePath."/readpdfandupdatelib/fpdi.php");
$pdf = new pdffolder\FPDI();
$pageCount = $pdf->setSourceFile(Yii::$app->basePath."/mmc_flyer.pdf");
$folder = Yii::$app->basePath . "/pdf/";
$tplIdx = $pdf->importPage(1);
$pdf->AddPage('P','A4');
$pdf->useTemplate($tplIdx, 0, 0, 215, false);
$pdf->SetAutoPageBreak(true,1);
$pdf->SetFont('Arial','B',18);
$pdf->SetXY(28, 276);
$pdf->SetTextColor(255,255,255);
7. app\controllers\SiteController::actionNewflyer()
8. in C:\xampp\htdocs\yii2\vendor\yiisoft\yii2\base\InlineAction.php – call_user_func_array([app\controllers\SiteController, 'actionNewflyer'], []) at line 55
9. in C:\xampp\htdocs\yii2\vendor\yiisoft\yii2\base\Controller.php – yii\base\InlineAction::runWithParams([]) at line 151
10. in C:\xampp\htdocs\yii2\vendor\yiisoft\yii2\base\Module.php – yii\base\Controller::runAction('newflyer', []) at line 455
11. in C:\xampp\htdocs\yii2\vendor\yiisoft\yii2\web\Application.php – yii\base\Module::runAction('site/newflyer', []) at line 83
12. in C:\xampp\htdocs\yii2\vendor\yiisoft\yii2\base\Application.php – yii\web\Application::handleRequest(yii\web\Request) at line 375
13. in C:\xampp\htdocs\yii2\web\index.php – yii\base\Application::run() at line 12
6789101112
require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
$config = require(__DIR__ . '/../config/web.php');
(new yii\web\Application($config))->run();
$_SERVER = [
'REDIRECT_MIBDIRS' => 'C:/xampp/php/extras/mibs',
'REDIRECT_MYSQL_HOME' => '\\xampp\\mysql\\bin',
'REDIRECT_OPENSSL_CONF' => 'C:/xampp/apache/bin/openssl.cnf',
'REDIRECT_PHP_PEAR_SYSCONF_DIR' => '\\xampp\\php',
'REDIRECT_PHPRC' => '\\xampp\\php',
'REDIRECT_TMP' => '\\xampp\\tmp',
'REDIRECT_STATUS' => '200',
'MIBDIRS' => 'C:/xampp/php/extras/mibs',
'MYSQL_HOME' => '\\xampp\\mysql\\bin',
'OPENSSL_CONF' => 'C:/xampp/apache/bin/openssl.cnf',
'PHP_PEAR_SYSCONF_DIR' => '\\xampp\\php',
'PHPRC' => '\\xampp\\php',
'TMP' => '\\xampp\\tmp',
'HTTP_HOST' => 'mmcfrontend.com',
'HTTP_USER_AGENT' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0',
'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'HTTP_ACCEPT_LANGUAGE' => 'en-US,en;q=0.5',
'HTTP_ACCEPT_ENCODING' => 'gzip, deflate',
'HTTP_REFERER' => 'http://mmcfrontend.com/site/flyer',
'HTTP_CONNECTION' => 'keep-alive',
'PATH' => 'C:\\Program Files (x86)\\EasyPHP-DevServer-14.1VC11\\binaries\\php\\php_runningversion;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files\\Intel\\DMIX;C:\\xampp\\php;C:\\ProgramData\\ComposerSetup\\bin',
'SystemRoot' => 'C:\\Windows',
'COMSPEC' => 'C:\\Windows\\system32\\cmd.exe',
'PATHEXT' => '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC',
'WINDIR' => 'C:\\Windows',
'SERVER_SIGNATURE' => '
Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3 Server at mmcfrontend.com Port 80
',
'SERVER_SOFTWARE' => 'Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3',
'SERVER_NAME' => 'mmcfrontend.com',
'SERVER_ADDR' => '127.0.0.1',
'SERVER_PORT' => '80',
'REMOTE_ADDR' => '127.0.0.1',
'DOCUMENT_ROOT' => 'C:/xampp/htdocs/yii2/web',
'REQUEST_SCHEME' => 'http',
'CONTEXT_PREFIX' => '',
'CONTEXT_DOCUMENT_ROOT' => 'C:/xampp/htdocs/yii2/web',
'SERVER_ADMIN' => 'webmaster@dummy-host2.localhost',
'SCRIPT_FILENAME' => 'C:/xampp/htdocs/yii2/web/index.php',
'REMOTE_PORT' => '53313',
'REDIRECT_URL' => '/site/newflyer',
'GATEWAY_INTERFACE' => 'CGI/1.1',
'SERVER_PROTOCOL' => 'HTTP/1.1',
'REQUEST_METHOD' => 'GET',
'QUERY_STRING' => '',
'REQUEST_URI' => '/site/newflyer',
'SCRIPT_NAME' => '/index.php',
'PHP_SELF' => '/index.php',
'REQUEST_TIME_FLOAT' => 1421736797.921000003814697265625,
'REQUEST_TIME' => 1421736797,
];
Yii Framework
2015-01-20, 07:53:18
Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3
Yii Framework/2.0.1