queXML Export of Dari and Arabic; Limesurveyversion: 3.14.5+180815

More
2 months 2 weeks ago #173051 by LindaW
LindaW created the topic: queXML Export of Dari and Arabic; Limesurveyversion: 3.14.5+180815
We have a questionnaire in 4 languages: German (default language); Polish, Turkish, Dari, Arabic.
Now I want to export the Dari and the Arabic version of the questionnaire into queXML-PDF's. Unfortunately, I get a failure notice for Dari and Arabic (not for the other languages): See below. What can I do?

DARI

PHP notice
Undefined offset: -1


/var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(6184)

6172 $sum = 0;
6173 } elseif ($lastSeparator != -1) {
6174 $i = $lastSeparator;
6175 $lastSeparator = -1;
6176 $sum = 0;
6177 } else {
6178 $sum = $charWidth;
6179 }
6180 } else {
6181 $sum += $charWidth;
6182 }
6183 }
6184 if ($chars[($length - 1)] == 10) {
6185 --$lines;
6186 }
6187 $this->cell_padding = $prev_cell_padding;
6188 $this->lasth = $prev_lasth;
6189 return $lines;
6190 }
6191
6192 /**
6193 * This method return the estimated height needed for printing a simple text string using the Multicell() method.
6194 * Generally, if you want to know the exact height for a block of content you can use the following alternative technique:
6195 * @pre
6196 * // store current object


Stack Trace
#0
– /var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(6247): TCPDF->getNumLines(false, 13, true, true, ...)
6242 $prev_lasth = $this->lasth;
6243 if (is_array($cellpadding)) {
6244 $this->cell_padding = $cellpadding;
6245 }
6246 $this->adjustCellPadding($border);
6247 $lines = $this->getNumLines($txt, $w, $reseth, $autopadding, $cellpadding, $border);
6248 $height = $this->getCellHeight(($lines * $this->FontSize), $autopadding);
6249 $this->cell_padding = $prev_cell_padding;
6250 $this->lasth = $prev_lasth;
6251 return $height;
6252 }
#1
– /var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(5840): TCPDF->getStringHeight(13, false, true, true, ...)
5835 $h = $maxh = max(min($h, $tobottom), min($maxh, $tobottom));
5836 }
5837 // vertical alignment
5838 if ($maxh > 0) {
5839 // get text height
5840 $text_height = $this->getStringHeight($w, $txt, $reseth, $autopadding, $mc_padding, $border);
5841 if ($fitcell AND ($text_height > $maxh) AND ($this->FontSizePt > 1)) {
5842 // try to reduce font size to fit text on cell (use a quick search algorithm)
5843 $fmin = 1;
5844 $fmax = $this->FontSizePt;
5845 $diff_epsilon = (1 / $this->k); // one point (min resolution)
#2
– /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(3212): TCPDF->MultiCell(13, 10, false, 0, ...)
3207 // Going to break the line because of long word
3208 if ($this->wordLength($r) > $this->responseLabelSmallWordLength) {
3209 $this->setDefaultFont($this->responseLabelFontSizeSmall);
3210 }
3211
3212 $this->MultiCell($rwidth, $this->responseLabelHeight, $r, 0, 'C', false, 0, $x, $y, true, 0, false, true, $this->responseLabelHeight, 'B', true);
3213
3214 //reset font
3215 if ($this->wordLength($r) > $this->responseLabelSmallWordLength) {
3216 $this->setDefaultFont($this->responseLabelFontSize);
3217 }
#3
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(3254): quexmlpdf->drawSingleChoiceHorizontalHead(array(array("text" => "صدق نمیکند", "value" => "A1"), array("text" => "کم صدق میکند", "value" => "A2"), array("text" => "اکثرا صدق میکند", "value" => "A3"), array("text" => false, "value" => "A4")), false)
#4
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(2484): quexmlpdf->drawSingleChoiceHorizontal(array(array("text" => "صدق نمیکند", "value" => "A1"), array("text" => "کم صدق میکند", "value" => "A2"), array("text" => "اکثرا صدق میکند", "value" => "A3"), array("text" => false, "value" => "A4")), array(array("text" => "الف : امکان کافی برای عقب نشینی وجود...", "varname" => SimpleXMLElement), array("text" => ": دیوار خانه من پوپنک (شمیل) دارد.", "varname" => SimpleXMLElement), array("text" => "در صورت لزوم خانه امرا میتوان گرمتر...", "varname" => SimpleXMLElement), array("text" => "درخانه من تجهیزات اساسی موجود است، ...", "varname" => SimpleXMLElement), ...), "چقدر اظهارات زیر به شما و محیط خانه ...", false, ...)
#5
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(2203): quexmlpdf->createQuestion(array("split" => "notset", "title" => "E5.", "text" => "چقدر اظهارات زیر به شما و محیط خانه ...", "responses" => array(array("subquestions" => array(array("text" => "الف : امکان کافی برای عقب نشینی وجود...", "varname" => SimpleXMLElement), array("text" => ": دیوار خانه من پوپنک (شمیل) دارد.", "varname" => SimpleXMLElement), array("text" => "در صورت لزوم خانه امرا میتوان گرمتر...", "varname" => SimpleXMLElement), array("text" => "درخانه من تجهیزات اساسی موجود است، ...", "varname" => SimpleXMLElement), ...), "varname" => SimpleXMLElement, "response" => array("split" => "notset", "type" => "fixed", "width" => 4, "categories" => array(array("text" => "صدق نمیکند", "value" => "A1"), array("text" => "کم صدق میکند", "value" => "A2"), array("text" => "اکثرا صدق میکند", "value" => "A3"), array("text" => false, "value" => "A4")))))))
#6
+ /var/www/html/limesurvey/application/controllers/admin/export.php(1167): quexmlpdf->create()
#7
unknown(0): export->quexml(297447)
#8
+ /var/www/html/limesurvey/framework/web/actions/CAction.php(109): ReflectionMethod->invokeArgs(export, array("297447"))
#9
+ /var/www/html/limesurvey/application/core/Survey_Common_Action.php(83): CAction->runWithParamsInternal(export, ReflectionMethod, array("surveyid" => "297447", "sa" => "quexml", "iSurveyId" => "297447", "iSurveyID" => "297447", ...))
#10
+ /var/www/html/limesurvey/framework/web/CController.php(308): Survey_Common_Action->runWithParams(array("surveyid" => "297447", "sa" => "quexml", "iSurveyId" => "297447", "iSurveyID" => "297447", ...))
#11
+ /var/www/html/limesurvey/framework/web/CController.php(286): CController->runAction(export)
#12
+ /var/www/html/limesurvey/framework/web/CController.php(265): CController->runActionWithFilters(export, array())
#13
+ /var/www/html/limesurvey/application/controllers/AdminController.php(158): CController->run("export")
#14
+ /var/www/html/limesurvey/framework/web/CWebApplication.php(282): AdminController->run("export")
#15
+ /var/www/html/limesurvey/framework/web/CWebApplication.php(141): CWebApplication->runController("admin/export/sa/quexml")
#16
+ /var/www/html/limesurvey/framework/base/CApplication.php(185): CWebApplication->processRequest()
#17
+ /var/www/html/limesurvey/index.php(194): CApplication->run()

ARABIC


PHP notice
Undefined offset: -1

/var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(6184)

6172 $sum = 0;
6173 } elseif ($lastSeparator != -1) {
6174 $i = $lastSeparator;
6175 $lastSeparator = -1;
6176 $sum = 0;
6177 } else {
6178 $sum = $charWidth;
6179 }
6180 } else {
6181 $sum += $charWidth;
6182 }
6183 }
6184 if ($chars[($length - 1)] == 10) {
6185 --$lines;
6186 }
6187 $this->cell_padding = $prev_cell_padding;
6188 $this->lasth = $prev_lasth;
6189 return $lines;
6190 }
6191
6192 /**
6193 * This method return the estimated height needed for printing a simple text string using the Multicell() method.
6194 * Generally, if you want to know the exact height for a block of content you can use the following alternative technique:
6195 * @pre
6196 * // store current object
Stack Trace
#0
– /var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(6247): TCPDF->getNumLines(false, 13, true, true, ...)
6242 $prev_lasth = $this->lasth;
6243 if (is_array($cellpadding)) {
6244 $this->cell_padding = $cellpadding;
6245 }
6246 $this->adjustCellPadding($border);
6247 $lines = $this->getNumLines($txt, $w, $reseth, $autopadding, $cellpadding, $border);
6248 $height = $this->getCellHeight(($lines * $this->FontSize), $autopadding);
6249 $this->cell_padding = $prev_cell_padding;
6250 $this->lasth = $prev_lasth;
6251 return $height;
6252 }
#1
– /var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(5840): TCPDF->getStringHeight(13, false, true, true, ...)
5835 $h = $maxh = max(min($h, $tobottom), min($maxh, $tobottom));
5836 }
5837 // vertical alignment
5838 if ($maxh > 0) {
5839 // get text height
5840 $text_height = $this->getStringHeight($w, $txt, $reseth, $autopadding, $mc_padding, $border);
5841 if ($fitcell AND ($text_height > $maxh) AND ($this->FontSizePt > 1)) {
5842 // try to reduce font size to fit text on cell (use a quick search algorithm)
5843 $fmin = 1;
5844 $fmax = $this->FontSizePt;
5845 $diff_epsilon = (1 / $this->k); // one point (min resolution)
#2
– /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(3212): TCPDF->MultiCell(13, 10, false, 0, ...)
3207 // Going to break the line because of long word
3208 if ($this->wordLength($r) > $this->responseLabelSmallWordLength) {
3209 $this->setDefaultFont($this->responseLabelFontSizeSmall);
3210 }
3211
3212 $this->MultiCell($rwidth, $this->responseLabelHeight, $r, 0, 'C', false, 0, $x, $y, true, 0, false, true, $this->responseLabelHeight, 'B', true);
3213
3214 //reset font
3215 if ($this->wordLength($r) > $this->responseLabelSmallWordLength) {
3216 $this->setDefaultFont($this->responseLabelFontSize);
3217 }
#3
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(3254): quexmlpdf->drawSingleChoiceHorizontalHead(array(array("text" => "trifft gar nicht zu", "value" => "A1"), array("text" => "trifft wenig zu", "value" => "A2"), array("text" => "trifft größtenteils zu", "value" => "A3"), array("text" => false, "value" => "A4")), false)
#4
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(2484): quexmlpdf->drawSingleChoiceHorizontal()
#5
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(2203): quexmlpdf->createQuestion()
#6
+ /var/www/html/limesurvey/application/controllers/admin/export.php(1167): quexmlpdf->create()
#7
unknown(0): export->quexml(297447)
#8
+ /var/www/html/limesurvey/framework/web/actions/CAction.php(109): ReflectionMethod->invokeArgs(export, array("297447"))
#9
+ /var/www/html/limesurvey/application/core/Survey_Common_Action.php(83): CAction->runWithParamsInternal(export, ReflectionMethod, array("surveyid" => "297447", "sa" => "quexml", "iSurveyId" => "297447", "iSurveyID" => "297447", ...))
#10
+ /var/www/html/limesurvey/framework/web/CController.php(308): Survey_Common_Action->runWithParams(array("surveyid" => "297447", "sa" => "quexml", "iSurveyId" => "297447", "iSurveyID" => "297447", ...))
#11
+ /var/www/html/limesurvey/framework/web/CController.php(286): CController->runAction(export)
#12
+ /var/www/html/limesurvey/framework/web/CController.php(265): CController->runActionWithFilters(export, array())
#13
+ /var/www/html/limesurvey/application/controllers/AdminController.php(158): CController->run("export")
#14
+ /var/www/html/limesurvey/framework/web/CWebApplication.php(282): AdminController->run("export")
#15
+ /var/www/html/limesurvey/framework/web/CWebApplication.php(141): CWebApplication->runController("admin/export/sa/quexml")
#16
+ /var/www/html/limesurvey/framework/base/CApplication.php(185): CWebApplication->processRequest()
#17
+ /var/www/html/limesurvey/index.php(194): CApplication->run()

Please Log in or Create an account to join the conversation.

More
2 months 2 weeks ago #173052 by Wulkau
Wulkau replied the topic: queXML-Pdf-Export of Dari and Farsi; Limesurveyversion 3.14.5+180815
We have a survey with 5 languages: German (default), Arabic, Dari, Polish and Turkish.
I want to export the Pdf's of the Dari-Version and the Arabic version. Unfortunately, I get a failure notice, when I do so (see below). What can I do?


DARI:

PHP notice
Undefined offset: -1

/var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(6184)

6172 $sum = 0;
6173 } elseif ($lastSeparator != -1) {
6174 $i = $lastSeparator;
6175 $lastSeparator = -1;
6176 $sum = 0;
6177 } else {
6178 $sum = $charWidth;
6179 }
6180 } else {
6181 $sum += $charWidth;
6182 }
6183 }
6184 if ($chars[($length - 1)] == 10) {
6185 --$lines;
6186 }
6187 $this->cell_padding = $prev_cell_padding;
6188 $this->lasth = $prev_lasth;
6189 return $lines;
6190 }
6191
6192 /**
6193 * This method return the estimated height needed for printing a simple text string using the Multicell() method.
6194 * Generally, if you want to know the exact height for a block of content you can use the following alternative technique:
6195 * @pre
6196 * // store current object
Stack Trace
#0
– /var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(6247): TCPDF->getNumLines(false, 13, true, true, ...)
6242 $prev_lasth = $this->lasth;
6243 if (is_array($cellpadding)) {
6244 $this->cell_padding = $cellpadding;
6245 }
6246 $this->adjustCellPadding($border);
6247 $lines = $this->getNumLines($txt, $w, $reseth, $autopadding, $cellpadding, $border);
6248 $height = $this->getCellHeight(($lines * $this->FontSize), $autopadding);
6249 $this->cell_padding = $prev_cell_padding;
6250 $this->lasth = $prev_lasth;
6251 return $height;
6252 }
#1
– /var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(5840): TCPDF->getStringHeight(13, false, true, true, ...)
5835 $h = $maxh = max(min($h, $tobottom), min($maxh, $tobottom));
5836 }
5837 // vertical alignment
5838 if ($maxh > 0) {
5839 // get text height
5840 $text_height = $this->getStringHeight($w, $txt, $reseth, $autopadding, $mc_padding, $border);
5841 if ($fitcell AND ($text_height > $maxh) AND ($this->FontSizePt > 1)) {
5842 // try to reduce font size to fit text on cell (use a quick search algorithm)
5843 $fmin = 1;
5844 $fmax = $this->FontSizePt;
5845 $diff_epsilon = (1 / $this->k); // one point (min resolution)
#2
– /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(3212): TCPDF->MultiCell(13, 10, false, 0, ...)
3207 // Going to break the line because of long word
3208 if ($this->wordLength($r) > $this->responseLabelSmallWordLength) {
3209 $this->setDefaultFont($this->responseLabelFontSizeSmall);
3210 }
3211
3212 $this->MultiCell($rwidth, $this->responseLabelHeight, $r, 0, 'C', false, 0, $x, $y, true, 0, false, true, $this->responseLabelHeight, 'B', true);
3213
3214 //reset font
3215 if ($this->wordLength($r) > $this->responseLabelSmallWordLength) {
3216 $this->setDefaultFont($this->responseLabelFontSize);
3217 }
#3
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(3254): quexmlpdf->drawSingleChoiceHorizontalHead(array(array("text" => "صدق نمیکند", "value" => "A1"), array("text" => "کم صدق میکند", "value" => "A2"), array("text" => "اکثرا صدق میکند", "value" => "A3"), array("text" => false, "value" => "A4")), false)
#4
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(2484): quexmlpdf->drawSingleChoiceHorizontal(array(array("text" => "صدق نمیکند", "value" => "A1"), array("text" => "کم صدق میکند", "value" => "A2"), array("text" => "اکثرا صدق میکند", "value" => "A3"), array("text" => false, "value" => "A4")), array(array("text" => "الف : امکان کافی برای عقب نشینی وجود...", "varname" => SimpleXMLElement), array("text" => ": دیوار خانه من پوپنک (شمیل) دارد.", "varname" => SimpleXMLElement), array("text" => "در صورت لزوم خانه امرا میتوان گرمتر...", "varname" => SimpleXMLElement), array("text" => "درخانه من تجهیزات اساسی موجود است، ...", "varname" => SimpleXMLElement), ...), "چقدر اظهارات زیر به شما و محیط خانه ...", false, ...)
#5
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(2203): quexmlpdf->createQuestion(array("split" => "notset", "title" => "E5.", "text" => "چقدر اظهارات زیر به شما و محیط خانه ...", "responses" => array(array("subquestions" => array(array("text" => "الف : امکان کافی برای عقب نشینی وجود...", "varname" => SimpleXMLElement), array("text" => ": دیوار خانه من پوپنک (شمیل) دارد.", "varname" => SimpleXMLElement), array("text" => "در صورت لزوم خانه امرا میتوان گرمتر...", "varname" => SimpleXMLElement), array("text" => "درخانه من تجهیزات اساسی موجود است، ...", "varname" => SimpleXMLElement), ...), "varname" => SimpleXMLElement, "response" => array("split" => "notset", "type" => "fixed", "width" => 4, "categories" => array(array("text" => "صدق نمیکند", "value" => "A1"), array("text" => "کم صدق میکند", "value" => "A2"), array("text" => "اکثرا صدق میکند", "value" => "A3"), array("text" => false, "value" => "A4")))))))
#6
+ /var/www/html/limesurvey/application/controllers/admin/export.php(1167): quexmlpdf->create()
#7
unknown(0): export->quexml(297447)
#8
+ /var/www/html/limesurvey/framework/web/actions/CAction.php(109): ReflectionMethod->invokeArgs(export, array("297447"))
#9
+ /var/www/html/limesurvey/application/core/Survey_Common_Action.php(83): CAction->runWithParamsInternal(export, ReflectionMethod, array("surveyid" => "297447", "sa" => "quexml", "iSurveyId" => "297447", "iSurveyID" => "297447", ...))
#10
+ /var/www/html/limesurvey/framework/web/CController.php(308): Survey_Common_Action->runWithParams(array("surveyid" => "297447", "sa" => "quexml", "iSurveyId" => "297447", "iSurveyID" => "297447", ...))
#11
+ /var/www/html/limesurvey/framework/web/CController.php(286): CController->runAction(export)
#12
+ /var/www/html/limesurvey/framework/web/CController.php(265): CController->runActionWithFilters(export, array())
#13
+ /var/www/html/limesurvey/application/controllers/AdminController.php(158): CController->run("export")
#14
+ /var/www/html/limesurvey/framework/web/CWebApplication.php(282): AdminController->run("export")
#15
+ /var/www/html/limesurvey/framework/web/CWebApplication.php(141): CWebApplication->runController("admin/export/sa/quexml")
#16
+ /var/www/html/limesurvey/framework/base/CApplication.php(185): CWebApplication->processRequest()
#17
+ /var/www/html/limesurvey/index.php(194): CApplication->run()

ARABIC:


PHP notice
Undefined offset: -1

/var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(6184)

6172 $sum = 0;
6173 } elseif ($lastSeparator != -1) {
6174 $i = $lastSeparator;
6175 $lastSeparator = -1;
6176 $sum = 0;
6177 } else {
6178 $sum = $charWidth;
6179 }
6180 } else {
6181 $sum += $charWidth;
6182 }
6183 }
6184 if ($chars[($length - 1)] == 10) {
6185 --$lines;
6186 }
6187 $this->cell_padding = $prev_cell_padding;
6188 $this->lasth = $prev_lasth;
6189 return $lines;
6190 }
6191
6192 /**
6193 * This method return the estimated height needed for printing a simple text string using the Multicell() method.
6194 * Generally, if you want to know the exact height for a block of content you can use the following alternative technique:
6195 * @pre
6196 * // store current object
Stack Trace
#0
– /var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(6247): TCPDF->getNumLines(false, 13, true, true, ...)
6242 $prev_lasth = $this->lasth;
6243 if (is_array($cellpadding)) {
6244 $this->cell_padding = $cellpadding;
6245 }
6246 $this->adjustCellPadding($border);
6247 $lines = $this->getNumLines($txt, $w, $reseth, $autopadding, $cellpadding, $border);
6248 $height = $this->getCellHeight(($lines * $this->FontSize), $autopadding);
6249 $this->cell_padding = $prev_cell_padding;
6250 $this->lasth = $prev_lasth;
6251 return $height;
6252 }
#1
– /var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(5840): TCPDF->getStringHeight(13, false, true, true, ...)
5835 $h = $maxh = max(min($h, $tobottom), min($maxh, $tobottom));
5836 }
5837 // vertical alignment
5838 if ($maxh > 0) {
5839 // get text height
5840 $text_height = $this->getStringHeight($w, $txt, $reseth, $autopadding, $mc_padding, $border);
5841 if ($fitcell AND ($text_height > $maxh) AND ($this->FontSizePt > 1)) {
5842 // try to reduce font size to fit text on cell (use a quick search algorithm)
5843 $fmin = 1;
5844 $fmax = $this->FontSizePt;
5845 $diff_epsilon = (1 / $this->k); // one point (min resolution)
#2
– /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(3212): TCPDF->MultiCell(13, 10, false, 0, ...)
3207 // Going to break the line because of long word
3208 if ($this->wordLength($r) > $this->responseLabelSmallWordLength) {
3209 $this->setDefaultFont($this->responseLabelFontSizeSmall);
3210 }
3211
3212 $this->MultiCell($rwidth, $this->responseLabelHeight, $r, 0, 'C', false, 0, $x, $y, true, 0, false, true, $this->responseLabelHeight, 'B', true);
3213
3214 //reset font
3215 if ($this->wordLength($r) > $this->responseLabelSmallWordLength) {
3216 $this->setDefaultFont($this->responseLabelFontSize);
3217 }
#3
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(3254): quexmlpdf->drawSingleChoiceHorizontalHead(array(array("text" => "trifft gar nicht zu", "value" => "A1"), array("text" => "trifft wenig zu", "value" => "A2"), array("text" => "trifft größtenteils zu", "value" => "A3"), array("text" => false, "value" => "A4")), false)
#4
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(2484): quexmlpdf->drawSingleChoiceHorizontal()
#5
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(2203): quexmlpdf->createQuestion()
#6
+ /var/www/html/limesurvey/application/controllers/admin/export.php(1167): quexmlpdf->create()
#7
unknown(0): export->quexml(297447)
#8
+ /var/www/html/limesurvey/framework/web/actions/CAction.php(109): ReflectionMethod->invokeArgs(export, array("297447"))
#9
+ /var/www/html/limesurvey/application/core/Survey_Common_Action.php(83): CAction->runWithParamsInternal(export, ReflectionMethod, array("surveyid" => "297447", "sa" => "quexml", "iSurveyId" => "297447", "iSurveyID" => "297447", ...))
#10
+ /var/www/html/limesurvey/framework/web/CController.php(308): Survey_Common_Action->runWithParams(array("surveyid" => "297447", "sa" => "quexml", "iSurveyId" => "297447", "iSurveyID" => "297447", ...))
#11
+ /var/www/html/limesurvey/framework/web/CController.php(286): CController->runAction(export)
#12
+ /var/www/html/limesurvey/framework/web/CController.php(265): CController->runActionWithFilters(export, array())
#13
+ /var/www/html/limesurvey/application/controllers/AdminController.php(158): CController->run("export")
#14
+ /var/www/html/limesurvey/framework/web/CWebApplication.php(282): AdminController->run("export")
#15
+ /var/www/html/limesurvey/framework/web/CWebApplication.php(141): CWebApplication->runController("admin/export/sa/quexml")
#16
+ /var/www/html/limesurvey/framework/base/CApplication.php(185): CWebApplication->processRequest()
#17
+ /var/www/html/limesurvey/index.php(194): CApplication->run()

Please Log in or Create an account to join the conversation.

More
2 months 2 weeks ago #173053 by MNatan
MNatan replied the topic: XML-Pdf-Export of Questionnaires in Dari and Arabic, Version: 3.14.5+180815
We have a questionnaire in 5 languages: German (default), Polish, Turkish, Arabic, Dari.

We want to export the Pdf's and XML-files of the Dari-Version and the Arabic version. Unfortunately, this doesn't work out: failure notice see below. The other languages can be exported. What can we do?


DARI:


PHP notice
Undefined offset: -1

/var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(6184)

6172 $sum = 0;
6173 } elseif ($lastSeparator != -1) {
6174 $i = $lastSeparator;
6175 $lastSeparator = -1;
6176 $sum = 0;
6177 } else {
6178 $sum = $charWidth;
6179 }
6180 } else {
6181 $sum += $charWidth;
6182 }
6183 }
6184 if ($chars[($length - 1)] == 10) {
6185 --$lines;
6186 }
6187 $this->cell_padding = $prev_cell_padding;
6188 $this->lasth = $prev_lasth;
6189 return $lines;
6190 }
6191
6192 /**
6193 * This method return the estimated height needed for printing a simple text string using the Multicell() method.
6194 * Generally, if you want to know the exact height for a block of content you can use the following alternative technique:
6195 * @pre
6196 * // store current object
Stack Trace
#0
– /var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(6247): TCPDF->getNumLines(false, 13, true, true, ...)
6242 $prev_lasth = $this->lasth;
6243 if (is_array($cellpadding)) {
6244 $this->cell_padding = $cellpadding;
6245 }
6246 $this->adjustCellPadding($border);
6247 $lines = $this->getNumLines($txt, $w, $reseth, $autopadding, $cellpadding, $border);
6248 $height = $this->getCellHeight(($lines * $this->FontSize), $autopadding);
6249 $this->cell_padding = $prev_cell_padding;
6250 $this->lasth = $prev_lasth;
6251 return $height;
6252 }
#1
– /var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(5840): TCPDF->getStringHeight(13, false, true, true, ...)
5835 $h = $maxh = max(min($h, $tobottom), min($maxh, $tobottom));
5836 }
5837 // vertical alignment
5838 if ($maxh > 0) {
5839 // get text height
5840 $text_height = $this->getStringHeight($w, $txt, $reseth, $autopadding, $mc_padding, $border);
5841 if ($fitcell AND ($text_height > $maxh) AND ($this->FontSizePt > 1)) {
5842 // try to reduce font size to fit text on cell (use a quick search algorithm)
5843 $fmin = 1;
5844 $fmax = $this->FontSizePt;
5845 $diff_epsilon = (1 / $this->k); // one point (min resolution)
#2
– /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(3212): TCPDF->MultiCell(13, 10, false, 0, ...)
3207 // Going to break the line because of long word
3208 if ($this->wordLength($r) > $this->responseLabelSmallWordLength) {
3209 $this->setDefaultFont($this->responseLabelFontSizeSmall);
3210 }
3211
3212 $this->MultiCell($rwidth, $this->responseLabelHeight, $r, 0, 'C', false, 0, $x, $y, true, 0, false, true, $this->responseLabelHeight, 'B', true);
3213
3214 //reset font
3215 if ($this->wordLength($r) > $this->responseLabelSmallWordLength) {
3216 $this->setDefaultFont($this->responseLabelFontSize);
3217 }
#3
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(3254): quexmlpdf->drawSingleChoiceHorizontalHead(array(array("text" => "صدق نمیکند", "value" => "A1"), array("text" => "کم صدق میکند", "value" => "A2"), array("text" => "اکثرا صدق میکند", "value" => "A3"), array("text" => false, "value" => "A4")), false)
#4
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(2484): quexmlpdf->drawSingleChoiceHorizontal(array(array("text" => "صدق نمیکند", "value" => "A1"), array("text" => "کم صدق میکند", "value" => "A2"), array("text" => "اکثرا صدق میکند", "value" => "A3"), array("text" => false, "value" => "A4")), array(array("text" => "الف : امکان کافی برای عقب نشینی وجود...", "varname" => SimpleXMLElement), array("text" => ": دیوار خانه من پوپنک (شمیل) دارد.", "varname" => SimpleXMLElement), array("text" => "در صورت لزوم خانه امرا میتوان گرمتر...", "varname" => SimpleXMLElement), array("text" => "درخانه من تجهیزات اساسی موجود است، ...", "varname" => SimpleXMLElement), ...), "چقدر اظهارات زیر به شما و محیط خانه ...", false, ...)
#5
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(2203): quexmlpdf->createQuestion(array("split" => "notset", "title" => "E5.", "text" => "چقدر اظهارات زیر به شما و محیط خانه ...", "responses" => array(array("subquestions" => array(array("text" => "الف : امکان کافی برای عقب نشینی وجود...", "varname" => SimpleXMLElement), array("text" => ": دیوار خانه من پوپنک (شمیل) دارد.", "varname" => SimpleXMLElement), array("text" => "در صورت لزوم خانه امرا میتوان گرمتر...", "varname" => SimpleXMLElement), array("text" => "درخانه من تجهیزات اساسی موجود است، ...", "varname" => SimpleXMLElement), ...), "varname" => SimpleXMLElement, "response" => array("split" => "notset", "type" => "fixed", "width" => 4, "categories" => array(array("text" => "صدق نمیکند", "value" => "A1"), array("text" => "کم صدق میکند", "value" => "A2"), array("text" => "اکثرا صدق میکند", "value" => "A3"), array("text" => false, "value" => "A4")))))))
#6
+ /var/www/html/limesurvey/application/controllers/admin/export.php(1167): quexmlpdf->create()
#7
unknown(0): export->quexml(297447)
#8
+ /var/www/html/limesurvey/framework/web/actions/CAction.php(109): ReflectionMethod->invokeArgs(export, array("297447"))
#9
+ /var/www/html/limesurvey/application/core/Survey_Common_Action.php(83): CAction->runWithParamsInternal(export, ReflectionMethod, array("surveyid" => "297447", "sa" => "quexml", "iSurveyId" => "297447", "iSurveyID" => "297447", ...))
#10
+ /var/www/html/limesurvey/framework/web/CController.php(308): Survey_Common_Action->runWithParams(array("surveyid" => "297447", "sa" => "quexml", "iSurveyId" => "297447", "iSurveyID" => "297447", ...))
#11
+ /var/www/html/limesurvey/framework/web/CController.php(286): CController->runAction(export)
#12
+ /var/www/html/limesurvey/framework/web/CController.php(265): CController->runActionWithFilters(export, array())
#13
+ /var/www/html/limesurvey/application/controllers/AdminController.php(158): CController->run("export")
#14
+ /var/www/html/limesurvey/framework/web/CWebApplication.php(282): AdminController->run("export")
#15
+ /var/www/html/limesurvey/framework/web/CWebApplication.php(141): CWebApplication->runController("admin/export/sa/quexml")
#16
+ /var/www/html/limesurvey/framework/base/CApplication.php(185): CWebApplication->processRequest()
#17
+ /var/www/html/limesurvey/index.php(194): CApplication->run()

ARABIC:

PHP notice
Undefined offset: -1

/var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(6184)

6172 $sum = 0;
6173 } elseif ($lastSeparator != -1) {
6174 $i = $lastSeparator;
6175 $lastSeparator = -1;
6176 $sum = 0;
6177 } else {
6178 $sum = $charWidth;
6179 }
6180 } else {
6181 $sum += $charWidth;
6182 }
6183 }
6184 if ($chars[($length - 1)] == 10) {
6185 --$lines;
6186 }
6187 $this->cell_padding = $prev_cell_padding;
6188 $this->lasth = $prev_lasth;
6189 return $lines;
6190 }
6191
6192 /**
6193 * This method return the estimated height needed for printing a simple text string using the Multicell() method.
6194 * Generally, if you want to know the exact height for a block of content you can use the following alternative technique:
6195 * @pre
6196 * // store current object
Stack Trace
#0
– /var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(6247): TCPDF->getNumLines(false, 13, true, true, ...)
6242 $prev_lasth = $this->lasth;
6243 if (is_array($cellpadding)) {
6244 $this->cell_padding = $cellpadding;
6245 }
6246 $this->adjustCellPadding($border);
6247 $lines = $this->getNumLines($txt, $w, $reseth, $autopadding, $cellpadding, $border);
6248 $height = $this->getCellHeight(($lines * $this->FontSize), $autopadding);
6249 $this->cell_padding = $prev_cell_padding;
6250 $this->lasth = $prev_lasth;
6251 return $height;
6252 }
#1
– /var/www/html/limesurvey/application/third_party/tcpdf/tcpdf.php(5840): TCPDF->getStringHeight(13, false, true, true, ...)
5835 $h = $maxh = max(min($h, $tobottom), min($maxh, $tobottom));
5836 }
5837 // vertical alignment
5838 if ($maxh > 0) {
5839 // get text height
5840 $text_height = $this->getStringHeight($w, $txt, $reseth, $autopadding, $mc_padding, $border);
5841 if ($fitcell AND ($text_height > $maxh) AND ($this->FontSizePt > 1)) {
5842 // try to reduce font size to fit text on cell (use a quick search algorithm)
5843 $fmin = 1;
5844 $fmax = $this->FontSizePt;
5845 $diff_epsilon = (1 / $this->k); // one point (min resolution)
#2
– /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(3212): TCPDF->MultiCell(13, 10, false, 0, ...)
3207 // Going to break the line because of long word
3208 if ($this->wordLength($r) > $this->responseLabelSmallWordLength) {
3209 $this->setDefaultFont($this->responseLabelFontSizeSmall);
3210 }
3211
3212 $this->MultiCell($rwidth, $this->responseLabelHeight, $r, 0, 'C', false, 0, $x, $y, true, 0, false, true, $this->responseLabelHeight, 'B', true);
3213
3214 //reset font
3215 if ($this->wordLength($r) > $this->responseLabelSmallWordLength) {
3216 $this->setDefaultFont($this->responseLabelFontSize);
3217 }
#3
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(3254): quexmlpdf->drawSingleChoiceHorizontalHead(array(array("text" => "trifft gar nicht zu", "value" => "A1"), array("text" => "trifft wenig zu", "value" => "A2"), array("text" => "trifft größtenteils zu", "value" => "A3"), array("text" => false, "value" => "A4")), false)
#4
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(2484): quexmlpdf->drawSingleChoiceHorizontal()
#5
+ /var/www/html/limesurvey/application/libraries/admin/quexmlpdf.php(2203): quexmlpdf->createQuestion()
#6
+ /var/www/html/limesurvey/application/controllers/admin/export.php(1167): quexmlpdf->create()
#7
unknown(0): export->quexml(297447)
#8
+ /var/www/html/limesurvey/framework/web/actions/CAction.php(109): ReflectionMethod->invokeArgs(export, array("297447"))
#9
+ /var/www/html/limesurvey/application/core/Survey_Common_Action.php(83): CAction->runWithParamsInternal(export, ReflectionMethod, array("surveyid" => "297447", "sa" => "quexml", "iSurveyId" => "297447", "iSurveyID" => "297447", ...))
#10
+ /var/www/html/limesurvey/framework/web/CController.php(308): Survey_Common_Action->runWithParams(array("surveyid" => "297447", "sa" => "quexml", "iSurveyId" => "297447", "iSurveyID" => "297447", ...))
#11
+ /var/www/html/limesurvey/framework/web/CController.php(286): CController->runAction(export)
#12
+ /var/www/html/limesurvey/framework/web/CController.php(265): CController->runActionWithFilters(export, array())
#13
+ /var/www/html/limesurvey/application/controllers/AdminController.php(158): CController->run("export")
#14
+ /var/www/html/limesurvey/framework/web/CWebApplication.php(282): AdminController->run("export")
#15
+ /var/www/html/limesurvey/framework/web/CWebApplication.php(141): CWebApplication->runController("admin/export/sa/quexml")
#16
+ /var/www/html/limesurvey/framework/base/CApplication.php(185): CWebApplication->processRequest()
#17
+ /var/www/html/limesurvey/index.php(194): CApplication->run()

Please Log in or Create an account to join the conversation.

More
2 months 2 weeks ago #173070 by holch
holch replied the topic: XML-Pdf-Export of Questionnaires in Dari and Arabic, Version: 3.14.5+180815
This seems to be the same problem. There is no need that 3 different users open 3 different posts.

I'm not a LimeSurvey GmbH member. I answer at the LimeSurvey forum in my spare time. No support via private message.
Some helpful links: Manual (EN) | Question Types | Workarounds

Please Log in or Create an account to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now
Join our Newsletter!