print to file


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers print to file
# 8  
Old 09-21-2012
Thank you everyone for your advice. I was able to do some of what jgt has suggested, even with my very limited knowledge of Unix. I've set up a file printer and printing to it produces exactly what I need, a plain text file in a folder.

The custom Cobol programming seems to only be willing to print to printers with certain names, lp0, lp1, or lp2. So I had to modify those printers to actually get any reports to appear in /u/spool.

Is there an easy way to include what user has sent the print job? Either with a banner page or by having the name of the user appended onto the name of the print file. Currently the files name is the request id, 638245-1 for example.

I added code from here
Code:
#ident	"@(#)lp:model/dumb	1.3.1.2"
# lp interface for dumb line printer
#
#

x="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

#Set up some global variables.
: ${SPOOLDIR:=/usr/spool/lp}
: ${LOCALPATH:=${SPOOLDIR}/bin}

#Set up the default filter.
if [  -x "${LOCALPATH}/lp.cat" ]
then
	LPCAT="${LOCALPATH}/lp.cat 0"
else
	LPCAT="cat"
fi

#If we are not using a filter, use the default one.
if [ -z "${FILTER}" ]
then
	FILTER="${LPCAT}"
fi

if [ -x "${LOCALPATH}/drain.output" ]
then
	DRAIN="${LOCALPATH}/drain.output 1"
else
	DRAIN=
fi 

#stty ixon ixoff opost cs7 parenb -parodd 0<&1
stty 19200 ctsflow 0<&1

nobanner="no"

if [ -z "${BANNERS}" ]
then
	nhead=1
else
	nhead=${BANNERS}
fi

for i in $5
do
	case "${i}" in

	nobanner )
		nobanner="yes"
		;;
	esac
done

if [ "no" = "${nobanner}" ]
then

	while [ $nhead -gt 0 ]
	do
        echo "\014\c"
		echo "$x\n$x\n$x\n$x\n"
		banner "$2"
		echo "\n"
		user=`grep "^$2:" /etc/passwd | line | cut -d: -f5`
		if [ -n "$user" ]
		then
			echo "User: $user\n"
		else
			echo "\n"
		fi
		echo "Request id: $1    Printer: `basename $0`\n"
		date
		echo "\n"
		if [ -n "$3" ]
		then
			banner $3
		fi
		nhead=`expr $nhead - 1`
	done
fi

copies=$4
# echo "\014\c"
shift; shift; shift; shift; shift
files="$*"
i=1
while [ $i -le $copies ]
do
	for file in $files
	do
		0<${file} eval ${FILTER} 2>&1
        echo "\014\c"
	done
	i=`expr $i + 1`
done

#Draining characters might be necessary.
${DRAIN}

exit 0

however I was not successful in getting a banner page. I didn't include the line with: stty 19200 ctsflow 0<&1, and I put: echo "\014\c" under the line: cp ${file} /u/spool/`/bin/basename $file`. I tried different combinations of that above code, using most of it, just parts of it, moving things around, but nothing worked. The file always showed up, but never had a banner page.

Next thing to do is focus on Samba or Visionfs, but so far this has been a huge step forward for us. After years of neglecting the issue, we are finally moving in the right direction.
# 9  
Old 09-21-2012
Code:
:                                                         
#       @(#) file 25.2 95/03/27                           
#                                                         
#                                                         
# lp interface for print to file                          
#                                                         
                                                          
#Set up some global variables.                            
: ${SPOOLDIR:=/usr/spool/lp}                              
: ${LOCALPATH:=${SPOOLDIR}/bin}                           
USER=$2                                                   
shift; shift; shift; shift; shift                         
files="$*"                                                
for file in $files                                        
do                                                        
        cp ${file} /u/spool/$USER/`/bin/basename $(file)` 
        cp $(file) /u/spool/`/bin/basename $(file)`.$USER 
done                                                      
exit 0

