- starting to work to a general Print function; for now it will generate PDF files; currently it works only for one object not for a selection

- added shortcut key CTRL+P for printing to PDF method
This commit is contained in:
Marius Stanciu
2019-12-19 17:15:41 +02:00
parent 80f1d30a28
commit 284d500073
5 changed files with 42 additions and 23 deletions

View File

@@ -1813,10 +1813,11 @@ class App(QtCore.QObject):
self.ui.menufileexportdxf.triggered.connect(self.on_file_exportdxf)
self.ui.menufile_print.triggered.connect(lambda: self.on_file_save_objects_pdf(use_thread=True))
self.ui.menufilesaveproject.triggered.connect(self.on_file_saveproject)
self.ui.menufilesaveprojectas.triggered.connect(self.on_file_saveprojectas)
self.ui.menufilesaveprojectcopy.triggered.connect(lambda: self.on_file_saveprojectas(make_copy=True))
self.ui.menufilesave_object_pdf.triggered.connect(self.on_file_save_object_pdf)
self.ui.menufilesavedefaults.triggered.connect(self.on_file_savedefaults)
self.ui.menufileexportpref.triggered.connect(self.on_export_preferences)
@@ -10322,19 +10323,26 @@ class App(QtCore.QObject):
self.set_ui_title(name=self.project_filename)
self.should_we_save = False
def on_file_save_object_pdf(self, use_thread=True):
def on_file_save_objects_pdf(self, use_thread=True):
self.date = str(datetime.today()).rpartition('.')[0]
self.date = ''.join(c for c in self.date if c not in ':-')
self.date = self.date.replace(' ', '_')
try:
obj_active = self.collection.get_active()
obj_name = _(str(obj_active.options['name']))
obj_selection = self.collection.get_selected()
if len(obj_selection) == 1:
obj_name = str(obj_selection[0].options['name'])
else:
obj_name = _("FlatCAM objects print")
except AttributeError as err:
log.debug("App.on_file_save_object_pdf() --> %s" % str(err))
self.inform.emit('[ERROR_NOTCL] %s' % _("No object selected."))
return
if not obj_selection:
self.inform.emit('[ERROR_NOTCL] %s' % _("No object selected."))
return
filter_ = "PDF File (*.PDF);; All Files (*.*)"
try:
filename, _f = QtWidgets.QFileDialog.getSaveFileName(
@@ -10354,17 +10362,20 @@ class App(QtCore.QObject):
return
if use_thread is True:
self.worker_task.emit({'fcn': self.save_pdf, 'params': [filename, obj_name]})
self.worker_task.emit({'fcn': self.save_pdf, 'params': [filename, obj_name, obj_selection]})
else:
self.save_pdf(filename, obj_name)
self.save_pdf(filename, obj_name, obj_selection)
# self.save_project(filename)
if self.defaults["global_open_style"] is False:
self.file_opened.emit("pdf", filename)
self.file_saved.emit("pdf", filename)
def save_pdf(self, file_name, obj_name):
self.film_tool.export_positive(obj_name=obj_name, box_name=obj_name, filename=file_name, ftype='pdf')
def save_pdf(self, file_name, obj_name, obj_selection):
if len(obj_selection) == 1:
self.film_tool.export_positive(obj_name=obj_name, box_name=obj_name, filename=file_name, ftype='pdf')
else:
self.inform.emit('[WARNING_NOTCL] %s' % _("Multiple objects print not implemented yet."))
def export_svg(self, obj_name, filename, scale_stroke_factor=0.00):
"""

View File

@@ -15,6 +15,8 @@ CAD program, and create G-Code for Isolation routing.
- in 2-Sided Tool fixed the Reset Tool button handler to reset the bounds value too; changed a string
- added Preferences values for PDF margins when saving text in Code Editor as PDF
- when clicking Cancel in Preferences now the values are reverted to what they used to be before opening Preferences tab and start changing values
- starting to work to a general Print function; for now it will generate PDF files; currently it works only for one object not for a selection
- added shortcut key CTRL+P for printing to PDF method
18.12.2019

View File

@@ -240,6 +240,9 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
# Separator
self.menufile.addSeparator()
self.menufile_print = QtWidgets.QAction(
QtGui.QIcon(self.app.resource_location + '/printer32.png'), '%s\tCTRL+P' % _('Print (PDF)'))
self.menufile.addAction(self.menufile_print)
self.menufile_save = self.menufile.addMenu(QtGui.QIcon(self.app.resource_location + '/save_as.png'), _('Save'))
@@ -260,11 +263,6 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.menufile_save.addSeparator()
# Save Object PDF
self.menufilesave_object_pdf = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/pdf32.png'),
_('Save Object as PDF ...'), self)
self.menufile_save.addAction(self.menufilesave_object_pdf)
# Separator
self.menufile.addSeparator()
@@ -1381,18 +1379,22 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
<td height="20"><strong>CTRL+G</strong></td>
<td>&nbsp;%s</td>
</tr>
<tr height="20">
<td height="20"><strong>CTRL+N</strong></td>
<td>&nbsp;%s</td>
</tr>
<tr height="20">
<td height="20"><strong>CTRL+M</strong></td>
<td>&nbsp;%s</td>
</tr>
<tr height="20">
<td height="20"><strong>CTRL+N</strong></td>
<td>&nbsp;%s</td>
</tr>
<tr height="20">
<td height="20"><strong>CTRL+O</strong></td>
<td>&nbsp;%s</td>
</tr>
<tr height="20">
<td height="20"><strong>CTRL+P</strong></td>
<td>&nbsp;%s</td>
</tr>
<tr height="20">
<td height="20"><strong>CTRL+Q</strong></td>
<td>&nbsp;%s</td>
@@ -1579,8 +1581,8 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
# CTRL section
_("Select All"), _("Copy Obj"), _("Open Tools Database"),
_("Open Excellon File"), _("Open Gerber File"), _("New Project"), _("Distance Tool"),
_("Open Project"), _("PDF Import Tool"), _("Save Project As"), _("Toggle Plot Area"),
_("Open Excellon File"), _("Open Gerber File"), _("Distance Tool"), _("New Project"),
_("Open Project"), _("Print (PDF)"), _("PDF Import Tool"), _("Save Project As"), _("Toggle Plot Area"),
# SHIFT section
_("Copy Obj_Name"),
@@ -2671,18 +2673,22 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
if key == QtCore.Qt.Key_G:
self.app.on_fileopengerber()
# Create New Project
if key == QtCore.Qt.Key_N:
self.app.on_file_new_click()
# Distance Tool
if key == QtCore.Qt.Key_M:
self.app.distance_tool.run()
# Create New Project
if key == QtCore.Qt.Key_N:
self.app.on_file_new_click()
# Open Project
if key == QtCore.Qt.Key_O:
self.app.on_file_openproject()
# Open Project
if key == QtCore.Qt.Key_P:
self.app.on_file_save_objects_pdf(use_thread=True)
# PDF Import
if key == QtCore.Qt.Key_Q:
self.app.pdf_tool.run()

BIN
share/printer16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

BIN
share/printer32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 818 B