System V printing filter


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting System V printing filter
# 1  
Old 11-01-2018
System V printing filter

First, please excuse my apparent lack of attempt as this is NOT the case. I have attempted to research this for hours and realize I am way out of my league. I am not a programmer, especially in Unix.

I have an old Alpha Unix system with a program that prints to a network printer using the LPR command. Since no one has access to the source code or compiler anymore, re-writing the program seems out of the question. I believe what I am looking for is an if script that takes the standard text being sent to the printer, determines if it should actually print, and prints to the printer or prints to NULL.

In more explanation, the program prints all standard text. 3/4+ of this text is operational codes that mean nothing to anyone here and therefore really do not need printed. The rest of the text is needed and should be printed. All of this text needing printed ALWAYS starts of with the first line exactly equal to " Manual Base Iron Staging Moves " followed by several lines of important information. You may be able to use just the word Manual as the compare word. If the first word is NOT Manual, then the entire print job can be sent to NULL. If it is, then it should be directed to the printer.

AKA:
if print job starts with Manual
then print entire job to printer @icsp1/9100: as defined below
else send print job to Null

Printcap file entry is:

Code:
lp1|1|p1|P1|ctllpr|print1:\
	:af=/usr/adm/lp1acct:\
	:br#9600:\
	:ct=tcp:\
	:fc#0177777:\
	:fs#03:\
	:lf=/usr/adm/lp1err:\
	:lp=@icsp1/9100:\
	:mx#0:\
	:pl#66:\
	:pw#80:\
	:rw:\
	:sd=/usr/spool/lpd1:\
	:sf:\
	:sh:\
	:xc#0177777:\
	:xf=/usr/lbin/xf:\
	:xs#044000:\
	:of=/usr/lbin/pcfof +Cgeneric_text.pcf:\
	:if=/usr/lbin/pcfof +Cgeneric_text.pcf:

If any other information is required, please ask.

Moderator's Comments:
Mod Comment edit by bakunin: Please use CODE-tags, like the ones i have edited in for you. Thank you.

Last edited by bakunin; 11-02-2018 at 12:47 AM..
# 2  
Old 11-01-2018
this appears to use the lpr/lpd protocol. in this case the print file is stored in /usr/spool/lpd/destination and from there directly transferred to the device.
do you have netcat on your system or know if a binary is available.
you could stop the print service and manually edit the print file then restart the service.
do you know what unix release this is and if it is binary compatible with anything.
# 3  
Old 11-02-2018
Hi Ken,

The "Alpha Unix" that you are working with could be one of several versions, setting up the printers and modifying the drivers is actually relatively straight forward using the admin GUI on the later versions of what I believe will be OSF.

However from memory this Unix also supported the "lpadmin" command subset, so it may be that you want to setup a class for the printer or copy the filter file - modify the copy and attach the printer to that or even create a new printer (pointing at the same remote queue).

It is now over 15 years since I worked on Alpha kit with OSF, so bear with me if I'm a little rusty - my notes are 300 miles away and were written in a notebook. If I get a chance when I'm home I'll try and dig them out.

Regards

Gull04
# 4  
Old 11-02-2018
jgt:

1. Do you have netcat or if binary is available? .... "netcat: Command not found." and no I do not know if any binary's are available.
2. Could stop print service and manually edit? .... I kind of was looking for an automated process to determine what would print and what would get "dumped"
3. Unix release and binary compatible? .... Compaq Tru64 UNIX V5.1B (Rev. 2650) and I believe it is binary compatible (it has samba) but that may not be 100% accurate

gull04:

1. There is no GUI anywhere that I can find. It does not even seem to have xwindows. I am basically 100% CLI.
2. Yes, lpadmin is available to me.
3. Setup class for the printer....??? sorry, way over my head... please explain in more detail if you want me to follow
4. Modify filter file... Yeah, that was kind of what I was hoping to do. Copy and modify current filter file with something that would block print jobs that did not start with Manual.
5. Absolutely no worries about being a little rusty.... I have no experience at all and this is soooo ancient I had many problems finding any information at all on it. Any help you can offer or light you can shed is more than greatly appreciated.

FYI: This machine is currently being used in a production environment so any changes made need to be small and minor with little impact to the system.

Last edited by Ken_Snauffer; 11-02-2018 at 12:31 PM..
# 5  
Old 11-02-2018
I think if you add the following code:
Code:
    :filter=/mydir/filter/myfilter

at line 9 of the printcap file.


Then create a /mydir/filter/myfilter script in sh/ksh
Code:
save="N"
while read line
do
     if [ "$save" = "N" ]
     then
         m=`echo $line|cut -c1-6`
         if [ "a$m" = "aManual" ]
        then
            save="Y"
       fi
   fi
if [ "$save" = "Y" ]
then
    echo "$line"
fi
done

This User Gave Thanks to jgt For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Filter ONLY lines with non-printing charaters

I have a file contains data with non-printing characters. i have used cat -v filename to display whole data with non-printing characters also. However, i need lines with non-printing characters into seperate file. My file is huge and looks like i have to manully find lines using cat -v filename |... (3 Replies)
Discussion started by: JSKOBS
3 Replies

2. Solaris

Solaris printing system migration

Hello folks, I'm currently working on migration of printing system from one server to another (namely from Sol 9 to Sol 10). I would like ask if is possible to manage migration via simple copying /etc/printers.conf file and folder /etc/lp to the new server??? I'm not sure if printers... (2 Replies)
Discussion started by: brusell
2 Replies

3. Shell Programming and Scripting

">" used in system() is not printing into file

I have a problem with the following skript in awk. cat runde.txt |awk '{ if ($5==2) { dataname_v=$1 "_" $4 "_adjust.rad befehl1="gensurf seitenwand... (17 Replies)
Discussion started by: ergy1983
17 Replies

4. AIX

printing system with the command lp -d

Hello.. Plz, Any one can help me ? when I execute a printing system with the command lp -d<name of printer>, no result with all printers. I have verified the three processes : qdaemon, lpd, writesrv (No problem). thank's (0 Replies)
Discussion started by: okbainf
0 Replies

5. UNIX for Advanced & Expert Users

how to configure the lp system to filter files passed to it

I registered a printer hp123 on Sun Solaris Server. I think my printer is expecting a carriage return and linefeed combination at the end of each line (DOS standard), but unix files only have linefeeds at the end of each line. How can I configure the lp system to filter files passed to it?... (1 Reply)
Discussion started by: simt
1 Replies
Login or Register to Ask a Question