本文整理汇总了Python中safe.report.impact_report.ImpactReport.print_map_to_pdf方法的典型用法代码示例。如果您正苦于以下问题:Python ImpactReport.print_map_to_pdf方法的具体用法?Python ImpactReport.print_map_to_pdf怎么用?Python ImpactReport.print_map_to_pdf使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类safe.report.impact_report.ImpactReport
的用法示例。
在下文中一共展示了ImpactReport.print_map_to_pdf方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_print_default_template
# 需要导入模块: from safe.report.impact_report import ImpactReport [as 别名]
# 或者: from safe.report.impact_report.ImpactReport import print_map_to_pdf [as 别名]
def test_print_default_template(self):
"""Test printing report to pdf using default template works."""
impact_layer_path = test_data_path(
'impact', 'population_affected_entire_area.shp')
layer, _ = load_layer(impact_layer_path)
# noinspection PyUnresolvedReferences
QgsMapLayerRegistry.instance().addMapLayer(layer)
# noinspection PyCallingNonCallable
rect = QgsRectangle(106.8194, -6.2108, 106.8201, -6.1964)
CANVAS.setExtent(rect)
CANVAS.refresh()
template = resources_path(
'qgis-composer-templates', 'inasafe-portrait-a4.qpt')
report = ImpactReport(IFACE, template, layer)
out_path = unique_filename(
prefix='map_default_template_test',
suffix='.pdf',
dir=temp_dir('test'))
report.print_map_to_pdf(out_path)
# Check the file exists
message = 'Rendered output does not exist: %s' % out_path
self.assertTrue(os.path.exists(out_path), message)
# Check the file is not corrupt
message = 'The output file %s is corrupt' % out_path
out_size = os.stat(out_path).st_size
self.assertTrue(out_size > 0, message)
# Check the components in composition are default components
if qgis_version() < 20500:
safe_logo = report.composition.getComposerItemById(
'safe-logo').pictureFile()
north_arrow = report.composition.getComposerItemById(
'north-arrow').pictureFile()
org_logo = report.composition.getComposerItemById(
'organisation-logo').pictureFile()
else:
safe_logo = report.composition.getComposerItemById(
'safe-logo').picturePath()
north_arrow = report.composition.getComposerItemById(
'north-arrow').picturePath()
org_logo = report.composition.getComposerItemById(
'organisation-logo').picturePath()
expected_safe_logo = resources_path(
'img', 'logos', 'inasafe-logo-url.svg')
expected_north_arrow = resources_path(
'img', 'north_arrows', 'simple_north_arrow.png')
expected_org_logo = resources_path('img', 'logos', 'supporters.png')
message = 'The safe logo path is not the default one'
self.assertEqual(expected_safe_logo, safe_logo, message)
message = 'The north arrow path is not the default one'
self.assertEqual(expected_north_arrow, north_arrow, message)
message = 'The organisation logo path is not the default one'
self.assertEqual(expected_org_logo, org_logo, message)
示例2: test_custom_logo
# 需要导入模块: from safe.report.impact_report import ImpactReport [as 别名]
# 或者: from safe.report.impact_report.ImpactReport import print_map_to_pdf [as 别名]
def test_custom_logo(self):
"""Test that setting user-defined logo works."""
LOGGER.info('Testing custom_logo')
impact_layer_path = test_data_path(
'impact', 'population_affected_entire_area.shp')
layer, _ = load_layer(impact_layer_path)
# noinspection PyUnresolvedReferences,PyArgumentList
QgsMapLayerRegistry.instance().addMapLayer(layer)
# noinspection PyCallingNonCallable
rect = QgsRectangle(106.8194, -6.2108, 106.8201, -6.1964)
CANVAS.setExtent(rect)
CANVAS.refresh()
template = resources_path(
'qgis-composer-templates', 'a4-portrait-blue.qpt')
report = ImpactReport(IFACE, template, layer)
# Set custom logo
custom_logo_path = resources_path('img', 'logos', 'supporters.png')
report.organisation_logo = custom_logo_path
out_path = unique_filename(
prefix='map_custom_logo_test', suffix='.pdf', dir=temp_dir('test'))
report.print_map_to_pdf(out_path)
# Check the file exists
message = 'Rendered output does not exist: %s' % out_path
self.assertTrue(os.path.exists(out_path), message)
# Check the file is not corrupt
message = 'The output file %s is corrupt' % out_path
out_size = os.stat(out_path).st_size
self.assertTrue(out_size > 0, message)
# Check the organisation logo in composition sets correctly to
# logo-flower
if qgis_version() < 20500:
custom_img_path = report.composition.getComposerItemById(
'organisation-logo').pictureFile()
else:
custom_img_path = report.composition.getComposerItemById(
'organisation-logo').picturePath()
message = 'The custom logo path is not set correctly'
self.assertEqual(custom_logo_path, custom_img_path, message)
示例3: build_report
# 需要导入模块: from safe.report.impact_report import ImpactReport [as 别名]
# 或者: from safe.report.impact_report.ImpactReport import print_map_to_pdf [as 别名]
def build_report(cli_arguments):
"""Produces pdf products.
To be called after shapefile has been written into
arguments.output_file.
.. versionadded:: 3.2
:param cli_arguments: User inputs.
:type cli_arguments: CommandLineArguments
:raises: Exception
"""
try:
LOGGER.info('Building a report')
impact_layer = get_layer(cli_arguments.output_file, 'Impact Layer')
hazard_layer = get_layer(cli_arguments.hazard, 'Hazard Layer')
layer_registry = QgsMapLayerRegistry.instance()
layer_registry.removeAllMapLayers()
extra_layers = [hazard_layer]
layer_registry.addMapLayer(impact_layer)
layer_registry.addMapLayers(extra_layers)
CANVAS.setExtent(impact_layer.extent())
CANVAS.refresh()
report = ImpactReport(
IFACE, cli_arguments.report_template, impact_layer,
extra_layers=extra_layers)
report.extent = CANVAS.fullExtent()
LOGGER.debug(os.path.splitext(cli_arguments.output_file)[0] + '.pdf')
map_path = report.print_map_to_pdf(
os.path.splitext(cli_arguments.output_file)[0] + '.pdf')
print "Impact Map : " + map_path
table_path = report.print_impact_table(
os.path.splitext(cli_arguments.output_file)[0] + '_table.pdf')
print "Impact Summary Table : " + table_path
layer_registry.removeAllMapLayers()
except Exception as exception:
print exception.message
print exception.__doc__
raise RuntimeError
示例4: build_report
# 需要导入模块: from safe.report.impact_report import ImpactReport [as 别名]
# 或者: from safe.report.impact_report.ImpactReport import print_map_to_pdf [as 别名]
def build_report(cli_arguments):
"""Produces pdf products.
To be called after shapefile has been written into
arguments.output_file.
.. versionadded:: 3.2
:param cli_arguments: User inputs.
:type cli_arguments: CommandLineArguments
:raises: Exception
"""
try:
LOGGER.info("Building a report")
basename, ext = os.path.splitext(cli_arguments.output_file)
if ext == ".shp":
impact_layer = QgsVectorLayer(cli_arguments.output_file, "Impact Layer", "ogr")
elif ext == ".tif":
impact_layer = QgsRasterLayer(cli_arguments.output_file, "Impact Layer")
layer_registry = QgsMapLayerRegistry.instance()
layer_registry.removeAllMapLayers()
layer_registry.addMapLayer(impact_layer)
CANVAS.setExtent(impact_layer.extent())
CANVAS.refresh()
report = ImpactReport(IFACE, cli_arguments.report_template, impact_layer)
LOGGER.debug(os.path.splitext(cli_arguments.output_file)[0] + ".pdf")
map_path = report.print_map_to_pdf(os.path.splitext(cli_arguments.output_file)[0] + ".pdf")
print "Impact Map : " + map_path
table_path = report.print_impact_table(os.path.splitext(cli_arguments.output_file)[0] + "_table.pdf")
print "Impact Summary Table : " + table_path
layer_registry.removeAllMapLayers()
except Exception as exception:
print exception.message
print exception.__doc__
raise RuntimeError