Skip to content

Commit

Permalink
Remove illegal characters from layout name
Browse files Browse the repository at this point in the history
Fixes #48
  • Loading branch information
DelazJ committed Dec 10, 2021
1 parent b7c52fc commit 5507875
Showing 1 changed file with 12 additions and 7 deletions.
19 changes: 12 additions & 7 deletions MapsPrinter/processor.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,14 @@
__revision__ = '$Format:%H$'

import os.path
from qgis.core import QgsProject
from qgis.core import (QgsFeedback,
QgsFileUtils,
QgsLayoutExporter,
QgsProject,
)
from qgis.PyQt.QtCore import QSettings
from qgis.PyQt.QtGui import QImageWriter

from qgis.core import QgsLayoutExporter, QgsFeedback

class Processor:
"""
Utilities for managing layout export components
Expand Down Expand Up @@ -100,6 +102,9 @@ def exportCompo(self, cView, folder, title, extension, prefix=False, feedback=No
# Refresh the layout before printing
exporter.layout().refresh()

# Sanitize output file name, removing illegal characters
title = QgsFileUtils.stringToSafeFilename(title)

if myAtlas.enabled():
if feedback is None:
feedback = QgsFeedback()
Expand Down Expand Up @@ -127,20 +132,20 @@ def exportCompo(self, cView, folder, title, extension, prefix=False, feedback=No
if prefix:
myAtlas.setFilenameExpression(u"'{}_'||{}".format(QgsProject.instance().baseName(), user_expression ))

current_fileName = myAtlas.filenameExpression()
current_filename = myAtlas.filenameExpression()

try:
# Export atlas to multiple pdfs
if extension =='.pdf':
result, error = exporter.exportToPdfs(myAtlas, os.path.join(folder, current_fileName), exportSettings, feedback)
result, error = exporter.exportToPdfs(myAtlas, os.path.join(folder, current_filename), exportSettings, feedback)

# Export atlas to svg format
elif extension =='.svg':
result, error = exporter.exportToSvg(myAtlas, os.path.join(folder, current_fileName), exportSettings, feedback)
result, error = exporter.exportToSvg(myAtlas, os.path.join(folder, current_filename), exportSettings, feedback)

# Export atlas to image format
else:
result, error = exporter.exportToImage(myAtlas, os.path.join(folder, current_fileName), extension, exportSettings, feedback)
result, error = exporter.exportToImage(myAtlas, os.path.join(folder, current_filename), extension, exportSettings, feedback)

finally:
# Reset to the user default expression
Expand Down

0 comments on commit 5507875

Please sign in to comment.