Blog dedicated to Oracle Applications (E-Business Suite) Technology; covers Apps Architecture, Administration and third party bolt-ons to Apps

Wednesday, August 4, 2010

Zebra printer and pasta driver

Shiva described a Zebra printer issue to me. They had configured Zebra007 printer on Dev and Test, and it printed fine. However when the same printer was configured on Production instance, it did not print anything. I worked with Puneet and Sateesh to check the windows printer queue. Whenever a print job was executed in Dev or Test (non-Production) instances, the label printed correctly. However when they tried to print from Production, it would not print anything, though a pasta*.tmp appeared in windows printer queue for 2 seconds.

I also got a sample file example.zpl from Sateesh to find out the contents, This file was a plain text file which contained print control characters. This is an ingenious way to print without installing expensive proprietary drivers from vendors. If such a file is sent as a raw file to printer, the printer interprets the special characters and prints labels correctly. So they were using Pasta printing to print a text file. This didn't make sense, as pasta is typically used to convert (preprocess) pdf files generated by XML Publisher (now known as BI Publisher) into postscript format and send to printer.

I examined the $FND_TOP/resource/pasta.cfg in Production and non-Production instances. They were different. Non-production pasta files had everything commented, whereas Production pasta file had this entry:

$ cd $FND_TOP/resource
$ cat pasta.cfg
/* $Header: pasta.cfg 115.23 2003/03/28 22:57:31 mnagakur noship $ */

[DEFAULT]

preprocess=/usr/local/bin/pdf2ps {infile} {outfile}
printCommand=lp -c -d{printername}
errorlogfile=pasta_pdf2.log

I realized then that, the printing was successful in development, as pasta was not doing any kind of preprocessing and printing the file. It failed in Production because the text file containing printer commands was going through preprocessing:

/usr/local/bin/pdf2ps example.zpl pasta8282.ps

Error: /undefined in .CT~~CD,~CC^~CT~
Operand stack:

Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
Dictionary stack:
--dict:1129/1686(ro)(G)-- --dict:0/20(G)-- --dict:70/200(L)--
Current allocation mode is local
Current file position is 17
GPL Ghostscript 8.54: Unrecoverable error, exit code 1

The solution was to create a new pasta driver pasta_zebra.cfg where the preprocess line would be commented:

$ cat pasta_zebra.cfg
/* $Header: pasta.cfg 115.23 2003/03/28 22:57:31 mnagakur noship $ */

[DEFAULT]

; preprocess=/usr/local/bin/pdf2ps {infile} {outfile}
printCommand=lp -c -d{printername}
errorlogfile=pasta_pdf.log

I tested this on commandline with this command:

FNDPSTAX -pnZebra007 -f/tmp/example.zpl -c1 -Fpasta_zebra.cfg

And it printed the first correct label from Production instance.

This command would be the final result of the printing inside E-Business Suite.

16 comments:

Naveed said...

Hi Vikram,

Can you please share the solution how to print the Labels using Zebra Printers from EBS. We want to use the Pasta Driver w/o uisng vendor's solution.

How to setup the Zebra printer at OS level -- etc CUPS configuration.

How to convert the PDF to ZPL w/o any vendor's software.

Thanks

-Samar-

Mugdha said...

Hi,
i am trying to install Zebra S4M printer on development instance but not able to do it. do I need to install a driver?

Vikram Das said...

Hi Naveed,

This has been done in our environment. In olden days we had printer characters which could be inserted into a plain text file to make large font, banner, bold, italic before sending to printer in raw format. The same has been done. For example see this sample .zpl file created by the program:

.CT~~CD,~CC^~CT~
^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR6,6~SD15^JUS^LRN^CI0^XZ
^XA
^MMT
^PW812
^LL0609
^LS0
^BY2,3,105^FT114,172^BCN,,Y,N
^FD>:104W1135P002-SAT-1-300-1^FS
^FT213,320^A0N,39,38^FH\^FDTERMINAL USLKG5N (ZB6)^FS
^FT211,265^A0N,51,64^FH\^FD104W1135P002^FS
^FT200,53^A0N,29,50^FH\^FDKanban Card Number^FS
^FT301,360^A0N,39,38^FH\^FDBin Qty : 300^FS
^PQ1,0,1,Y^XZ

You'll have to write a program to do this. Once you do it, you can use pasta driver without any preprocessing to send it to printer directly without using any vendor solution.

Vikram Das said...

Hi Mugdha,

Please see my comments for Naveed. I think you can do the same. If you do not want to do this, then you need to send it through a third party solution like Loftware. Where E-Business sends all labels to Loftware through Loftware Connector for EBS and Loftware becomes your label print server running on windows.

- Vikram

Naveed said...

Hi Vikram,

Thanks for your suggestion. In our case we are generating a PDF document by BI Publisher. This PDF document has Label immage. Do you have any suggestion, how to print this PDF format document on Zebra.

Thanks again.
-Naveed-

Anonymous said...

Is there a way that I can send a .jpg image to the zebra printer with no supplier software?

Vikram Das said...

Naveed,

If its a pdf you would need a third party solution like Loftware.

- Vikram

Anonymous said...

Hi Vikram,

We currently have two aproach to print the labels on Zebra TL2844 printer.
1. Using cups server with zebra driver.
We see that cups has sent print command successfully but nothing got printed on Printer.

Cups logs says everything is successful, but still nothing prints out on printer. can you guide us on how we can debug further.

2. Using third party Loftware software.
Vai this we are able to print the label. But again printer doesn't print anything if label has logo or any other images. We had owc session with loftware support group too but nothing was helpful.

Please let us know if you have any idea about how we can debug this issue.
Thanks
Mukesh

Anonymous said...

Hi Vikram,

We currently have two aproach to print the labels on Zebra TL2844 printer.
1. Using cups server with zebra driver.
We see that cups has sent print command successfully but nothing got printed on Printer.

Cups logs says everything is successful, but still nothing prints out on printer. can you guide us on how we can debug further.

2. Using third party Loftware software.
Vai this we are able to print the label. But again printer doesn't print anything if label has logo or any other images. We had owc session with loftware support group too but nothing was helpful.

Please let us know if you have any idea about how we can debug this issue.
Thanks
Mukesh

Irene said...

Hi Vikram!
Can I send a PDF or a text output file from EBS to a Zebra printer via Optio?
Thanks,
Irene

Irene said...

Hi Vikram!
How was the Zebra printer configured on the Dev instance? What was the OS of the DB? We are also trying to install a Zebra label printer but don't know how to configure it in AIX.
Thanks,
Irene

Oracle Rookie said...

Hi Vikram,

Thanks a lot for setup. Initial Test went good. We are working on xml part now.

Thanks,
Abhijit

Vishnu said...

Hi Vikram,

I am having issues with the zebra printer at Linux environment(Upgrading the database to 11g) only, it is printing the ZPL code directly from the concurrent program instead of the labels. while it was working as expected from the Solaris. Could you please help me in this issue.

Thanks,
vishnu

Anonymous said...

HP Printer and pasta driver

Hi Vikram,

We have issue with printing PDF Report. Following errors occurs when I tried to print PDF format report output. We are using pdf2ps command with pasta.

The pasta.log file shows the following error :
Pasta: Error: Preprocess failed. Command=/usr/local/bin/pdf2ps
/u06/appsw/convco
mn/admin/out/conv_oradev02/XXCOHHRCIS_XML_25974798_1.PDF
/u06/appsw/convcomn/tem
p/pasta15523.tmp
Pasta: Error: Preprocess or Print command failed!!!

Do you have any solution please?

Thanks,
Vinod

Sweet Fairy said...

Great post. I need a Plastic card printing machine for home use. Where i can get the best one?

Sudheer said...

Hi Vikram,
can u pls give me the zebra printer configuration steps in oracle apps 11i.

we need to print the xmlp report barcode label to zebra printer.

if i want to generate the zpl file i can generate with custom concurrent program. but after that what is the process to print this like how to send this to printer.

Thanks,
Sudheer.