SPDL Readme file From: ftp://ftp.ornl.gov/pub/sgml/WG8/SPDL/software/readme_files/readme0.spd Copyright(c) 1996 RICOH CORPORATION U.S.A. Copyright(c) 1996 RICOH COMPANY, LTD. JAPAN All right reserved. Also, concerning to this software, RICOH CORPORATION U.S.A. and RICOH COMPANY, LTD. JAPAN own U.S. patent (USRP5353388, 531974, 5325484, 5416896, 5375204, 5438650, 5487165, 5446837, 5483629, 5422992, 5448691), pending U.S. patent applications and Japan patent applications. Permission to copy, modify and distribute this software and its document for personal use is hereby granted , provided only with the following conditions are satisfied: 1. Both the copyright notice and this permission notice appear in all copies of the software and derivative work or modified versions, also both notices appear in supporting documentation. 2. The specific license founded on reasonable price by RICOH CORPORATION U.S.A. and RICOH Co., LTD. JAPAN, is required for any kinds of commercial use of this software, its document and derivative work or modified versions. Such offering will be accepted by RICOH Legal Division (Address: 3-6, Nakamagome 1-chome, Ohta-ku, Tokyo 143, Japan Fax: 03-5709-7528) 3. RICOH brand may not be used to endorse or promote products derived from this software. RICOH CORPORATION U.S.A. and Ricoh Co., LTD. disclaims any liability for any kind of damages whatever resulting from the use of this software. There is also no warranty, nor is support provided. SPDL Readme file ---------------- 1) Introduction SPDL ----- Standard Page Description Language is an International standard prepared by Joint Technical Committee ISO/IEC JTC1, information technology. The assigned document number is ISO/IEC 10180. An SPDL document has structure and content. The structure organizes the content into separable parts and identifies the resource requirements for each part. The structure is self contained and can be processed without processing the content. The content is in the form of a page description language which specifies how the page images are to be generated. The processing of the content is dependent of the processing of the structure: the processing of the structure establishes the context in which content can be processed. 2) SPDL Implementation For implementation, it is divided into various modules each doing a specific job. (2.1) Parser Parser is the heart of the spdl system which scans the the input information, checks the correctness of sgml and spdl syntax. It divides information into following catagories: - start tag information - attribute information - data - end tag information It calls the ParserInterface Module (ParIF) for further processing of the information. (2.2) ParserInterface Module (ParIF prefix files) ParserInterface module collects the information passed by Parser and starts binding the information to structures. At the proper end tag call by Parser, the information which was stored in data structures is passed on to Structure Processor. If the tag is TOKENSEQ, the ParserInterface module calls Content Processor's interpreter. (2.3) Structure Processor Structure Processor takes information from the ParserInterface modules and performs the following tasks: - Set up the environment in which content can operate. - Manages inheritance and restoration of environment. (2.4) Content Processor Content Processor specifies how the page images are to be generated. It also interpret programs written in PDL and take action. The inter.c file is the parser for content processor. (2.5) PostScript Driver In current implementation of spdl, imaging is not done. Instead image related operations and data is dumped to driver. The output is a postscript level 2 format which can be dumped to postscript printer to get paper output. In real sense it is translating the spdl to postscript for output. Most of operations which are not related to imaging is done in spdl system itself. The processing sequence diagram for the complete spdl system is as follows: INPUT | ____|__________ _______________ | | | | | | | PARSER | | PARSER | ------------> | | | | | INTERFACE | |______________ | |_______________| | _______________|_______________ | | | | _______|_______ _______|_______ | | | | | CONTENT | | STRUCTURE | | | | | | PROCESSOR | | PROCESSOR | |_______________| |_______________| | | | _____________ | | | | | | | | | |-------> | DRIVER |<------| | | |_____________| | | OUTPUT 3) SPDL Debugger An debugger written specifically for SPDL is embedded in the system. The information about resources, graphic state, operand stack, context stack can be displayed using spdl debugger. For the debugger commands, please read README.spdl_debugger file. 4) How to Run SPDL? Compile all the source code files using "makefile". The executable "spdl" file is created. The spdl system can be executed using: moon> spdl inputfile or moon> spdl inputfile -o outputfile Output file name can be specified as above otherwise default output file name is inputfile.ps2 Please go through REAMDE.makefile for more information. 5) Testfiles Some test files are provided with the spdl system for reference. Please read README.spdl_testfiles and README.testfiles_list for more information about the test directory and description about various test files. 6) PublicId, ObjectId and Envnm Tables These three tables are present in the directory of spdl source code and can be referenced by spdl instance for location. 6.1) ExtEnvIdTable: contains the environment identifiers and their local location information. 6.2) ExtObjIdTable: contains the object identifiers in the form of n.n.n... and their local location information. 6.3) ExtPubIdTable: contains the public identifier and their local location information. Because the above three files show the local location information in the local file structure, they must be modified when the files are moved to the different installation. 7) ResDownLoadTable The resources can be downloaded to the disk by envrionment resource processing in spdl instance. The location of resource on disk along with its name is stored in ResDownLoadTable file. This file is accessed for the download resource use or undefining the downloaded resource. 8) Differenc between SPDL and PostScript Language SPDL is a Subset of Level 2 PostScript Language with Structure overlaid. The major difference can be classified into following catagories: - Text and the ISO font model * Only show, xyshow, glyphshow * No letter or word spacing, or kerning in show * extends ISO/IEC 9541 Font Resource - Coordinate System, Graphic State * No absolut coordinate system resets * Reset to coordinate system at entry to Picture * No Reference to the Device Coordinate System * no initgraphics - Raster Graphics (Image) * Missing Filter (JPEG, LZW, all encodes) * Special handling for image files and inline images - Geometric Graphics (Paths) * No explicit User Paths * Path is a data type distinct from Procedure * GetPath, SetPath and AppendPath operators. * Fewer operation (no flattenpath, no pathforall) - Missing Features * No Packed Arrays * No Number Strings * Strings less powerful * Limited Name Syntax (a-Z,0-9,".",":","_","-") * No immediately evaluated names * no explicit notion of VM (Virtual Memory) * no exlicit file I/O - Exception * Operators, $error dictionary renamed * add Warnings * Two levels of Error Handling - "stopped" - structural: StruggleOn,OnError, OnWarning - Difference: Other * Cannot construct resources in Content * Binary encoding of operators not DPS encoding * No Pattern Colorspace in SPDL * No ShowPage operator - Differences: Additions * Explicit Structure part * Inclusion of Structural Elements * Interchange Identifiers 9) SPDL Advantages - It is an International Standard - Page independence - Subpicture structure - Smaller language - Binary representation