Hi !
As far as printing is concerned, I am a newbie. I used to develop a number of stacks in HyperCard, but without having to ever print any. So I don't know how it was with HyperCard ! But I am discovering that printing in RR is not easy at all (at least for me!).

Well, I did not receive any answer to the questions below (neither to another previous one).
Printing seems not to be a very exciting theme ;-))

Anyway, in case of at least one other newbie in printing be interested, I am reporting on how I managed to figure out my problems.


De: André.Bisseret <[EMAIL PROTECTED]>
Date: Thu 16 Mar 2006  13:33:11 Europe/Paris
À: [email protected]
Objet: Printing fields with images included by « set the imageSource of such char »

Hi !
On each card of an App. I have differents texts ; some are including images that are put there by means of one char on a line (ex. : £,§,€…) whose imageSource is set to an image number (the images are in a special substack).
I want the user be able to print the text of this fld.

My first method is the following :
I created a hidden field (in the main stack), say field « toPrint » in which I am composing (from several fields in a card) and formating the text to print.
The core of it is :
put fld « theText » into fld « toPrint »
set the HTMLText of fld « toPrint » to the HTMLText of fld «theText ».

Then I print with
revShowPrintDialog false,true
put tab & "Page " & "<%pageNumber%>"  into footer
  revPrintText (the htmlText of fld "toPrint"),,footer

That works very well on Mac, The field « toPrint » is printed exactly as I want, including printing the images nicely.

But testers got problems with Windows
mainly: repetitions of parts of the text on new pages, large white areas between lines; lines being cut (while there is no cr) etc.

After a lot of trials and errors I discovered that it was a problem of Font and FontSize. First, I had several lines whose TextFont was set to "Geneva" ; A friend who knows Windows quite well suggested to me to replace Geneva (does not exist on Windows) by "Verdana"; this only change eliminated nearly all problems.

But some were remaining and I tried
another method using a special PrintingStack with two fields, one, say, the « bufferField » the other the fldToPrint : filling in the second while emptying the first, line after line (thanks to the explanations I founded in the SmartEBook on Printing by Dan Schafer).

.Mainly :
repeat until the formattedHeight of fld "fldToPrint" of cd cardNum >= gPrintHeight
    set the htmlText of line lineToAdd of fld "fldToPrint"\
    to the htmlText of line 1 of fld "bufferField" of cd 1
    delete line 1 of fld "bufferField" of cd 1
Now, after that, I had to format again (due to the fact that sometimes, the last line of fldToPrint is not entirely visible, so it is necessary to delete it and put it on the top of next cd). Then, I had to suppress (as far as they are detectable) the "isolated lines" (? "ligne orpheline" in French) at the end of fld "fldToPrint" : for example and mainly when last line is a title; then I have to delete it and paste it at the top of next card.

All works well if there is no image.

When there is an image, the image appears normally.
BUT it is followed by an incredible mess (a lot of chars such as squares, apples, and so on) which could take several pages if it was not remaining on the same card where the image appears.
Then the normal text is following, normally on another created card.
The solution I found and adopted is to script:
copy line 1 of fld "bufferField" of cd 1 -- instead of "set the htmlText of line 1… etc.
and then (in fld "fldToPrint")  paste
In case of an image line, as well as for a normal line, all is OK (with Windows and Mac as well); not any more "incredible mess" :-))).

COPY AND PASTE is the best way I have found : very simple, it works with images and it keeps html formating of the text.

One problem was remaining : one line was set in Verdana 9: when printed it was often cut under the right edge of the field. I set the fontSize to 10 instead of 9 and it worked normally !!!! (well, I would have prefer to keep a smaller fontSize, but in this case it is acceptable).

And, eventually, I print ;-))
Here again I got troubles ! not any with Mac with which several different scripts work well. but with Windows a lot of disappointments :-(((. (in particular, I tried to play with the "formatForPrinting" property (save, close, set formatForPrinting to true, re-open stack, print, set formatForPrinting to false, and so on.....

At last, the script I adopted, because it works on Windows as well as on Mac is :

on PrintTheReport
  FormatTheReport
  go to stack "PrintingStack"
  set the printmargins to 72,50,50,72
  put the cardNames of stack "PrintingStack" into cardsToPrint
  answer printer
  open printing with dialog
    if the result is "Cancel" then exit PrintTheReport
       repeat for each line tCd in cardsToPrint
      print tCd
    end repeat
    close printing
end PrintTheReport

I hope that will help some people to save time and annoyance

Best regards from Grenoble
André



_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to