DIRECTORY IO, MessageWindow, PressReader, Real, Rope, Commander; ListFontsInPressFileCommand: PROGRAM IMPORTS IO, MessageWindow, PressReader, Real, Commander = BEGIN ROPE: TYPE = Rope.ROPE; ListFonts: Commander.CommandProc = TRUSTED { fileName: ROPE _ IO.GetTokenRope[IO.RIS[cmd.commandLine], IO.IDProc].token; pressFile: PressReader.Handle _ PressReader.OpenPressFile[fileName ! PressReader.PressReaderError => { MessageWindow.Append[ message: SELECT errorCode FROM FileNotAPressFile => "File not a Press file!", FileNotAvailableForRead => "File not readable!", ENDCASE => ERROR, clearFirst: TRUE]; MessageWindow.Blink[]; GOTO Quit; } ]; log: IO.STREAM ~ cmd.out; FontPrinter: PressReader.FontEntryProc = { texDesignSize: REAL _ -1.0; log.PutRope["\nFamily name: "]; log.PutRope[fontDirectoryEntry.family]; IF fontDirectoryEntry.face.encoding < 18 THEN { log.PutF["\n Face: %g == Weight: %g, Slope: %g, Expansion: %g", IO.int[fontDirectoryEntry.face.encoding], IO.rope[SELECT fontDirectoryEntry.face.weight FROM medium => "medium", bold => "bold", light => "light", ENDCASE => ERROR], IO.rope[SELECT fontDirectoryEntry.face.slope FROM regular => "regular", italic => "italic", ENDCASE => ERROR], IO.rope[SELECT fontDirectoryEntry.face.expansion FROM regular => "regular", condensed => "condensed", expanded => "expanded", ENDCASE => ERROR]]; } ELSE { texDesignSize _ (254.0-fontDirectoryEntry.face.encoding)/2.0; log.PutF["\n Face: %g == TEX design size %g", IO.int[fontDirectoryEntry.face.encoding], IO.real[texDesignSize] ]; }; log.PutF["\n Size: %g", IO.int[fontDirectoryEntry.size]]; IF texDesignSize>0 AND fontDirectoryEntry.size<0.0 THEN { magnification: REAL _ -fontDirectoryEntry.size*72.27/(2540*texDesignSize); magnification _ Real.RoundLI[magnification*100]/100.0; log.PutF[" (magnification %g)", IO.real[magnification]]; }; log.PutF["\n Rotation: %g", IO.int[fontDirectoryEntry.rotation]]; }; -- FontPrinter pressFile.GetFonts[FontPrinter]; pressFile.ClosePressFile[]; EXITS Quit => NULL; }; Commander.Register[ key: "ListFontsInPressFile", proc: ListFonts, doc: "Lists the fonts used in the named press file"]; END. ŽListFontsInPressFileCommand.mesa Last edited by Plass on April 18, 1983 5:49 pm Last Edited by: Beach, February 24, 1984 1:32:02 pm PST Κ΄˜Jšœ ™ J™.J™7šΟk ˜ Jšœ4˜6—šœ˜$Jšœœ-˜7Jšœ˜—Jšœœœ˜šΟn œœ˜,Jš œ œœœœœ˜KšœD˜Dšœ!˜!šœ˜šœ œ ˜Jšœ.˜.Jšœ0˜0Jšœœ˜—Jšœ œ˜—Jšœ˜Jšœ˜ Jšœ˜—Jšœ˜—Jšœœœ ˜unitšž œ˜*Jšœœ˜Jšœ˜Jšœ'˜'šœ'œ˜/šœ?˜?Jšœ'˜)šœœ ˜2Jšœ˜Jšœ˜Jšœ˜Jšœœ˜—šœœ˜1Jšœ˜Jšœ˜Jšœœ˜—šœœ#˜5Jšœ˜Jšœ˜Jšœ˜Jšœœ˜—J˜—šœ˜Jšœ=˜=šœ-˜-Jšœ'˜)Jšœ˜J˜—Jšœ˜——Jšœœ˜9šœœœ˜9Jšœœ7˜JJšœ6˜6Jšœ œ˜8J˜—Jšœœ#˜AJšœΟc˜—Jšœ ˜ Jšœ˜Jšœ œ˜Jšœ˜—šœ˜Jšœ˜Jšœ˜Jšœ5˜5—Jšœ˜—…—T –