Autor Zpráva
panterek
Profil
Zdravím, hledal jsem nějaké generování čárového kódu..našel jsem vynikající generátor, ale bohužel nerozumím zdrojovému kódu a proto nevím, jak s tímto vygenerovaným obrázkem dál pracovat :(

// Including all required classes
require('../class/BCGFont.php');
require('../class/BCGColor.php');
require('../class/BCGDrawing.php'); 

// Including the barcode technology
include('../class/BCGcode39.barcode.php'); 

// Loading Font
$font = new BCGFont('../class/font/Arial.ttf', 10);

// The arguments are R, G, B for color.
$color_black = new BCGColor(0, 0, 0);
$color_white = new BCGColor(255, 255, 255); 

$code = new BCGcode39();
$code->setScale(2); // Resolution
$code->setThickness(15); // Thickness
$code->setForegroundColor($color_black); // Color of bars
$code->setBackgroundColor($color_white); // Color of spaces
$code->setFont($font); // Font (or 0)
$code->parse("$barcode"); // Text


/* Here is the list of the arguments
1 - Filename (empty : display on screen)
2 - Background color */
$drawing = new BCGDrawing('', $color_white);
$drawing->setBarcode($code);
$drawing->draw();

// Header that says it is an image (remove it if you save the barcode to a file)
header('Content-Type: image/png');

// Draw (or save) the image into PNG format.
$drawing->finish(BCGDrawing::IMG_FORMAT_PNG);



Tohle je obsah souboru test.php, kde řádek "$code->parse("$barcode"); // Text", říká, že co tam napíšu, to mi zobrazí v čárovém kódu ..Jak ale udělám, abych s tímto vygenerovaným obrázkem mohl dál pracovat? :(

Pokud do toho souboru test.php cokoliv napíšu, třeba "bla bla bla", tak mi to vypíše chybu:

"Obrázek “http://localhost/barcode_orig/test.php” nelze zobrazit, protože obsahuje chyby."


..když bych chtěl vytvořit tabulku, bere v potaz jen tohle (tento kód jsem někde našel, ale nedá se použít, pač to potřebuji vkládat do jiného souboru..soubor test.php pouze vygeneruje ten čárový kód):

	$table->insertRows(10, 1);
	$table->addCellAttribute(10, 0, 'align', 'center');
	$table->addCellAttribute(10, 0, 'colspan', '2');
	$table->addRowAttribute(10, 'style','background-color: #ffffff');
	$table->setText(10, 0, '<img src="image.php?code=' . $filename . '&amp;o=' . $output . '&amp;dpi=' . $dpi . '&amp;t=' . $thickness . '&amp;r=' . $res . '&amp;rot=' . $rotation . '&amp;text=' . urlencode($text2display) . '&amp;f1=' . $font_family . '&amp;f2=' . $font_size . '&amp;a1=' . $a1 . '&amp;a2=' . $a2 . '&amp;a3=' . $a3 . '" alt="Barcode Image" />');


Tomuhle jazyku moc nerozumím :( A potřeboval bych to dostat právě do tagu <img ...... >, abych s tím mohl dál pracovat v jiném souboru.. Mám totiž řekněme zakázky:

ID zakázka ČÁROVÝ KÓD
1 bla bla ..............
2 bla bla ..............
3 bla bla ..............
4 bla bla ..............

a potřeboval bych ty čárové kódy vypisovat takhle na řádek...čili dostat to do nějakého takového stavu:

ID zakázka ČÁROVÝ KÓD
1 bla bla <img ....>
2 bla bla <img ....>
3 bla bla <img ....>
4 bla bla <img ....>

Ale za boha nevím, jak ze souboru test.php dostanu obrázek a vložím ho do cyklu jiného souboru :(
panterek
Profil
Možná by stačilo, kdyby někdo poradil, jak udělat výpis bez použití header hlavičky ..podařilo se mi to napozicovat, ale v dané kolonce mám "rozsypaný čaj" ..předpokládám, že to je ten čárový kód jako obrázek PNG, ale napsaný v textu ...čili jako by se otevřela fotka nějakým textovým editorem ...čili jak udělat výpis (nejlépe asi pomocí toho <img>), místo hlavičky header..? Už se blížííím :-)
panterek
Profil
Takže vyřešeno - celé řešení:

skript se vloží jednoduše do funkce a tuto funkci pak umístit někam do cyklu...

Samotné zobrazení čárového kódu je nutno ukládat ne na obrazovku, ale do souboru. Pak jednoduše přes tagy <img...> vybírám, kam chci čárový kód umístit...upravený skript je tady, jen je potřeba poupravit cesty v deklaracích require_once:

Do proměnné $barcode se vkládá text, který se bude měnit v čárový kód..

<?php

function barcode($barcode) {
// Including all required classes
require_once('../class/BCGFont.php');
require_once('../class/BCGColor.php');
require_once('../class/BCGDrawing.php'); 

// Including the barcode technology
require_once('../class/BCGcode11.barcode.php'); 

// Loading Font
$font = new BCGFont('../class/font/Arial.ttf', 10);

// The arguments are R, G, B for color.
$color_black = new BCGColor(0, 0, 0);
$color_white = new BCGColor(255, 255, 255); 

$code = new BCGcode11();
$code->setScale(2); // Resolution
$code->setThickness(15); // Thickness
$code->setForegroundColor($color_black); // Color of bars
$code->setBackgroundColor($color_white); // Color of spaces
$code->setFont($font); // Font (or 0)
$code->parse("$barcode"); // Text


/* Here is the list of the arguments
1 - Filename (empty : display on screen)
2 - Background color */
//$drawing = new BCGDrawing('', $color_white);
$drawing = new BCGDrawing("../barcode/img/$barcode.png", $color_white);
$drawing->setBarcode($code);
$drawing->draw();

// Header that says it is an image (remove it if you save the barcode to a file)
//header('Content-Type: image/png');

// Draw (or save) the image into PNG format.
$drawing->finish(BCGDrawing::IMG_FORMAT_PNG);
}
?>
Joker
Profil
panterek:
Samotné zobrazení čárového kódu je nutno ukládat ne na obrazovku, ale do souboru.
Případně jde mít i skript na generování kódu, třeba barcode.php, který vrátí obrázek s hlavičkou image/png (případně co to bude za typ obrázku)
No a pak stačí například <img src="barcode.php?code=123456789">

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: