Код вставки не работает в версии 1.7, которая работала в версии 1.6.

У меня есть модуль Prestashop 1.6, который в одной точке готовит PDF-файл со штрих-кодами. Тот же модуль, который я обновил до версии 1.7, но теперь PDF создается без штрих-кода. Я ничего не менял ни в шаблоне, ни в контроллере, но штрих-код не отображается.

Я подписался на это, чтобы подготовить штрих-коды для версии 1.6.

Ниже приведен код моего контроллера, в котором подготовлен штрих-код.

// Initiat PDF class
$pdf = new PDFGenerator((bool)Configuration::get('PS_PDF_USE_CACHE'));

// Prepare barcode
$barcode_params = $pdf->serializeTCPDFtagParameters(array(
   '123456789',
  'C39',
  '',
  '',
  50,
  20,
  0.2,
  array(
   'position'=>'S',
   'border'=>false,
   'padding'=>0,
   'fgcolor'=>array(0,0,0),
   'bgcolor'=>array(255,255,255),
   'text'=>true,
   'font'=>'Helvetica',
   'fontsize'=>8,
   'stretchtext'=>0),
   'N'));

Ниже приведен код шаблона,

<tr>
 <td>
   <b>Shipper Order Number:</b>

 </td>
 <td >    
   <tcpdf method="write1DBarcode" params="{$barcode_params}"/>                                    
 </td>
</tr>

Любой совет будет очень признателен ..


person Roshan ruzaik    schedule 28.01.2018    source источник


Ответы (1)


Хорошо, я сам решил эту проблему.

Но не этим методом. по какой-то причине

<tcpd method="write1DBarcode" ... ' 

вроде не работает.

Поэтому я обошел создание класса HTMLTemplate .. и умные шаблоны для этикеток и вместо этого использовал обычный метод для вывода пользовательской HTML-метки PDF с использованием встроенной функции класса TCPD.

Итак, вот коды, которые я использовал для создания этикетки PDF.

$style = array(
'position' => 'C',
'align' => 'C',
'stretch' => false,
'fitwidth' => true,
'cellfitalign' => '',
'border' => true,
'hpadding' => 'auto',
'vpadding' => 'auto',
'fgcolor' => array(0,0,0),
'bgcolor' => array(255,255,255),
'text' => true,
'font' => 'helvetica',
'fontsize' => 8,
'stretchtext' => 4
);

$html = '<html><head><title></title><style>table { border-collapse: 
collapse;font-family:arial;}td {padding: 10px; vertical-align: center;}';
$html .= '</style></head><body>';

foreach ($orders_array as $order)
{
 $html = $this->prepare_html_label($order); //  this is where my html 
 template is prepared with actual values
 $pdf->setXY(93,472);
 $pdf->Ln(5);
 $pdf->write1DBarcode('*'.$order['awb'].'*', 'C128', '', '', '', 18, 0.4, 
 $style, 'N');
 $pdf->Ln(10);
 $pdf->writeHTML($html, true, false, true, false, '');
}

$pdf->Output('labels.pdf', 'D');
}


Problem solved.! 
Hope this helps some one.
person Roshan ruzaik    schedule 30.01.2018