PHPPowerPoint ライブラリを使用して、いくつかのパワーポイント ファイルを生成しています。問題は、サーバーから送られてくる画像が大きすぎて、スライドの限界を超えていることです。画像に使用しているコードは次のとおりです。
if(file_exists($dir.$image)){
// Add logo
$shape = $slide->createDrawingShape();
$shape->setName('PHPPowerPoint logo');
$shape->setDescription('PHPPowerPoint logo');
$shape->setPath($dir.$image);
$shape->setWidth(310);
$shape->setHeight(608);
$shape->setOffsetX(330);
$shape->setOffsetY(70);
//$shape->setOffsetY(720 - 10 - 40);
}
既に幅と高さを設定していますが、画像はそれらの構成を尊重していないことに注意してください。画像が必要なサイズを尊重したり、応答性の高い動作を実現したりするためにできることはありますか?
編集:これは関数createTemplateSlideのコードです:
function createTemplatedSlide(PHPPowerPoint $objPHPPowerPoint, $dir, $image, $razao, $nome, $data, $contador)
{
// Create slide
$slide = $objPHPPowerPoint->createSlide();
if(file_exists($dir.$image)){
// echo("$contador) o arquivo: '".$dir.$image."' existe <br>");
// Add logo
$shape = $slide->createDrawingShape();
$shape->setName('PHPPowerPoint logo');
$shape->setDescription('PHPPowerPoint logo');
$shape->setPath($dir.$image);
$shape->setWidth(310);
$shape->setHeight(608);
$shape->setOffsetX(330);
$shape->setOffsetY(70);
//$shape->setOffsetY(720 - 10 - 40);
}
// Create a shape (text)
// echo date('H:i:s') . " Create a shape (rich text)<br>";
$shape = $slide->createRichTextShape();
$shape->setHeight(60);
$shape->setWidth(960);
$shape->setOffsetX(0);
$shape->setOffsetY(20);
$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_CENTER );
$textRun = $shape->createTextRun($razao." ".$data);
$textRun->getFont()->setBold(true);
$textRun->getFont()->setSize(16);
$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( '00000000' ) );
for ($i=0; $i <23 ; $i++) {
$shape->createBreak();
}
$textRun = $shape->createTextRun(utf8_encode($nome));
$textRun->getFont()->setBold(true);
$textRun->getFont()->setSize(16);
$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( '00000000' ) );
// Return slide
return $slide;
}