• php PhpPresentation 修改折线图x轴y轴的字体大小


    使用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();

    修改后,生成的折线图如下所示:

  • 相关阅读:
    「BZOJ1061」 [Noi2008]志愿者招募
    [POJ 2891] Strange Way to Express Integers (扩展中国剩余定理)
    扩展中国剩余定理学习笔记
    扩展欧几里得算法+推论
    SPOJ16607 IE1
    [Luogu P4124] [CQOI2016]手机号码 (数位DP)
    [UOJ 275/BZOJ4737] 【清华集训2016】组合数问题 (LUCAS定理的运用+数位DP)
    一些很妙的网站
    [Luogu P3157][CQOI2011]动态逆序对 (树套树)
    [Luogu P3203] [HNOI2010]弹飞绵羊 (LCT维护链的长度)
  • 原文地址:https://www.cnblogs.com/mianbaoshu/p/15682199.html
Copyright © 2020-2023  润新知