Вход

Просмотр полной версии : Печать фрэйма (маштабируемость кадра)


maxen
11.06.2009, 09:46
Задача: сделать кнопку, которая бы печатала весь кадр (наверное правильно сказать фрэйм). Она будет стоять не на всех кадрах, а выборочно.
Я сделал кнопку, при нажатии которой идет печать этого кадра.

function _print()
{
var __reg1 = new PrintJob();
if (__reg1.start())
{
if (__reg1.addPage(0))
{
__reg1.send();
}
}
false;
}

printBut.onRelease = _print;


Проблема только в том, что изображение печатается не правильно - как бы горизонтальное изображение на вертикальном листе. Т.е изображение обрезается.
Можно ли как-то выравнить это изображение - сделать его маштабируемым чтоли т.е. лист вертикальный, рисунок горизонтальный, но только уменьшенный (от края листа, до края).

У меня так получилось - мне нужно было распечатать не весь кадр, а только табличку. Я ее сделал мовиклипом (my_mc) и при нажатии кнопки (my_btn) сробатывало такое собитие: my_btn.onPress = function() {
print (my_mc, "bmovie");
};
А как тут этого добится не понимаю.
Может кто посмотрит код?

KiL33
11.06.2009, 13:54
Для того чтобы не вылизало за края нужно изображение подгонять под формат листа.
Примерно так
function content_f(pageW:Number, pageH:Number, contentObj:Object){
//процентное выражение размеров области печати от размеров клипа
var clipW = pageW / contentObj._width * 100;
var clipH = pageH / contentObj._height * 100;
if ((clipW < 100 && clipH < 100) || (clipW > 100 && clipH > 100)) {
if (Math.min(clipW, clipH) == clipW) {
contentObj._xscale = contentObj._yscale = clipW;
}
else {
contentObj._xscale = contentObj._yscale = clipH;
}
}
else if (clipW >= 100 && clipH <= 100) {
contentObj._xscale = contentObj._yscale = clipH;
}
else if (clipW < 100 && clipH > 100) {
contentObj._xscale = contentObj._yscale = clipW;
}
}

И вызывать функцию
...
if (__reg1.start())
{
сontent_f(__reg1.pageWidth, __reg1.pageHeight, obj);
...

P.s. я сам не проверял..мне листов жалко.
P.P.s. зачем эти двойные подчеркивания? они только мешают..я бы ничего не понял, если хотя бы 100 строк кода было вот так написано..

maxen
12.06.2009, 11:09
to KiL33
Пробовал по всякому, но у меня не получается...также печатается страница (т.е. не по формату, обрезается).

Зато попробовал другой способ - на кнопку поставил такой код:
on (release) {
print(this, "bmovie");
}

Теперь печатается так как мне надо (от края до края альбомного листа, весь кадр презентации как бы маштабируется), но теперь он печатает все кадры презентации! А мне надо только выборочные кадры, на которых я поставлю кнопки печати, нажав на которые распечатается только этот кадр,а не все, которые мне надо.