r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Postscript] Emitting Postscript from REBOL

Henrik
20-Apr-2008
[1632]
but I do wish that each char in a font had a center point that indicates 
the absolute center of a character both horizontally and vertically. 
horizontally, that would be individual for each char, but vertically 
it has to be identical for all chars, like the baseline is.
Geomol
20-Apr-2008
[1633]
I can see, that text in tables in html is centered more like you 
want it, at least in Safari. Actually the text is much lower in Safari, 
so there is more space above the text than below, if you use words 
with 'g'. I can't judge, if they do a simple calculation or use the 
font box.
Henrik
20-Apr-2008
[1634x2]
it depends on the chars you use. if you use a word like "judge", 
the word might appear offset downward, because there are no really 
tall letters in that word. if you use a word like "Greg", the word 
might appear more centered. If you say "GGG", the word might appear 
offset upward, because "G" is a tall character in Helvetica or Times. 
But overall, if you write a long sentence like that, the words should 
appear centered.
And when I say the letter is tall in Helvetica or Times, that means 
it may not be so in other fonts. I don't believe a font like Verdana 
does this. This is why when getting the absolute center for a font, 
you must calculate it using all glyphs in the font.
Henrik
24-Jun-2008
[1636]
I gave in, and have begun using ghostscript for printing postscript. 
There are many printer specific bugs that require a windows printer 
driver to make postscript printing work properly, so I now use the 
mswinpr2 driver. However it eats about 40 MB RAM printing one page. 
Anyone got ideas on how to reduce that?
Graham
24-Jun-2008
[1637]
what do you mean by printer specific bugs?
Henrik
24-Jun-2008
[1638x3]
I had problems with feeding postscript files generated by postscript.r 
directly to an HP Laserjet 1200. It would stop printing after the 
first job. Feeding it through Ghostscript or the adobe postscript 
printer driver solved the problem, but now the printer is replaced 
with a different one with different issues.
I read about the HP Laserjet 1200 and it has such a bug in its postscript 
implementation that is easiest worked around in the driver.
I've also seen a Laserjet 4500 lock completely up, when you feed 
it a specific postscript or PDF file.
Graham
24-Jun-2008
[1641]
and you're sure that your postscript code is correct??
Henrik
24-Jun-2008
[1642]
I have worked for many weeks on the problem and it's unsolvable, 
so I went to Ghostscript instead, but I'm unhappy with its speed.
Graham
24-Jun-2008
[1643x2]
what happens when the code you send is rendered by gsview?
or is interpreted interactively by ghostscript?
Henrik
24-Jun-2008
[1645]
I don't use GSView, I use the printer with Ghostscript as passthrough.
Graham
24-Jun-2008
[1646]
so, you send postscript to ghostscript when then generates postscript 
again to send to the HP printers?
Henrik
24-Jun-2008
[1647]
No, ghostscript generates a bitmap for printing on any printer, which 
is what I have to use now. I used the adobe driver for the HP 1200.
Graham
24-Jun-2008
[1648]
so, you're also using gsprint?
Henrik
24-Jun-2008
[1649x2]
I call gswin32c.exe and feed it parameters to use the win32pr driver, 
which sends a bitmap to the printer given as a parameter in the same 
call.
will have a look at gsprint...
Graham
24-Jun-2008
[1651x2]
the point of using gsview is as a debugging tool
but I guess gswin32 should complain if there is an error in the ps 
code
Henrik
24-Jun-2008
[1653x2]
I don't use GSView at all.
I don't think it's the postscript itself that's buggy, but the transmission 
of the code to the printer. Perhaps they are screwing around with 
port settings inside the driver which we don't know about. So it 
may be a lower level problem.
Graham
24-Jun-2008
[1655]
Is it a shared printer?
Henrik
24-Jun-2008
[1656]
nope
Graham
24-Jun-2008
[1657]
so, you just writing to port 9100 ?
Henrik
24-Jun-2008
[1658]
doesn't that only work for ethernet printers?
Graham
24-Jun-2008
[1659x2]
I got some notes somewhere that async printing to a postscript printer 
caused me problems.
what sort of printer is it??
Henrik
24-Jun-2008
[1661]
It uses parallel/usb
Graham
24-Jun-2008
[1662]
and which were you using?
Henrik
24-Jun-2008
[1663]
HP Laserjet 1200
Graham
24-Jun-2008
[1664]
parallel or usb?
Henrik
24-Jun-2008
[1665x2]
it can use both.
and I tried both with similar results
Graham
24-Jun-2008
[1667]
what was your code to send the ps to the printer??
Henrik
24-Jun-2008
[1668]
I just echo'ed it through DOS to LPT1:.
Graham
24-Jun-2008
[1669x2]
this is what I do ...

write %//prn content
when printing to lpt1
Henrik
24-Jun-2008
[1671]
interesting... what decides that %//prn is LPT1?
Graham
24-Jun-2008
[1672x2]
dunno
But never had a problem
Henrik
24-Jun-2008
[1674]
interesting... but ok, now my focus is to make it work on any printer. 
as mentioned it is fed through ghostscript. when I read about GSPrint 
it almost seems like it does the same thing. it even uses the same 
driver.
Graham
24-Jun-2008
[1675x2]
%//lpt1 is also possible, but according to google, %//prn diverts 
to the first availabel printer
from Andrew Martin

Printer: func [Text [string!] /Page] [
    secure [
        %//prn [allow write]
    ]
    write %//prn Text
    ; Append Carriage Return (CR) and Page Feed.
    if Page [write/binary %//prn "^(0D)^(page)"]
    Text
]
Henrik
24-Jun-2008
[1677]
so %prn is a DOS/win32 thing that REBOL just uses?
Graham
24-Jun-2008
[1678]
it might not work under Windows 98
Henrik
24-Jun-2008
[1679]
I've been informed that we are not using win98 anymore (yay!)
Graham
24-Jun-2008
[1680x2]
this is what I had to do for usb printers .. http://synapsedirect.com/forums/thread/396.aspx
and so %//prn will still work ...