Hi Mark,

> Am 14.02.2020 um 19:13 schrieb Mark Waddingham via use-livecode 
> <use-livecode@lists.runrev.com>:
> 
> On 2020-02-14 17:32, Klaus major-k via use-livecode wrote:
>>> revPrintField formats the content of the field you specify to fill a new 
>>> field
>>> which fits within the printMargins of the page.
>>> 'print this card' starts printing the card *as it is* with the top-corner at
>>> the left-print-margin,top-print-margin.
>>> Try choosing 'A4 Borderless' as the page size (this has 0 print margins).
>> As I wrote, then it works as exspected, but this is not practical,
>> who has a marginless printer?
> 
> Most people these days in fact! Most (even cheap) inkjets can print to the 
> edge of an A4 page :D

oh boy, has been some time since I have printed out something or even owned a 
printer. :-D

> [ Of course, the need for margins when printing is not actually really 
> related to what could be printed, but what is comfortable for the user to 
> hold and read! ]
> 
> The revPrintField command is written to make it easy to print the contents of 
> a field, over multiple pages to fit to the page setup and printer options 
> provided by the user. This means it computes the width of the field based on 
> those options.
> 
> The issue here is that your field layout is width sensitive - as are most 
> documents which use tabStops. If you'd typed your content into word, and then 
> changed the page setup / margin options from the settings in effect when you 
> set the tabStops then you'd get exactly the same effect as you are seeing 
> with revPrintField.
> 
> Your stack appears to already be laid out assuming an A4 page size - which is 
> why you get the effect you want when using 'print this card'.

Yes, (DIN) A4 (595*842 Pixels) is pretty standard over here in Europe (cough, 
cough 8-))

> Assuming you don't need to accommodate user-chosen page sizes, then all you 
> should need to do is:
>  1) use revShowPrintDialog to turn off showing the page setup dialog

OK

>  2) set the printMargins to those you already have in your stack (the 
> distance of each edge of the field from the card boundary)

OK

>  3) set the printPaperSize to the width and height of your stack (which is A4 
> size in points - I think at least)

OK

>  4) call (modified) revPrintField
> This should mean that revPrintField will use a field of the same width and 
> height of that in the stack, but do the pagination for you.

Thanks a lot, will try that.
A4 is all I need to supply.

Hm, did take all the above mentioned stape but there are still parts that are 
not printed
and the TOTAL lines are still wrapped.

> If you do need to account for different (user chosen) page widths, then you 
> will need to adjust the tabStops appropriately:
>  1) answer page setup to get the user's chosen options
>  2) use revShowPrintDialog to turn off showing the page setup dialog
>  3) interrogate the printPaperSize and printMargins to work out the printable 
> width (pageWidth - leftMargin - rightMargin)
>  4) adjust the tabStops of your field so that the right tabStop is at the 
> printable width
>  5) call (modified) revPrintField
> 
> Hope this helps!

Thank you very much!

OK, I spent too much time on this already, I will use "print cd xyz" for now...

> Warmest Regards,
> 
> Mark

Best

Klaus

--
Klaus Major
https://www.major-k.de
kl...@major-k.de


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to