Use only one of the cp lines. Using the first, you need a directory for each user, using the second, the user's logname is appended to the file name.
If you are using RM cobol, there is a config file that contains the relationship between lpx and the actual queue/destination name.
This User Gave Thanks to jgt For This Post:
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Use while loop to read file and use ${file} for both filename input into awk and as string to print

I have files named with different prefixes. From each I want to extract the first line containing a specific string, and then print that line along with the prefix. I've tried to do this with a while loop, but instead of printing the prefix I print the first line of the file twice. Files:... (3 Replies)
Discussion started by: pathunkathunk
3 Replies

2. UNIX for Dummies Questions & Answers

Reading Xml file and print the values into the text file in columnwise?

hi guys, i want help... Reding XML file and print the values into the text file using linux shell script file as per below xml file <sequence> <Filename>aldorzum.doc</Filename> <DivisionCode>US</DivisionCode> <ContentType>Template</ContentType> <ProductCode>VIMZIM</ProductCode> </sequence>... (4 Replies)
Discussion started by: sravanreddy
4 Replies

3. UNIX for Dummies Questions & Answers

Reading XML file and print the values in the text file using Linux shell script

hi guys, i want help... Reding XML file and print the values into the text file using linux shell script file as per below xml file <sequence> <Filename>aldorzum.doc</Filename> <DivisionCode>US</DivisionCode> <ContentType>Template</ContentType> <ProductCode>VIMZIM</ProductCode> </sequence>... (1 Reply)
Discussion started by: sravanreddy
1 Replies

4. Shell Programming and Scripting

How to print excel file / csv file in solaris server ?

Hi, I have to print a excel file in solaris server. I am using lexmark printer with post script printer driver . But the problem is when i am using " lp -d <printer name> <somefile name.xls>" command it is not printing correctly. but for pdf file using the same command it printing correctly. ... (2 Replies)
Discussion started by: Sambuddha
2 Replies

5. Shell Programming and Scripting

Strings from one file which exactly match to the 1st column of other file and then print lines.

Hi, I have two files. 1st file has 1 column (huge file containing ~19200000 lines) and 2nd file has 2 columns (small file containing ~6000 lines). ################################# huge_file.txt a a ab b ################################## small_file.txt a 1.5 b 2.5 ab ... (4 Replies)
Discussion started by: AshwaniSharma09
4 Replies

6. Shell Programming and Scripting

Howto Print File Path or Print the Filename

I'm trying to clean up my samba share and need to print the found file or print the path of the image it tried to searched for. So far I have this but can't seem to get the logic right. Can anyone help point me in the right direction? for FILE in `cat list`; do if ; then ... (1 Reply)
Discussion started by: overkill
1 Replies

7. UNIX for Dummies Questions & Answers

find locked files, print file path, unlock file

using OS X and the Terminal, I'd like to find all locked files in a specified directory, unlock them, and print a list of those files that were unlocked how can I do this? I'm familiar with chflags nouchg for unlocking one file but not familiar with unix enough to do what I'd like. Thanks! (0 Replies)
Discussion started by: alternapop
0 Replies

8. Shell Programming and Scripting

Need shell script to read two file at same time and print out in single file

Need shell script to read two file at same time and print output in single file Example I have two files 1) file1.txt 2) file2.txt File1.txt contains Aaa Bbb Ccc Ddd Eee Fff File2.txt contains Zzz Yyy Xxx (10 Replies)
Discussion started by: sreedhargouda
10 Replies

9. Shell Programming and Scripting

search for the contents in many file and print that file using shell script

hello have a file1 H87I Y788O T347U J23U and file2 J23U U887Y I99U T556U file3 I99O J99T F557J file4 N99I T666U R55Y file5 H87I T347U file6 H77U R556Y E44T file7 Y788O K98U H8I May be using script we can use file1 to search for all the files and have the output H87I file5... (3 Replies)
Discussion started by: cdfd123
3 Replies
Login or Register to Ask a Question