Skip to content

Loading…

PDF reports - long lines overflow into adjacent cell, or truncated [patch] #2392

Closed
anonymous-piwik-user opened this Issue · 8 comments

3 participants

@anonymous-piwik-user

Small display error in PDF reports. If text is too long for one cell it will sometimes (if cell has no background colour?) flow in adjacent cell and make content unreadable. Happened for Visitor overview and Returning Visitors report. See attached screenshots.

Also mentioned in http://forum.piwik.org/read.php?5,76084

@robocoder

I think this is the flip side of #1601.

@mattab
Piwik Open Source Analytics member

I don't think it's easy to do, or maybe I just don't know about it... ? Decreasing priority but of course if a patch is submitted it would be great :)

@mattab
Piwik Open Source Analytics member

Maybe worth trying to replace Cell() by MultiCell() in the generation code (see http://stackoverflow.com/questions/2938953/word-wrap-in-tcpdf )

@anonymous-piwik-user

Setting a a white background on the even rows, like the green on the uneven, will do the trick. This will hide the overflowing text.
But it might be a better idea to make the cells wider, there's plenty of room left.

@anonymous-piwik-user

Quick and dirty fix is the following configuration:

/core/ReportRenderer/Pdf.php

//line 29
    private $bottomMargin = 15;
    private $reportWidthPortrait = 195;
    private $reportWidthLandscape = 270;
    private $minWidthLabelCell = 100;
    private $maxColumnCountPortraitOrientation = 6;
    private $truncateAfter = 55;

Line 326 // Computes available column width

        // Computes available column width
        $this->totalWidth = $totalWidth;
//      $this->labelCellWidth = max(round(($this->totalWidth / $columnsCount) * 2), $this->minWidthLabelCell);
//      Changed by Jens Verneuer
        $this->labelCellWidth = max(round(($this->totalWidth / $columnsCount) ), $this->minWidthLabelCell);
        if ($columnsCount == 2) {
//      Changed by Jens Verneuer            
//      $this->labelCellWidth = $this->totalWidth / 2;
        }
        $this->cellWidth = round(($this->totalWidth - $this->labelCellWidth) / ($columnsCount - 1));
        $this->totalWidth = $this->labelCellWidth + ($columnsCount - 1) * $this->cellWidth;

Additionaly I decreased the Font Size a bit, because some of our Website Names are to long for the first Paper of the Report
Line 27/28:

    private $reportSimpleFontSize = 9;
    private $reportHeaderFontSize = 16;

works fine 4 us

@mattab
Piwik Open Source Analytics member

(In [5234]) Thanks mattenschwinger Fixes #2392

@anonymous-piwik-user anonymous-piwik-user added this to the 1.6 Piwik 1.6 milestone
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.