php PhpPresentation 修改折線圖x軸y軸的字型大小
阿新 • • 發佈:2021-12-13
使用PhpPresentation生成折線圖時預設的刻度字型是10px,如下所示
這個字型有點小,但我在PhpPresentation 中沒有找到修改字型大小的介面。。
解決方法是修改座標軸刻度的字型大小為17px,將ppt另存為為xml檔案,通過對比兩份字型不同xml檔案之間的差異,看看是哪些程式碼可以修改座標刻度的字型大小,然後作出相應調整(xml可以選擇瀏覽器開啟)
預設的xml |
修改字型為17px的xml |
找到PhpPresentation中生成折線圖Axis的程式碼,在對應的位置進行修改
對應的檔案為:src/PhpPresentation/Writer/PowerPoint2007/PptCharts.php
找到writeAxis方法中生成</c:spPr>的地方,可以發現生成完</c:spPr>後直接就生成c:crossAx,並沒有c:txPr,,所以省略c:txPr後就用的是預設值,,如果想要修改字型大小,需要重寫這一塊。如下所示:
// c:spPr $objWriter->startElement('c:spPr'); // Outline $this->writeOutline($objWriter, $oAxis->getOutline()); // ##c:spPr $objWriter->endElement(); //c:txPr ==========================================================piaoyu add start,在生成c:spPr後$objWriter->startElement('c:txPr'); // a:bodyPr $objWriter->writeElement('a:bodyPr', null); // a:lstStyle $objWriter->writeElement('a:lstStyle', null); // a:p $objWriter->startElement('a:p'); // a:pPr $objWriter->startElement('a:pPr'); // a:defRPr $objWriter->startElement('a:defRPr');$objWriter->writeAttribute('lang', 'en-US'); $objWriter->writeAttribute('sz', 1400); #14px $objWriter->writeAttribute('baseline','0'); $objWriter->endElement(); #end defRPr $objWriter->endElement(); #end pPr // a:endParaRPr $objWriter->startElement('a:endParaRPr'); $objWriter->writeAttribute('lang', 'en-US'); $objWriter->writeAttribute('dirty', '0'); $objWriter->endElement(); $objWriter->endElement(); #end p $objWriter->endElement(); #end txPr //c:txPr ==========================================================piaoyu add end,在生成c:crossAx前 // c:crossAx $objWriter->startElement('c:crossAx'); $objWriter->writeAttribute('val', $crossAxVal); $objWriter->endElement();
修改後,生成的折線圖如下所示: