Re: PHP to access shell script to print barcodes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 23 March 2010 05:48, Jochem Maas <jochem@xxxxxxxxxxxxx> wrote:
> Op 3/23/10 3:27 AM, Rob Gould schreef:
>> I am trying to replicate the functionality that I see on this site:
>>
>> http://blog.maniac.nl/webbased-pdf-lto-barcode-generator/
>>
>> Notice after you hit SUBMIT QUERY, you get a PDF file with a page of barcodes.  That's _exactly_ what I'm after.
>> Fortunately, the author gives step-by-step instructions on how to do this on this page:
>>
>> http://blog.maniac.nl/2008/05/28/creating-lto-barcodes/
>>
>>
>> So I've gotten through all the steps, and have created the "barcode_with_samples.ps" file, and have it hosted here:
>>
>> http://www.winecarepro.com/kiosk/fast/shell/
>>
>> Notice how the last few lines contain the shell-script that renders the postscript:
>>
>> #!/bin/bash
>>
>> BASE=”100″;
>> NR=$BASE
>>
>> for hor in 30 220 410
>> do
>> ver=740
>> while [ $ver -ge 40 ];
>> do
>> printf -v FNR “(%06dL3)” $NR
>> echo “$hor $ver moveto $FNR (includetext height=0.55) code39 barcode”
>> let ver=$ver-70
>> let NR=NR+1
>> done
>> done
>>
>>
>> I need to somehow create a PHP script that "executes" this shell script.  And after doing some research, it sounds like
>> I need to use the PHP exec command, so I do that with the following file:
>>
>> http://www.winecarepro.com/kiosk/fast/shell/printbarcodes.php
>>
>> Which has the following script:
>>
>> <?php
>>
>> $command="http://www.winecarepro.com/kiosk/fast/shell/barcode_with_sample.ps";;
>> exec($command, $arr);
>>
>> echo $arr;
>>
>> ?>
>>
>>
>> And, as you can see, nothing works.  I guess firstly, I'd like to know:
>>
>> A)  Is this PHP exec call really the way to go with executing this shell script?  Is there a better way?  It seems to me like it's not really executing.
>
> that's what exec() is for. $command need to contain a *local* path to the command in question, currently your
> trying to pass a url to bash ... which obviously doesn't do much.
>
> the shell script in question needs to have the executable bit set in order to run (either that or change to command to
> run bash with your script as an argument)
>
> I'd also suggest putting the shell script outside of your webroot, or at least in a directory that's not accessable
> from the web.
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

I think this is a translation of the script to PHP.

<?php
$BASE = 100;
$NR   = $BASE;

foreach(array(30, 220, 410) as $hor) {
	$ver = 740;
	while ($ver >= 40) {
		printf("$hor $ver moveto (%06dL3) (includetext height=0.55) code39
barcode\n", $NR);
		$ver -= 70;
		++$NR;
	}
}



It produces output like ...

30 740 moveto (000100L3) (includetext height=0.55) code39 barcode
30 670 moveto (000101L3) (includetext height=0.55) code39 barcode
30 600 moveto (000102L3) (includetext height=0.55) code39 barcode
30 530 moveto (000103L3) (includetext height=0.55) code39 barcode
30 460 moveto (000104L3) (includetext height=0.55) code39 barcode
30 390 moveto (000105L3) (includetext height=0.55) code39 barcode
30 320 moveto (000106L3) (includetext height=0.55) code39 barcode
30 250 moveto (000107L3) (includetext height=0.55) code39 barcode
30 180 moveto (000108L3) (includetext height=0.55) code39 barcode
30 110 moveto (000109L3) (includetext height=0.55) code39 barcode
30 40 moveto (000110L3) (includetext height=0.55) code39 barcode
220 740 moveto (000111L3) (includetext height=0.55) code39 barcode
220 670 moveto (000112L3) (includetext height=0.55) code39 barcode
220 600 moveto (000113L3) (includetext height=0.55) code39 barcode
220 530 moveto (000114L3) (includetext height=0.55) code39 barcode
220 460 moveto (000115L3) (includetext height=0.55) code39 barcode
220 390 moveto (000116L3) (includetext height=0.55) code39 barcode
220 320 moveto (000117L3) (includetext height=0.55) code39 barcode
220 250 moveto (000118L3) (includetext height=0.55) code39 barcode
220 180 moveto (000119L3) (includetext height=0.55) code39 barcode
220 110 moveto (000120L3) (includetext height=0.55) code39 barcode
220 40 moveto (000121L3) (includetext height=0.55) code39 barcode
410 740 moveto (000122L3) (includetext height=0.55) code39 barcode
410 670 moveto (000123L3) (includetext height=0.55) code39 barcode
410 600 moveto (000124L3) (includetext height=0.55) code39 barcode
410 530 moveto (000125L3) (includetext height=0.55) code39 barcode
410 460 moveto (000126L3) (includetext height=0.55) code39 barcode
410 390 moveto (000127L3) (includetext height=0.55) code39 barcode
410 320 moveto (000128L3) (includetext height=0.55) code39 barcode
410 250 moveto (000129L3) (includetext height=0.55) code39 barcode
410 180 moveto (000130L3) (includetext height=0.55) code39 barcode
410 110 moveto (000131L3) (includetext height=0.55) code39 barcode
410 40 moveto (000132L3) (includetext height=0.55) code39 barcode


No idea if that is accurate or not. If you can run the script by hand
once to confirm, then
-- 
-----
Richard Quadling
"Standing on the shoulders of some very clever giants!"
EE : http://www.experts-exchange.com/M_248814.html
EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux