home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / txpdf56.zip / contributed / MPEiX / README.spoolfiles
Text File  |  2001-11-01  |  2KB  |  44 lines

  1. Spoolfiles are a special MPE filetype used to send output to printers.  The
  2. format of their records is documented in the "Spool File Block Format (SBF)"
  3. chapter of:
  4.  
  5. http://jazz.external.hp.com/papers/pdfdocs/32650-90867.pdf
  6.  
  7. The format is EXTREMELY unfriendly to process manually.  I once wrote a program
  8. to transfer spoolfiles to an IBM printing subsystem, and it was really, really
  9. painful to process P1, P2, and the CCTL byte correctly in order to produce
  10. printed output the same way it would appear if printed on an MPE printer.
  11.  
  12. MPE uses special carriage control bytes (CCTL) that determine line spacing,
  13. page ejects, etc.  It's not simply a matter of inserting multiple NL characters
  14. for double or triple spacing or inserting a single FF character for a page
  15. eject.
  16.  
  17. When MPE users ask "Can I convert my spoolfiles to PDF?" they mean they want to
  18. preserve the CCTL information.  I.e. if the spoolfile would print double
  19. spaced, they want the PDF to appear double spaced.
  20.  
  21. Spoolfiles are a native MPE file format, and Perl is a POSIX program.  When
  22. POSIX was added to MPE, a new POSIX bytestream file format was created, and
  23. behaves just like it would on a Unix system.  However, you can still access
  24. native MPE files through POSIX I/O functions, and when you do this, the MPE
  25. files are emulated to look like POSIX bytestream files.  But since MPE files
  26. may sometimes have attributes that don't exist on POSIX, you lose the abilities
  27. to even see these attributes if you're using the POSIX API.
  28.  
  29. Unfortunately for spoolfiles, you aren't able to see the P1, P2, and CCTL
  30. values while using the POSIX API that Perl uses for its I/O, and since P1, P2,
  31. and CCTL are required to determine line spacing and page ejects, you wouldn't
  32. be able to create proper PDF output.
  33.  
  34. So I'm afraid that it's not possible today to use a 100% Perl program to
  35. convert spoolfiles into PDF in a way that preserves line spacing.
  36.  
  37. Someday I want to create an MPE-specific Perl extension XS that would allow
  38. access to the native MPE file API.  With this it would be possible to read
  39. spoolfiles correctly.  But unfortunately I can't even guess at when I might be
  40. able to start a project like this.
  41.  
  42. Mark Bixby <mbixby@power.net>
  43. Perl/iX for HP e3000 MPE http://www.bixby.org/mark/perlix.html
  44.