On 11/29/09 11:33 AM, Jan Schenkel wrote:
Hi Richmond,
Printing in rev can be a bit confusing at times, but I have some experience
with it so I can help you find the errors in your ways ;-)
Let's start at the top. In order to print a card to a PDF file, you have to do
a little more than what you scripted:
##
on mouseUp
local tFilePath
put specialFolderPath("desktop")& "/test.pdf" into tFilePath
set the printerOutput to ("file:"& tFilePath)
set the printMargins to 0,0,0,0
print this card
launch document tFilePath
end mouseUp
##
I decided to place the file on the desktop and launch it right after printing.
The key difference was setting the printMargins. If your 'print' command
doesn't specify an 'into' rectangle, the engine assumes you're printing from
the top left of the printable part of the paper.
Important to know, so you get your expectations right:
- graphic objects are printed to 'unlimited' precision, zooming in shouldn't
result in jagged lines
- the text in objects (fields, button labels, etc.) are also printed to
'unlimited' precision
- everything else (images, players and other controls) gets printed at 'screen'
precision and will show jaggies as you zoom in
The reason is simple: rev asks the operating system to draw a button, but gets
this back as a bitmap; it then prints the label of the button on top of it;
these are two distinct graphic environments, and while you don't see it on
screen, you'll see the difference upon printing time.
Anyway, on to the problem of printing a field. The simplest method is indeed to
use the revPrintField command, so you ware almost there:
##
on mouseUp
local tFilePath
put specialFolderPath("desktop")& "/test2.pdf" into tFilePath
set the printerOutput to ("file:"& tFilePath)
revShowPrintDialog false, false
revPrintField the long id of field "MyStyledTextField"
launch document tFilePath
end mouseUp
##
Calling the 'revShowPrintDialog' command allows you to control which dialogs
are shown (page setup, print) so by passing false twice, we bypass the dialog
box completely. And the PDF output looked crispy on my Mac.
On Windows, you can use the printerOutput to create 'XPS' files (MS alternative
to PDF), and on Linux, you can use it to create 'PS' files (PostScript, of
course)
HTH,
Jan Schenkel
Thank you, Jan; that is really fantastic.
However, it would be lovely if there were a way to output to PDF/XPS/PS
cross-platform as I know that XPS, for instance, is
problematic to read on a Mac and Linux systems that don't run KDE as a
window manager.
_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution