Преобразование Flex Barchart в изображение без рендеринга - PullRequest
0 голосов
/ 07 октября 2011

Есть ли способ создать BarChart (в фоновом режиме), не добавляя его в текущий вид? У меня в основном есть диаграмма, которую мне нужно преобразовать в изображение и добавить в отчет PDF (используя AlivePDF).

1 Ответ

2 голосов
/ 07 октября 2011

Нет, необходимо добавить диаграмму в список отображения.

A DisplayObject необходимо добавить в список отображения, чтобы можно было отображать ее как растровое изображение (т.е. распечатать его илиотправить его в PDF).

Внутренне AlivePDF использует BitmapData.draw(...); метод , который требует, чтобы объект находился в списке отображения и имел visible=true для отображения.

Если вы не хотите, чтобы диаграмма появлялась на сцене во время создания PDF-файла (или печати), вы можете добавить диаграмму в родительский контейнер и вместо нее скрыть родительский.

Вот пример того, как вы можете сделать это:

var box:VBox = new VBox();
// Hide the parent, not the chart.
// If you set chart.visible = false then it won't show up in the PDF.
box.visible = false;
box.addChild(chart);
addChild(box);

// You might need to force validation here so the chart has the correct size.
box.validateNow();

// Add chart to PDF.
pdf.addImage(chart);

// TODO: Clean up your display items here.
box.removeChild(chart);
removeChild(box);
box = null;
...