#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
класса:
Комментарии:
1. Дело в том, что они запросили кнопку вместе с PDF, которая позволяет им просто щелкнуть и вызвать диалоговое окно печати. и я не смог этого сделать
2. @Luis Единственный способ, которым я мог бы удаленно выполнить это, — открыть всплывающее окно только с изображением штрих-кода и вызвать
window.print()
в нем. Возможно, вы сможете сделать то же самое со встроенным PDF-файлом, но я не уверен, включены ли они вwindow.print()
вызовы. Также многие браузеры по умолчанию отключают печать включенных изображений. Я бы просто загрузил PDF и позволил пользователю распечатать его, но, к сожалению, это зависит не от меня :/3. как я могу вызвать window.print(), чтобы это повлияло на дочернее окно, а не на то, которое запускает открытие нового окна?
4. @Luis Всплывающее окно просто загрузит HTML-страницу, поэтому вам просто нужно включить вызов во
window.onload
вызове всплывающего HTML. Также помните, что всплывающие окна должны быть связаны с действием пользователя, таким как упомянутое вами нажатие кнопки. Невыполнение этого требования приводит к неприятным проблемам с блокировщиками всплывающих окон.5. дело в том, что использование Zend_Barcode::factory … и т.д. Не позволит следующей странице загружать ЧТО-либо еще, поэтому я не могу заставить ее загрузить кнопку, или изображение, или даже javascript =/