Skip to content

Charts not generated when saving as PDF #2691

@mock1ngj

Description

@mock1ngj

Describe the bug and add attachments

Ive tried switching the renderers for pdf (domPdf, tcpdf, mpdf) but the result is the same
image

Ive tried to convert the saved docx to pdf but the result is still the same. This is the docx output
image

Expected behavior

This but in PDF
image

Steps to reproduce


        $phpWord->addTitleStyle(1, ['size' => 14, 'bold' => true], ['keepNext' => true, 'spaceBefore' => 240]);
        $phpWord->addTitleStyle(2, ['size' => 14, 'bold' => true], ['keepNext' => true, 'spaceBefore' => 240]);

        // 2D charts
        $section = $phpWord->addSection();
        $section->addTitle('2D charts', 1);
        $section = $phpWord->addSection(['colsNum' => 2, 'breakType' => 'continuous']);

        $chartTypes = ['pie', 'doughnut', 'bar', 'column', 'line', 'area', 'scatter', 'radar', 'stacked_bar', 'percent_stacked_bar', 'stacked_column', 'percent_stacked_column'];
        $twoSeries = ['bar', 'column', 'line', 'area', 'scatter', 'radar', 'stacked_bar', 'percent_stacked_bar', 'stacked_column', 'percent_stacked_column'];
        $threeSeries = ['bar', 'line'];
        $categories = ['A', 'B', 'C', 'D', 'E'];
        $series1 = [1, 3, 2, 5, 4];
        $series2 = [3, 1, 7, 2, 6];
        $series3 = [8, 3, 2, 5, 4];
        $showGridLines = false;
        $showAxisLabels = false;
        $showLegend = true;
        $legendPosition = 't';
        // r = right, l = left, t = top, b = bottom, tr = top right

        foreach ($chartTypes as $chartType) {
            $section->addTitle(ucfirst($chartType), 2);
            $chart = $section->addChart($chartType, $categories, $series1);
            $chart->getStyle()->setWidth(Converter::inchToEmu(2.5))->setHeight(Converter::inchToEmu(2));
            $chart->getStyle()->setShowGridX($showGridLines);
            $chart->getStyle()->setShowGridY($showGridLines);
            $chart->getStyle()->setShowAxisLabels($showAxisLabels);
            $chart->getStyle()->setShowLegend($showLegend);
            $chart->getStyle()->setLegendPosition($legendPosition);
            if (in_array($chartType, $twoSeries)) {
                $chart->addSeries($categories, $series2);
            }
            if (in_array($chartType, $threeSeries)) {
                $chart->addSeries($categories, $series3);
            }
            $section->addTextBreak();
        }

        // 3D charts
        $section = $phpWord->addSection(['breakType' => 'continuous']);
        $section->addTitle('3D charts', 1);
        $section = $phpWord->addSection(['colsNum' => 2, 'breakType' => 'continuous']);

        $chartTypes = ['pie', 'bar', 'column', 'line', 'area'];
        $multiSeries = ['bar', 'column', 'line', 'area'];
        $style = [
                'width' => Converter::cmToEmu(5),
                'height' => Converter::cmToEmu(4),
                '3d' => true,
                'showAxisLabels' => $showAxisLabels,
                'showGridX' => $showGridLines,
                'showGridY' => $showGridLines,
            ];
        foreach ($chartTypes as $chartType) {
            $section->addTitle(ucfirst($chartType), 2);
            $chart = $section->addChart($chartType, $categories, $series1, $style);
            if (in_array($chartType, $multiSeries)) {
                $chart->addSeries($categories, $series2);
                $chart->addSeries($categories, $series3);
            }
            $section->addTextBreak();
        }

        //save to pdf
        Settings::setPdfRendererName(Settings::PDF_RENDERER_DOMPDF);
        Settings::setPdfRendererPath(base_path() . '/vendor/dompdf/dompdf');
        $writer = IOFactory::createWriter($phpWord, 'PDF');
        $writer->save('report.pdf');

        $writer = IOFactory::createWriter($phpWord, 'DOCX');
        $writer->save('sample.docx');`

### PHPWord version(s) where the bug happened

1.3.0

### PHP version(s) where the bug happened

8.1.2

### Priority

- [ ] I want to crowdfund the bug fix (with [@algora-io](https://docs.algora.io/bounties/overview)) and fund a community developer.
- [ ] I want to pay the bug fix and fund a maintainer for that. (Contact @Progi1984)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions