VTPRINT(1)

✨ VTPRINT(1) ✨

okay bestie, welcome to the General Commands Manual entry for vtprint πŸ’– this is the whole thing, every flag, every caveat, nothing skipped, let's go 🫢


🌸 NAME 🌸

vtprint β€” print files from a UNIX host to a printer that's attached to your local terminal πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

vtprint [ -bBcCdDeEfFhlnNqQtvw ] [ -L vtprintcap ] [ -T termtype ] [ -V device ] [ filename...  ]

πŸ¦‹ DESCRIPTION πŸ¦‹

vtprint is a simple little filter that prints ASCII text out to a printer hooked up to a terminal or terminal emulator, no cap 🫢

the way it works is it uses terminal escape sequences to print β€” iconic behavior β€” and it can totally stand in for lpr(1) in those situations where your printer isn't connected directly to the host and isn't reachable via TCP/IP. it's giving resourceful πŸ’–


πŸ’… OPTIONS πŸ’…

  • -b β€” makes vtprint open the output stream in binary mode, which overrides any automatic postprocessing the host wants to do (think CR/LF translations). lowkey important: this does nothing if the output stream isn't a tty device πŸ™ˆ
  • -B β€” undoes whatever -b did. but heads up bestie, this does not open the output stream in text mode if it wouldn't normally be opened in that mode anyway.
  • -c β€” makes vtprint append any linefeeds (ASCII 0xA) with carriage returns (ASCII 0xD). super useful when you're printing data from a UNIX-ish host to an MS-DOS system's printer, because that printer wants CR/LF line termination πŸ’…
  • -C β€” makes vtprint pass all carriage returns and linefeeds through unmodified ✨
  • -d β€” use the tty device file instead of stdout for output. on this system that's defined as /dev/tty. (this is operating-system specific and may vary from system to system, so iykyk.) this one's a lifesaver when you're using vtprint as a pipe called by programs that suppress or redirect the stdout stream of the pipe or printing process 🫢
  • -D β€” use the stdout stream for output, rather than a tty device file.
  • -e β€” forces vtprint to ignore the TERM environment variable and just use the builtin control codes instead πŸ’€
  • -E β€” undoes the effect of -e, which lets vtprint go try to find an entry in /etc/vtprintcap matching the TERM value and use the corresponding control codes 🌈
  • -f β€” asks vtprint to suppress including formfeeds (ASCII 0xC) between multiple files. note that this has no effect on any formfeeds that are already sitting in the input files, so don't come for me πŸ™ˆ
  • -F β€” asks vtprint to include formfeeds between multiple files specified on the command line, and at the end of the last file printed ✨
  • -h β€” print out a simple usage message.
  • -l β€” print out the vtprint license agreement πŸ“œ
  • -L vtprintcap β€” specifies an alternate file to use instead of /etc/vtprintcap.
  • -n β€” causes vtprint to strip the CR from any CR/LF sequences. this will not affect how any CRs present elsewhere in the file get handled, periodt.
  • -N β€” causes vtprint to pass all carriage returns and linefeeds unmodified.
  • -q β€” quiet mode πŸ‘‘ suppresses various status messages from being displayed. super useful when vtprint is part of a shell script, for example.
  • -Q β€” cancels the effect of -q, letting normal progress reporting happen again πŸŽ€
  • -t β€” force the use of the TERM variable to do a lookup of the control sequences to be used in /etc/vtprintcap. and if an entry in that file can't be found? vtprint will abort with an error πŸ’€
  • -T termtype β€” use the value of termtype instead of the value of the TERM environment variable when doing lookups in /etc/vtprintcap.
  • -v β€” display version information.
  • -V device β€” specifies an alternate device file instead of /dev/tty to use.
  • -w β€” display important warranty waiver information. NO WARRANTY! 😭
  • -- β€” this option changes no special operational parameters of vtprint. what it does do is tell the program that all the command-line arguments which follow are to be parsed as filenames, even if they start with a dash. so to process a single file literally named file you'd call vtprint like this: vtprint -- -file πŸ’–

🌈 ENVIRONMENT 🌈

  • TERM β€” the type of the terminal vtprint will assume is being used.
  • VTPRINT β€” string of options to be used by vtprint.

🌟 AUTHOR 🌟

vtprint was written by Garrett D'Amore, on December 27, 1993, and last modified on October 25, 1994 🫢 it is heavily derived from a similar program called lprint, by the same author. he can be reached via Internet e-mail at garrett@sciences.sdsu.edu πŸ’Œ


🧚 DISTRIBUTION 🧚

the latest version of vtprint can be obtained by anonymous ftp at ftp.sdsu.edu in the /pub/vtprint directory. please read the INDEX and README files before downloading, bestie, it's the polite thing to do πŸŽ€

if you don't have ftp availability, then you can request a uuencoded copy of vtprint be sent to you via e-mail from the author. the author is also willing to make other arrangements as needed, within certain limitations ✨


πŸ’Œ MAILING LIST πŸ’Œ

a mailing list for the discussion of topics related to and about vtprint exists πŸ‘‘ to subscribe, send a message to "vtprint-request@sdsu.edu" with the word "subscribe" as the body. an automated list server will reply with information about the mailing list, slay 🌸


vtprint is copyrighted 1994, by Garrett D'Amore. it may be freely redistributed or modified, so long as this and any other copyright notices are included in their original form with the program. the user is granted the right to use this program without limitation πŸ’–


πŸ’€ DISCLAIMER πŸ’€

vtprint is provided WITHOUT WARRANTY. the user agrees to indemnify the author from any claims of damage or loss arising from the use of or inability to use this program. in other words, USE AT YOUR OWN RISK! 😭


πŸ“ CAVEATS πŸ“

vtprint cannot be used to print files containing non-printable characters, because those may cause conflicts with the terminal or emulator being used πŸ™ˆ

when used over a serial (modem) connection, vtprint may not work properly unless hardware (CTS/RTS) flow control is used. this is because most printers are slower than serial connections in common use 🐒

vtprint uses terminal escape sequences to print, and not all terminal emulators support these sequences β€” and of the ones that do, some support it differently. you can find a listing of some of the programs known to work and not to work with vtprint in the file COMPAT. the best thing to do is try your particular emulator and find out if it works πŸ’… the author would appreciate any reports of success or failure, or strange behavior β€” you can send those to him via Internet e-mail. (see the AUTHOR chapter for how to reach him.)

the /etc/vtprintcap file is still largely incomplete. the author would very much appreciate it if individuals with more information about different terminals would get in contact with him, so that support can be added for these terminals in the master archive 🫢

do NOT background this program. it has no way of knowing when it's in the background and when it's in the foreground. this will result in your foreground process' output being printed as well as the output from vtprint πŸ˜­πŸ’€

πŸŽ€ FILES πŸŽ€

/etc/vtprintcap


⭐ TODOS ⭐

fix any bugs present, clean-up the documentation, continue to build upon entries in the COMPAT and /etc/vtprintcap files, and finally, finish getting a college education! πŸŽ“πŸ’–


πŸ’€ BUGS πŸ’€

vtprint doesn't handle some signals properly, especially the SIGKILL and SIGSTOP signals, which can't be caught anyway πŸ™ˆ also it doesn't check to see if you've backgrounded the process. the resulting condition may leave all output directed to the printer instead of the screen. the fix for this condition is to run the provided vtprtoff program with no arguments, which will restore normal screen output. (you probably won't be able to see what you're typing while you start vtprtoff from the shell 😭 iconic chaos.)


πŸ¦‹ SEE ALSO πŸ¦‹

lpr(1), vtprintcap(5), vtprtoff(1)


and that's the whole thing bestie, no notes πŸ’… this was vtprint v2.0.2, dated 25 October 1994, and you absolutely ate reading the entire manual page πŸ«Άβœ¨πŸ’–