Report

Краткая информация

Объект Report ссылается на отчет в файле проекта ArcGIS Pro (.aprx). Он обеспечивается доступ к основным его свойствам, таким как определяющий запрос и экспорт.

Обсуждение

Проект ArcGIS Pro может содержать несколько отчетов. Отчеты доступны с использованием метода listReports из объекта ArcGISProject, который возвращает список объектов Report Python. Важно, чтобы у каждого отчета было свое уникальное имя, благодаря чему на конкретный отчет было бы легко ссылаться по его свойству name.

У объекта Report есть источник данных с данными, помогающими в создании отчета. Можно идентифицировать текущий источник данных для отчета с использованием свойства referenceDataSource. Чтобы изменить источник данных отчета, можно использовать метод setReferenceDataSource. Метод сопоставляет поля нового источника данных с полями отчета, заданными исходным источником данных. Названия полей (а не их псевдонимы) должны точно совпадать, в том числе и с учетом регистра.

Так же как и у источника данных отчета, у самого отчета может быть определяющий запрос. Записи сначала фильтруются на основе определяющего запроса источника данных, а затем могут быть отфильтрованы и с использованием свойства definitionQuery отчета.

С помощью метода exportToPDF экспортируйте отчет в документ PDF.

Свойства

СвойствоОписаниеТип данных
definitionQuery
(чтение и запись)

Определяющий запрос отчета. Он используется наряду с определяющим запросом исходных данных отчета.

String
metadata
(чтение и запись)

Получите или задайте информацию класса Метаданные для отчета. Имейте в виду, что задание метаданных зависит от значения свойства isReadOnly.

Metadata
name
(чтение и запись)

Имя отчета. Важно, чтобы у всех отчетов были уникальные имена, благодаря чему на них было бы легко ссылаться по имени.

String
referenceDataSource
(только чтение)

Возвращает информацию о подключении к источнику данных отчета в виде словаря (dictionary) Python.

Dictionary

Обзор метода

МетодОписание
exportToPDF (out_pdf, {page_range_type}, {page_range}, {starting_page_number}, {total_page_number}, {resolution}, {image_quality}, {compress_vector_graphics}, {image_compression}, {embed_fonts}, {jpeg_compression_quality})

Экспортирует отчета в файл формата Portable Document Format (PDF).

setReferenceDataSource (data_source)

Задает источник данных отчета.

Методы

exportToPDF (out_pdf, {page_range_type}, {page_range}, {starting_page_number}, {total_page_number}, {resolution}, {image_quality}, {compress_vector_graphics}, {image_compression}, {embed_fonts}, {jpeg_compression_quality})
ПараметрОписаниеТип данных
out_pdf

Строка, представляющая путь и имя выходного файла для экспорта.

String
page_range_type

Строка, определяющая тип диапазона страниц для экспорта. По умолчанию – ALL.

  • ALLЭкспортируются все страницы отчета.
  • LASTЭкспортирует последнюю страницу отчета.
  • EVENЭкспортирует четные страницы отчета.
  • ODDЭкспортируются нечетные страницы отчета.
  • RANGEЭкспортирует страницы, перечисленные в параметре page_range.

(Значение по умолчанию — ALL)

String
page_range

Строка, определяющая экспортируемые страницы, если используется опция RANGE в параметре page_range_type (например, 1, 3, 5-12). Если используется любое другое значение page_range_type, параметр page_range будет игнорироваться.

String
starting_page_number

Задает сдвиг нумерации страниц, который позволит добавить дополнительные страницы в начало отчета. По умолчанию значение сдвига равно 1.

(Значение по умолчанию — 1)

Integer
total_page_number

Общее число надписываемых страниц, например, когда ваш отчет отображает X из Y страниц. Это может быть полезным, если вы хотите объединить несколько отчетов в один. Значением по умолчанию является -1. Это значит, что замещение отсутствует.

(Значение по умолчанию — None)

Integer
resolution

Целое число, определяющее разрешение файла для экспорта в точках на дюйм (dpi).

(Значение по умолчанию — 96)

Integer
image_quality

Строка, определяющая качество выходного изображения.

  • BESTКачество выходного изображения с коэффициентом сжатия 1
  • BETTERКачество выходного изображения с коэффициентом сжатия 2
  • NORMALКачество выходного изображения с коэффициентом сжатия 3
  • FASTERКачество выходного изображения с коэффициентом сжатия 4
  • FASTESTКачество выходного изображения с коэффициентом сжатия 5

(Значение по умолчанию — BEST)

String
compress_vector_graphics

Логический параметр, управляющий сжатием векторных и текстовых частей выходного файла. Сжатие изображения определяется отдельно.

(Значение по умолчанию — True)

Boolean
image_compression

Строка, которая определяет схему сжатия, используемую для сжатия изображения или растровых данных в выходном файле.

  • ADAPTIVEАвтоматически выбирает лучший тип сжатия для каждого изображения на странице. JPEG используется для крупных изображений со множеством уникальных цветов. DEFLATE используется для всех других изображений.
  • JPEGСжатие данных с потерями.
  • DEFLATEСжатие данных без потерь.
  • LZWLempel-Ziv-Welch, сжатие данных без потерь
  • NONEНет сжатия данных.
  • RLEСжатие с кодированием по длинам серий

(Значение по умолчанию — ADAPTIVE)

String
embed_fonts

Логический параметр, управляющий внедрением шрифтов в файле для экспорта. Внедрение шрифтов позволяет правильно отображать текстовые и символьные маркеры при просмотре документа на компьютере без установленных шрифтов.

(Значение по умолчанию — True)

Boolean
jpeg_compression_quality

Число, управляющее качеством сжатия, если для параметра image_compression задано значение ADAPTIVE или JPEG. Допустимым является диапазон от 1 до 100. Если значение jpeg_compression_quality равно 100, это обеспечивает наилучшее качество изображений, но при экспорте создаются крупные файлы. Рекомендованный диапазон находится между 70 и 90.

(Значение по умолчанию — 80)

Integer

PDF формат создан с учетом возможности просмотра и печати файлов на разных платформах. Эти файлы часто используются для распространения документов через Интернет и становятся стандартным форматом для обмена документацией. Файлы PDF можно редактировать во многих графических приложениях, здесь сохраняются аннотации, надписи и атрибутивные данные для слоев карты. Экспорт PDF поддерживает встроенные шрифты, поэтому, даже если у пользователей не установлены шрифты Esri, символы все равно будут отображаться корректно.

setReferenceDataSource (data_source)
ПараметрОписаниеТип данных
data_source

Источник данных, входящий в отчет. Этот параметр может быть объектом Layer, объектом Table или строкой, задающей путь к внешнему источнику данных.

(Значение по умолчанию — None)

Object

Метод setReferenceDataSource задает источник данных, на который ссылается отчет, с использованием объекта Layer, объекта Table или строки, задающей путь к внешнему источнику данных

Пример кода

Пример 1 отчета

В следующем списке выполняется выбор по имени отчета Counties и его экспорт в PDF.

import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\USA_States\USA_States.aprx")
report = aprx.listReports("Counties Report")[0]
report.exportToPDF(r"C:\Project\USA_States\CA_Counties_Report.pdf")
Пример 2 отчета

Следующий скрипт исправляет поврежденный источник данных отчета и сохраняет проект.

import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\USA_States\USA_States.aprx")
report = aprx.listReports("Counties Report")[0] # has a broken data source
report.setReferenceDataSource(r"C:\Project\USA_States\usa.gdb\states")
print(report.referenceDataSource)
#{'dataset':'states', 'workspace_factory':'File Geodatabase',
# 'connection_info':{'database':'C:\\Project\\USA_States\\usa.gdb'}}
aprx.save()
Пример 3 отчета

В следующем скрипте используется классPDFDocument для слияния нескольких отчетов в один многостраничный PDF.

import arcpy
pdf_name = "StatesReport.pdf"
cover_page = r"C:\path\to\StatesCoverPage.pdf"
part_one_pdf = r"C:\path\to\part_one.pdf"
part_two_pdf = r"C:\path\to\part_two.pdf"
final_pdf_path = r"C:\path\to\StatesReport.pdf"
report1 = self.aprx.listReports("States Report")[0] # Attribute List template
report2 = self.aprx.listReports("States Report Summaries")[0] # Summaries only using Basic Summary template
report1.exportToPDF(part_one_pdf, starting_page_number=2, total_page_number=13, page_range_type="RANGE",
                    page_range="1-2")
report2.exportToPDF(part_two_pdf, starting_page_number=3, total_page_number=13, page_range_type="RANGE",
                    page_range="2-11")

pdfMerge = arcpy.mp.PDFDocumentCreate(final_pdf_path) # Creates an empty PDF
pdfMerge.appendPages(cover_page)
pdfMerge.appendPages(part_one_pdf)
pdfMerge.appendPages(part_two_pdf)
pdfMerge.saveAndClose()