2015-01-26 3 views
0

В нашем проекте мы уже использовали snapshot() класса Node, сделав «Снимок экрана» таблицы Javafx 8. Функция snapshot() всегда делает снимок экрана всего узла/сцены. Он работает для обычных таблиц, , но поскольку мы используем JFXtras agendatables и электронные таблицы ControlsFX, , функция моментального снимка просто снимает скриншот текущей таблицы с прокруткой, а остальная часть таблицы просто вырезана.Как сделать целое (изображение) Снимок JFXtras Agendatable/ControlsFX Spreadsheet Javafx 8

Как я могу взять «полный» снимок этих таблиц?

+0

Правильно ли я понимаю, что вы хотите удалить видовое окно scrollpane с экрана? Возьмите скриншот, как будто его нет? – tbeernot

+0

Scrollpane не беспокоит меня так сильно, как раз то, что таблица разрезана на текущий вид пользователя. Вот почему на изображении присутствует только 1/4 таблицы. –

+0

Я поговорил с автором элемента управления Table в JavaFX, и он указывает, что маловероятно, чтобы таблица в scrollpane не была отрезана от видимых ячеек , Таким образом, ваша проблема будет заключаться в том, что Повестка дня и электронная таблица по умолчанию используют прокрутку в их представлении. Таким образом, можно полностью экранировать такой контроль, если прокрутка может быть выращена для отображения всех ячеек. – tbeernot

ответ

0

Снимок экрана - это то, что он предлагает: изображение, сделанное на экране, в точности так, как показано на рисунке. Если узлы, независимо от того, являются ли они прямоугольниками, таблицами, программами или электронными таблицами, только частично видны на экране, снимок экрана будет захватывать только то, что видно.

Любое другое поведение приведет к интересному поведению: предположим, что таблица с 10.000.000 строк показана с помощью прокрутки, которая отображает только 10 строк. Снимок экрана внезапно увеличится на 1.000.000 раз. Если есть другие узлы, расположенные рядом или ниже этой прокрутки, куда они будут идти? Они двигаются вниз по мере роста прокрутки? Для создания этого скриншота потребуется полный новый макет и фактическое заполнение этих 10.000.000 строк при скрининге таблицы.

Если вы хотите сделать снимок экрана более узлом внутри прокрутки, вам нужно увеличить размер прокрутки. Сравните это с Excel: создание скриншота экрана вашего ПК будет включать только ту часть рабочего листа, которая была видна. Если вам нужен весь рабочий лист, вам нужно его распечатать. Поэтому я подозреваю, что вы ищете способ распечатать Agenda/Spreadsheet. Но это не вопрос, который вы задаете.

+0

Наша основная цель - добавить электронную таблицу/документ в PDF. Именно по этой причине мне нужен снимок экрана. У вас есть предложение, что я могу сделать, чтобы добавить таблицы в PDF без создания моментального снимка? –

+0

Я обсуждал это с ребятами JavaFX, и, похоже, должен быть реализован выделенный метод print (PrintJob), аналогичный тому, что у WebView. Затем вы можете распечатать PDF или изображение и включить его в документ. В этот момент вам нужно сделать снимок экрана, и если вы хотите получить весь контент Повестки дня, вам нужно сделать его на экране с достаточно высоким разрешением, чтобы прокрутка не скрывала ничего. На моем 2560x1600 это возможно. – tbeernot

+0

Я добавил экспериментальный метод печати в Agenda (8.0-r4-snapshot) в духе того, что делает веб-сайт JavaFX. Не уверен, что это то, на что я надеялся. Печать в JavaFX, ах, не впечатляет, или я не делаю это правильно. – tbeernot