Краткая информация
Объект 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) | 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) | String |
compress_vector_graphics | Логический параметр, управляющий сжатием векторных и текстовых частей выходного файла. Сжатие изображения определяется отдельно. (Значение по умолчанию — True) | Boolean |
image_compression | Строка, которая определяет схему сжатия, используемую для сжатия изображения или растровых данных в выходном файле.
(Значение по умолчанию — 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, символы все равно будут отображаться корректно.
Пример кода
В следующем списке выполняется выбор по имени отчета 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")
Следующий скрипт исправляет поврежденный источник данных отчета и сохраняет проект.
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()
В следующем скрипте используется класс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()