PDA

Просмотр полной версии : Печать повёрнутого текста - не отображается.


Androidwww
11.10.2013, 15:10
Создаю TextField запихиваю его в спрайт вывожу на принтер!
Работает замечательно! только если не делать rotationZ а мне он нужен!!!
Вращение самого спрайта с текстом тоже не вариант даже на экране не отображается!

Есть мысль разделить текст на элементы потом объединить буквы и тогда уже повернуть...
но что то я не нашел как программно это сделать. Благодарю за подсказку!

/*
импорт классов
*/
import flash.printing.PrintJob;
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.geom.Rectangle;
import flash.events.MouseEvent;
/*
спрайт, содержимое которого будем выводить на печать
*/
var sprite:Sprite = new Sprite();
addChild(sprite);
/*
динамическое текстовое поле, помещённое внутрь спрайта
*/
var txtField:TextField = new TextField();
txtField.type = TextFieldType.INPUT;
txtField.x = 50;
txtField.y = 50;
txtField.text = "Ваш текст";
txtField.rotationZ = 90;

sprite.addChild(txtField);

/*
кнопка PRINT
*/
btnPrint.addEventListener(MouseEvent.CLICK, printSprite);
function printSprite(event:MouseEvent):void
{
/*
создаём объект класса PrintJob
*/
var printJob:PrintJob = new PrintJob();
/*
начинаем процесс печати
*/
printJob.start();
/*
добавляем спрайт на печать
*/
printJob.addPage(sprite, new Rectangle(0, 0, 550, 400));
/*
отправляем принтеру на печать
*/
printJob.send();
}

Akopalipsis
11.10.2013, 15:20
Можно растрировать и повернуть битмапу.
я не знаю, но когда читал книги, там вроде говорилось, что текст вертеть нельзя.

ObOs
11.10.2013, 15:35
Нужно внедрить шрифт, используемый в текстовом поле.

Androidwww
11.10.2013, 17:32
там вроде говорилось, что текст вертеть нельзя.
rotationZ - чудесно это делает
Можно растрировать и повернуть битмапу.
если можно пример как это сделать - или команду хотя бы...

Нужно внедрить шрифт, используемый в текстовом поле.
А внедрить куда? )) нескромный вопрос... если есть пример дай пожалста...

GrafMine
11.10.2013, 18:00
если можно пример как это сделать - или команду хотя бы...



var tf:TextField = new TextField();
tf.text = "bitmap text";
var myBitmapData:BitmapData = new BitmapData(80, 80, false, 0x0000FF00);
myBitmapData.draw(tf);
var bmp:Bitmap = new Bitmap(myBitmapData);
bmp.rotationZ = 10;
this.addChild(bmp);

Androidwww
11.10.2013, 19:47
2GrafMine как вариант подходит... (тут уже просто rotation используем )
Bitmap конечно преображает текст до неузнаваемости ) но это лучше чем ничего!

Будут еще варианты буду признателен!

maincode
11.10.2013, 20:06
А внедрить куда? )) нескромный вопрос... если есть пример дай пожалста...

Создаете файл шрифта в библиотеке Flash Pro, даете ему имя класса, например MyFont. После чего в коде необходимо зарегистрировать этот шрифт методом Font.registerFont(MyFont); (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/text/Font.html#registerFont%28%29)

Androidwww
12.10.2013, 19:36
Благодарю джентльмены!