axioma.render.
Report
¶План отчета для последующей печати.
Report
(parent=None)¶Конструктор
Параметры: parent ( QObject
) – Владелец элемента легенды. При удалении владельца так же удаляется и сам элемент
setOptions
(printer)¶Инициализация размеров страницы по переданному объекту принтера.
Параметры: printer ( QPrinter
) – Объект принтера, по параметрам которого производится инициализация
count
()¶Количество элементов отчета в текущем отчете на данный момент
Результат: Количество Тип результата: int
addItem
(item)¶Вставка нового элемента в отчет
Параметры: item ( ReportItem
) – Вставляемый элемент
removeItem
(index)¶Удаление элемента по его индексу. Если индекс корректен, элемент будет удален.
Параметры: index ( int
) – Индекс удаляемого элемента
moveItem
(item, index)¶Перемещение существующего элемента на новую позицию, если элемент и позиция указаны корректно
Параметры:
- item (
ReportItem
) – Перемещаемый элемент- index (
int
) – Индекс, указывающий позицию, куда необходимо переместить элемент
removeItem
(item)Удаление элемента из отчета
Параметры: item ( ReportItem
) – Удаляемый элемент
insertItem
(item, index)¶Вставка нового элемента в отчет на конкретную позицию.
Параметры:
- item (
ReportItem
) – Вставляемый элемент отчета- index (
int
) – Индекс
index
(item)¶Получение индекса элемента по значению
Параметры: item ( ReportItem
) – Искомый элементРезультат: Индекс искомого элемента, или же -1, если элемент не найден Тип результата: int
items
()¶Получение текущего списка элементов отчета
Результат: Список с элементами отчета Тип результата: list
[ReportItem
]
at
(index)¶Получение элемента отчета по его индексу.
Параметры: index ( int
) – ИндексРезультат: Элемент отчета. Возвращает None в случае, если не найдено Тип результата: bool
frontItem
()¶Первый элемент отчета
Результат: Элемент отчета. Возвращает None в случае, если не найдено (отчет не содержит ни одного элемента) Тип результата: ReportItem
backItem
()¶Последний элемент отчета
Результат: Элемент отчета. Возвращает None в случае, если не найдено (отчет не содержит ни одного элемента) Тип результата: ReportItem
rectContents
()¶Ограничивающий прямоугольник по существующим в рамках отчета элементам отчета
Результат: Ограничивающий прямоугольник Тип результата: QRectF
rect
()¶Ограничивающий прямоугольник общего пространства отчета. Здесь возвращается простое произведение размера одной страницы на их количество
Результат: Ограничивающий прямоугольник Тип результата: QRectF
render
(context, excludes=[], pages=[])¶Отрисовка отчета в заданном контексте
Параметры:
- context (
Context
) – Контекст, в котором будет отрисован отчет- excludes (
list
[ReportItem
]) – Элементы отчета, которые не будут отрисованы- pages (
list
[int
]) – Страницы, которые не будут отрисованы
horisontalPagesCount
()¶Количество страниц отчета по горизонтали
Результат: Количество страниц Тип результата: int
setHorisontalPagesCount
(v)¶Установка количества страниц по горизонтали
Параметры: v ( int
) – Новое количество страниц
verticalPageCount
()¶Количество страниц отчета по вертикали
Результат: Количество страниц Тип результата: int
setVerticalPageCount
(v)¶Установка количества страниц по вертикали
Параметры: v ( int
) – Новое количество страниц
unit
()¶Единицы измерения отчета, в которых хранятся элементы ReportItem
Результат: Единицы измерения отчета Тип результата: Unit
setName
(name)¶Задание нового значения наименования отчета
Параметры: name ( str
) – Новое наименование отчета
fillOnPages
()¶Максимально заполняет страницу(ы) отчета существующими элементами
Результат: False, если если ничего не делалось и контент не изменился. В противном случае True Тип результата: bool
coordSystem
()¶Координатная система отчета
Результат: Координатная система отчета Тип результата: CoordSystem
dpiPrinter
()¶Разрешение принтера. Инициализируется при передаче объекта принтера в метод setOptions
Результат: Разрешение принтера Тип результата: int
progress
(value, total)¶[signal] Сигнал, возникающий при изменении прогресса выполнения
Параметры:
Пример использования:
# Создание элемента отчета типа геометрический объект # Текст рассматиривается как геометрия. Пример создания см. style.py def createGeometryItem(report): print('Геометрия...') poly = QPolygonF(); poly << QPointF(20,20) << QPointF(80,50) << QPointF(120,20) << QPointF(320,320) << QPointF(120,180) << QPointF(20,20) geom = Polygon(cs_ne, poly) # Задание геометрии style = MapBasicStyle().styleFromString("Pen (1, 5, 16711935) Brush (8, 255, 16777215)") # Задание стиля оформления geomItem = GeometryReportItem(report) # Элемент отчета geomItem.setGeometry(geom) # Геометрия элемента в координатах отчета geomItem.setStyle(style) # Стиль оформления геометрии report.addItem(geomItem) # Добавляем в отчет # Создание контекста def createContext(painter): deviceRect = sceneRect = QRectF(0,0,100,100) viewport = Viewport (deviceRect,sceneRect) return Context(painter, viewport) def dumpReport(printer): try: report = Report(axioma.app.mainWindow) report.setHorisontalPagesCount(2) report.setVerticalPageCount(2) printer.setPaperSize(QPrinter.A4) report.setOptions(printer) printer.setOutputFormat(QPrinter.PdfFormat) # Pdf как выходной файл filename = QDir.temp().filePath('layout_out.pdf') # Имя выходного файла printer.setOutputFileName(filename) painter = QPainter(printer) context = createContext(painter) createGeometryItem(report) # Создание элемента отчета report.render(context) # Отрисовка print(QObject().tr("Элементов отчета:"), report.count()) print('Сохранено в файле ', filename) except Exception as ex: print(ex) #printer = QPrinter(QPrinter.HighResolution) # Создание принтера с высоким разрешением (1200dpi для Pdf или зависит от принтера) printer = QPrinter() #Создание принтера с обычным разрешением dumpReport(printer)