Добавление кнопки и изображения с помощью Zend Framework в Codeigniter

#zend-framework #codeigniter #barcode

#zend-framework #codeigniter #штрих-код

Вопрос:

Я хочу сгенерировать штрих-код и расположить его под кнопкой, чтобы пользователь мог просто щелкнуть по нему, а затем распечатать. Однако я не смог этого сделать, поэтому теперь у меня есть этот код:

 $page = new Zend_Pdf();
$imageResource =  Zend_Barcode::draw('code39', 'image', $barcodeOptions, $rendererOptions);
imagejpeg($imageResource, 'barcode.jpg', 100); 
$img = Zend_Pdf_Image::imageWithPath('barcode.jpg'); 
    //echo $randomTxt;
    echo '<br/>';
    echo '<img src="'. base_url() .'/images/logo.png"/>';
    echo '<img src="'. $img .'"/>';
  

Однако я получаю следующую ошибку:

Произошла ошибка PHP

Степень серьезности: 4096

Сообщение: Объект класса Zend_Pdf_Resource_Image_Jpeg не удалось преобразовать в строку

Имя файла: views/vista_codigoDeBarras.php

Номер строки: 19

Я понятия не имею, как выполнить то, что мне нужно, и сейчас это вроде как срочно =/ есть идеи, как я могу это сделать? Я использую Zend Framework для генерации штрих-кода в CodeIgniter

Ответ №1:

Я немного запутался в том, чего вы пытаетесь достичь, но Zend_Pdf_Image это сделано для добавления изображений в документы PDF. Учитывая ваши требования:

Я хочу сгенерировать штрих-код и расположить его под кнопкой, чтобы пользователь мог просто щелкнуть по нему, а затем распечатать.

Это можно сделать несколькими способами. Прежде всего, необходимо создать php-скрипт, который просто выводит изображение штрих-кода и использует его в качестве src атрибута изображения:

 // Only the text to draw is required
$barcodeOptions = array('text' => 'ZEND-FRAMEWORK');

// No required options
$rendererOptions = array();

// Draw the barcode in a new image,
// send the headers and the image
Zend_Barcode::factory(
    'code39', 'image', $barcodeOptions, $rendererOptions
)->render();
  

Источник:http://framework.zend.com/manual/en/zend.barcode.creation.html

Затем пользователь может просто открыть изображение на новой вкладке или загрузить и распечатать его.

Другой вариант — предложить им загрузить PDF, что немного сложнее, чем я могу посвятить время предоставлению примера кода, но по этой ссылке объясняется, как генерировать PDF-файлы с использованием Zend_PDF класса:

http://devzone.zend.com/article/2525

Комментарии:

1. Дело в том, что они запросили кнопку вместе с PDF, которая позволяет им просто щелкнуть и вызвать диалоговое окно печати. и я не смог этого сделать

2. @Luis Единственный способ, которым я мог бы удаленно выполнить это, — открыть всплывающее окно только с изображением штрих-кода и вызвать window.print() в нем. Возможно, вы сможете сделать то же самое со встроенным PDF-файлом, но я не уверен, включены ли они в window.print() вызовы. Также многие браузеры по умолчанию отключают печать включенных изображений. Я бы просто загрузил PDF и позволил пользователю распечатать его, но, к сожалению, это зависит не от меня :/

3. как я могу вызвать window.print(), чтобы это повлияло на дочернее окно, а не на то, которое запускает открытие нового окна?

4. @Luis Всплывающее окно просто загрузит HTML-страницу, поэтому вам просто нужно включить вызов во window.onload вызове всплывающего HTML. Также помните, что всплывающие окна должны быть связаны с действием пользователя, таким как упомянутое вами нажатие кнопки. Невыполнение этого требования приводит к неприятным проблемам с блокировщиками всплывающих окон.

5. дело в том, что использование Zend_Barcode::factory … и т.д. Не позволит следующей странице загружать ЧТО-либо еще, поэтому я не могу заставить ее загрузить кнопку, или изображение, или даже javascript =/