.. /* * This file is part of the SavaPage project . * Copyright (c) 2026 Datraverse B.V. * Author: Rijk Ravestein. * * SPDX-FileCopyrightText: (c) 2020 Datraverse B.V. * SPDX-License-Identifier: CC-BY-SA-4.0 * * For more information, please contact Datraverse B.V. at this * address: info@datraverse.com */ .. _ch-webapp-user-main-print: Print ----- .. contents:: Table of Contents :depth: 2 :local: A *tap* on the Printer or Ticket button in the main SafePages view shows the Print dialog. See :ref:`SafePages `. *If just one printer is available, it is automatically selected, and its* :ref:`Printer Settings ` *dialog is opened.* .. note:: The Print dialog enables users to set custom printer and job options. When a single copy with default printer options is required, users can apply :ref:`Fast Print Mode ` (when this mode is configured for a printer). .. _ch-webapp-user-main-print-select-printer: Printer Selection ~~~~~~~~~~~~~~~~~ When a printer was not yet selected a Select Printer dialog is displayed. .. _ss-user-print-select-printer: .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print.png :width: 400 User Web App: Print - Select Printer - A list with a maximum of 5 accessible printers is shown in alphabetic order. Access is according to :ref:`User Roles ` *“Print Job Creator”* and *“Job Ticket Creator”*. - The number of printers shown can be set in the ``webapp.user.printers.quick-search.max`` config item. See |RST_LINK_CONFIG_EDITOR| on how to change this value. - Page navigation buttons are added if more printers are available than shown. - Printers marked with an |image10| icon are secured with :ref:`Hold Print Mode ` Release. An |image11| icon means the printer is secured with :ref:`Direct Print Mode ` Release. Printers marked with a Fast label are (additionally) enabled for :ref:`Fast Print Mode ` Release. - :ref:`Job Ticket Printer ` instances are marked with an |image12| icon. - Printers can be selected by entering part of the printer name or location. In the figure above the text “floor” was entered, resulting in 3 hits. - You select a printer from the list by tapping (clicking) it. This brings the :ref:`Printer Settings ` dialog of the selected printer into view. - The |RST_BUTTON_FAST_PRINT_CLOSING_TIME| button shows the expiration time of Fast Print Release. The time is reset when the Print Dialog opens or the button is pushed. This button is shown when the user is granted access to at least one proxy printer with Fast Print Release enabled. .. note:: When User Role permits access to Job Ticket Printers only, the dialog will show “Ticket” as title. .. _ch-webapp-user-main-printer-settings: Printer Settings ~~~~~~~~~~~~~~~~ .. _ss-user-printer-settings: .. figure:: ../images/manual/screenshots/user/sp-01-03-user-printer-settings.png :width: 400 User Web App: Printer - Settings Set one or more printing options by pushing the pick-list buttons. The options are initialized with the CUPS printer defaults at the start of a user session. Changes made in this dialog are held during a user session, unless they are cleared after a proxy print: see :ref:`Print Job Settings Configuration Properties `. Options are printer specific, and are automatically identified by |PRODUCT_NAME|. See :ref:`Printer Setting Options `. A preview of the Finished Page is shown at the top. A checkbox shows the orientation (Portrait, Landscape) of the first page of the selected document or page range. See :ref:`Print Preview ` for more information. The |RST_BUTTON_INVOICING| button is visible if :ref:`Proxy Print Delegation ` is enabled and the user has :ref:`Print Job Delegate ` role. Pressing it opens the :ref:`Print Delegation Dialog `. Pressing the |RST_BUTTON_JOB| button opens the :ref:`Print Job Settings `. .. note:: Options are validated with :ref:`SPConstraint ` rules, when leaving the Printer Settings dialog with |RST_BUTTON_INVOICING| or |RST_BUTTON_JOB| button. If options present in the CUPS PPD file are missing you can add them, as explained in :ref:`PPD Extensions `. In this way you can add finishing options: .. _ss-user-printer-settings-finishings: .. figure:: ../images/manual/screenshots/user/sp-01-03-user-printer-settings-finishings.png :width: 400 User Web App: Printer - Settings - Finishings Or :ref:`Job Ticket ` Options: .. _ss-user-printer-settings-jobticket: .. figure:: ../images/manual/screenshots/user/sp-01-03-user-printer-settings-jobticket.png :width: 400 User Web App: Printer - Settings - Job Ticket When all paper sizes of SafePages jobs are supported by the printer, each paper size is indicated in green at the top of the dialog, and the |RST_GUILABEL_MEDIA_SOURCE| defaults to |RST_BUTTON_AUTOMATIC|. In this example A4 and A3 are supported. See :ref:`Media Sources ` on how media size is assigned to a printer's media sources. - When a user selects Media Source |RST_BUTTON_AUTOMATIC|, and the target printer supports automatic media source selection, SavaPage will use IPP ``media-source`` attribute value ``auto`` when sending the job to the printer. In this way, even when the job is redirected to a another (compatible) printer, the right media source will be selected automatically, based on media size. .. tip:: If you always want to force a print job to automatic media source selection, irrespective from the |RST_GUILABEL_MEDIA_SOURCE| choice, you can use a :ref:`PPD Extension ` to map all ``media-source`` values to the same PPD ``auto`` value. .. _ch-webapp-user-main-printer-settings-page-scaling: Page Scaling ^^^^^^^^^^^^ If you choose a specific Media Source (holding a specific paper size) that does *not* match all paper sizes of SafePages jobs, a |RST_GUILABEL_PAGE_SCALING| option appears, with an extra page size indicator (with light orange background) at the top of the dialog. Also, a mnemonic text is displayed at the bottom of the :ref:`Print Preview `, with the media size of the chosen Media Source, optionally appended with the “fit” option, if |RST_BUTTON_FIT| is selected. .. _ss-user-printer-settings-page-scaling-fit: .. figure:: ../images/manual/screenshots/user/sp-01-03-user-printer-settings-page-scaling-fit.png :width: 400 User Web App: Print - Page Scaling (Fit) In this example, as the orange A3 indicator shows, the selection of the A4 media source does not fit available A3 page sizes. The default option |RST_BUTTON_FIT| (indicated as solid green square) will scale the deviant pages according to the :ref:`print-scaling ` option ``fit``. .. _ss-user-printer-settings-page-scaling-none: .. figure:: ../images/manual/screenshots/user/sp-01-03-user-printer-settings-page-scaling-none.png :width: 400 User Web App: Print - Page Scaling (None) The |RST_BUTTON_NONE| option (indicated as solid white square) will scale the deviant pages according to the :ref:`print-scaling ` option ``none``. If printed media of document(s) *do* match the assigned media of the (implicitly) selected Media Source, the Page Scaling choice is not shown, and option “None” is applied. .. note:: If the ``print-scaling`` option is restricted to ``none``, the |RST_BUTTON_FIT| option is not shown. See :ref:`print-scaling `. Scaling defaults can be overruled with configuration items shown in the table below: .. list-table:: Page Scaling Configuration Properties :width: 100% :widths: 55 45 :header-rows: 1 * - Configuration property - Description * - webapp.user.proxy-print.scaling.media-match.show - Set to ``Y`` or ``N`` (default) to show/hide Page Scaling choice when media sizes match assigned media of selected media source. * - webapp.user.proxy-print.scaling.media-match.default - Default Page Scaling value when media sizes match assigned media of selected media source. Values: `AUTO`` (default), ``FIT`` or ``NONE``. Value ``AUTO`` applies a 'fit', 'fill' or 'none' method to get an optimized imposition of the document onto the printable area of the requested media size: this is the best method to scale documents with mixed portrait/landscape pages. * - webapp.user.proxy-print.scaling.media-clash.show - Set to ``Y`` (default) or ``N``, to show/hide Page Scaling choice if media sizes do *not* match assigned media of selected media source. * - webapp.user.proxy-print.scaling.media-clash.default - Default Page Scaling value when media sizes do *not* match assigned media of selected media source. Values: ``NONE`` or ``FIT`` (default). See |RST_LINK_CONFIG_EDITOR| on how to set these items. .. _ch-webapp-user-main-printer-settings-print-preview: Print Preview ^^^^^^^^^^^^^ Print Preview helps the user to envision the effect of |RST_GUILABEL_PAGES_PER_SIDE|, |RST_GUILABEL_ROTATE_BY_180_DEGREES|, |RST_GUILABEL_STAPLE| and |RST_GUILABEL_PUNCH| on the Finished-Page. A checkbox at the top right shows the orientation (Portrait, Landscape) of the first page of the selected document or page range. This is the right default in most cases, but the value can be toggled if the user knows for sure that the first page has a different orientation. For example, because he selects a specific page range from SafePages document(s) that have mixed page orientation. Whatever the choice is, SavaPage always checks if the assumption was right. If the actual print orientation turns out different as the one selected in the preview, and orientation dependent options, like staple and punch, were chosen, the user will be prompted to adapt the print settings and try again. .. _ss-user-printer-settings-print-preview-4up: .. figure:: ../images/manual/screenshots/user/sp-01-03-user-printer-settings-print-preview-4up.png :width: 400 User Web App: Print - Preview (4-up, landscape, staple, punch) .. note:: Print Preview can be enabled/disabled by setting ``webapp.number-up-preview.enable`` to ``Y`` (default) or ``N``. .. _ch-webapp-user-main-printer-settings-print-custom-text-icons: Custom Text and Icons ^^^^^^^^^^^^^^^^^^^^^ Option text can be customized, and choices can be preceded by a 16x16 pixel icon. See :ref:`IPP Localization `. An example is shown below. .. _ss-user-printer-settings-custom-icons: .. figure:: ../images/manual/screenshots/user/sp-01-03-user-printer-settings-custom-icons.png :width: 400 User Web App: Printer Options - Custom Icons .. _ch-webapp-user-main-printer-settings-options: Printer Setting Options ^^^^^^^^^^^^^^^^^^^^^^^ The options presented in the Printer Settings dialog are a collection from: - Basic IPP Printer Attributes as shown in the table below. - :ref:`org.savapage.int-page-rotate180 ` - :ref:`Internal IPP - PPD Mapping Extensions ` - :ref:`Internal IPP Job Ticket Extensions ` .. list-table:: Basic IPP Printer Attributes :width: 100% :header-rows: 1 * - Attribute - Value source * - media - CUPS (a subset of common media sizes is used). * - media-source - CUPS or :ref:`PPD Extension `. * - media-type - :ref:`PPD Extension `. * - number-up - CUPS (values 1, 2, 4, 6, 9). * - output-bin - CUPS or :ref:`PPD Extension `. * - print-color-mode - CUPS or :ref:`PPD Extension `. * - printer-resolution - CUPS. * - print-scaling - :ref:`print-scaling `. * - sides - CUPS or :ref:`PPD Extension `. .. important:: User input is validated with :ref:`SPConstraint ` rules. .. _ch-webapp-user-main-print-selected-printer: Selected Printer ~~~~~~~~~~~~~~~~ The selected |RST_GUILABEL_PRINTER| is shown at the top section of the dialog. .. _ss-user-print-selected-printer: .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-selected-printer.png :width: 400 User Web App: Print - Selected Printer - The selected printer is shown as button at the bottom of the Printer section. :ref:`Settings ` of the selected printer can be changed by pushing the button. - The :ref:`Page Size Indicator ` is shown at the top with symbols for the main printer options: - |image13| : color printing. - |image14| : black and white printing. - |image15| : duplex printing. - |image16| : two or more pages on one sheet. - Another printer can be selected by reentering the search text (you can clear the quick search first my pushing the “cross” button at the right). *If just one printer is available no search option is offered.* .. _ch-webapp-user-main-print-print-delegation: |DELEGATEDPRINT| ~~~~~~~~~~~~~~~~ The |DELEGATEDPRINT| Invoicing option is offered in the :ref:`Printer Settings ` and :ref:`Print Job Settings ` dialog when the following conditions are met: - :ref:`Proxy Print Delegation ` is enabled. - The User has :ref:`Print Job Delegate ` role. See |DELEGATEDPRINT| :ref:`Edit `. .. _ch-webapp-user-main-print-job-settings: Print Job Settings ~~~~~~~~~~~~~~~~~~ Print job settings can be entered in the |RST_GUILABEL_JOB| section. .. _ss-user-print-job-settings: .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-job-settings.png :width: 400 User Web App: Print - Job Settings Select an |RST_GUILABEL_ACCOUNT| to which the costs of the job is charged. The account can either be a Personal (default) or a :ref:`Shared Account ` the user has access to. See :ref:`Edit Account `. - |RST_GUILABEL_ACCOUNT| selection is *hidden* if |RST_GUILABEL_COPIES|, collected by :ref:`Delegated Print ` |RST_GUILABEL_INVOICING|, is switched ``On``. Availability of this switch is dependent on configuration property :ref:`webapp.user.proxy-print.delegate-copies-apply-switch `. - Account |RST_BUTTON_PERSONAL| may not be available due restricted :ref:`Personal Print Privileges `. - If a :ref:`Shared Account ` is selected the job will be handled as `Delegated Print `. .. note:: If Job Ticket Labels are enabled and activated for this printer, additional labels like |RST_GUILABEL_DOMAIN|, |RST_GUILABEL_APPLICATION| and |RST_GUILABEL_TAG| can be selected, just as in the :ref:`Job Ticket Print ` dialog. Also see: - :ref:`Configuration Properties `. - :ref:`Proxy Printer Identity `. Selecting a |RST_GUILABEL_DOCUMENT| scope and |RST_GUILABEL_TITLE| for your print job is identical as in :ref:`Document Scope `. The number of |RST_GUILABEL_COPIES| can be entered via the slider control. The “maximum number of copies per job” is set as :ref:`Proxy Print Option `. The number of copies is automatically reset to one (1) after printing. - |RST_GUILABEL_COPIES| selection is *hidden* if `Delegated Print ` |RST_GUILABEL_INVOICING|, is switched ``On``. - If `Delegated Print ` |RST_GUILABEL_INVOICING| is switched ``Off``, and a :ref:`Job Ticket Printer ` is selected, the number of |RST_GUILABEL_COPIES| is not restricted and can thus be entered as text. A selection of SafePages to print can be entered as a range of |RST_GUILABEL_PAGES|. For example: ``1-4,6,8-10,15-``. The value can be a single page, a range of pages, or a collection of page numbers and ranges separated by commas. The pages will always be printed in ascending order, regardless of the order of the pages in the page-ranges option. The page range is automatically emptied after printing. Be aware that the page ordinals are related to the |RST_GUILABEL_SCOPE|. Selecting a |RST_GUILABEL_LETTERHEAD| for your print job is identical as in `User Web App: PDF - Letterhead `. - Depending on :ref:`User Privileges ` the Letterhead section might not be shown. Check one of the :ref:`PDF Filters ` |RST_BUTTON_ECO_PRINT| or |RST_BUTTON_REMOVE_GRAPHICS|. - The |RST_BUTTON_ECO_PRINT|, including discount percentage, must be enabled in :ref:`Eco Print Settings `. - See the Configuration Properties table below on how to disable the |RST_BUTTON_REMOVE_GRAPHICS| filter. The |RST_BUTTON_COLLATE| option is shown if multiple copies are selected and describes how printed material will be organized. For example, if you have a five page document and print multiple copies with collate checked, SavaPage prints pages 1,2,3,4 and 5 in that order and then repeats for each copy. However, if collate is unchecked and you print three copies of those same five pages, SavaPage prints pages in this order: 111, 222, 333, 444, 555. The icons in the checkbox are a mnemonic of the output when the collate option is (un)checked. - If configuration property :ref:`webapp.user.proxy-print.collate.show ` is ``N``, the Collate checkbox is hidden and SavaPage acts as if it was checked. - See :ref:`sheet-collate ` on how to specify the collate option as :ref:`PPD Extension `. If the |RST_BUTTON_PRINT_DOCUMENTS_SEPARATELY| option is checked, each acquired document is printed as a separate job. In this way finishings (like stapling) can be applied per printed document. - This option is *not* shown when the acquired documents are edited (pages have been deleted or rearranged) , or the |RST_GUILABEL_DOCUMENT| scope is restricted to a single document . - If this option is *not* checked, one (1) CUPS job is created. To separate documents on paper output, in case print is in duplex, blank filler pages are inserted in between, so the first page of a next document is on the front page of a new sheet. The same strategy is applied for single-sided n-up print jobs. However, for :ref:`booklet ` printing this strategy is not applied. If the option |RST_BUTTON_DELETE_PAGES_AFTER_PRINTING| is checked, input documents or pages are deleted after the printing command is issued, and an extra option is displayed to select the deletion scope. The option is automatically reset after printing. .. _ss-user-print-job-settings-delete: .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-job-settings-delete.png :width: 400 User Web App: Print - Delete Pages - |RST_BUTTON_ALL_DOCUMENTS|: all input documents are deleted. - |RST_BUTTON_SELECTED_DOCUMENTS|: documents for which pages were printed are deleted. - |RST_BUTTON_SELECTED_PAGES|: all pages selected for printing are deleted. The |RST_BUTTON_DELETE_PAGES_AFTER_PRINTING| option can be preset and disabled for editing in :ref:`Proxy Print `. In that case a fixed text, denoting the action, is (optionally) displayed instead of the checkbox. Press the |RST_BUTTON_PRINT_AND_CLOSE| button to validate and print the job, and close the dialog. .. _ss-user-print-job-confirm: .. tip:: If ``webapp.user.proxy-print.confirm`` :ref:`configuration property ` is ``Y`` the |RST_BUTTON_PRINT_3_DOTS| button is shown to get confirmation about the costs. .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-job-confirm.png :width: 400 User Web App: Print Confirmation If the job is valid, it is printed right away, *unless* it is a Job Ticket or if :ref:`NFC Authentication ` is configured for the printer. In the later case the user must authenticate with an NFC card swipe to release the print job. .. important:: When finishing options (staple, punch, booklet) are selected, and the orientation selected in the :ref:`Print Preview ` differs from one of the documents to be printed, a warning message is shown telling the user to adjust print settings and try again. The message contains information about the selected finishings, number of deviating documents, and a tailored advise. - If just one document is present (selected) for printing the advise is: *“Adjust your print settings and try again”*. - For multiple documents: *“Clear the selection of finishing options, or print the documents separately”*. .. note:: In rare situations, when the host system is under heavy load, and connecting to CUPS fails, a warning message is displayed saying *“The print service is currently unavailable or too busy. Please try again later.”* - In the :ref:`Hold Release ` scenario the job is held so it can be released by the user at a later time without using the User Web App. - In the :ref:`Direct Print Release ` scenario described below the user is prompted to authenticate immediately. - Pending Job Tickets and Hold Print Jobs can be inspected and removed when needed: see :ref:`Hold Print Jobs `. .. warning:: Job Tickets allow unrestricted printing, but printing to “regular” printers may be denied when the number of job pages exceeds a maximum. See the :ref:`Proxy Print Options `. The following configuration properties apply: .. _tbl-config-props-print-job-settings: .. list-table:: Print Job Settings Configuration Properties :width: 100% :widths: 45 55 :header-rows: 1 * - Configuration property - Description * - proxy-print.remove-graphics.enable - Set to ``Y`` or ``N`` (default), to show/hide the |RST_BUTTON_REMOVE_GRAPHICS| option. * - webapp.user.proxy-print.clear-printer - If ``Y``, the selected printer is cleared after each proxy print. If ``N`` (default), the selected printer and options are preserved, and will be used for the next print job. * - webapp.user.proxy-print.clear-delegate - If ``Y``, :ref:`Delegated Print ` data is cleared after each proxy print. If ``N`` (default), this data is preserved, and will be used for the next print job. * - webapp.user.proxy-print.collate.show - Set to ``Y`` (default) or ``N``, to show/hide the |RST_BUTTON_COLLATE| option. If hidden SavaPage acts as if the option was checked. * - webapp.user.proxy-print.confirm - If ``N`` (default), the |RST_BUTTON_PRINT_AND_CLOSE| button is displayed to send the print job immediately and close the dialog box. If ``Y``, the |RST_BUTTON_PRINT_3_DOTS| button is displayed that opens a confirmation dialog box with printing costs and |RST_BUTTON_PRINT_AND_CLOSE| and |RST_BUTTON_CANCEL| buttons. * - webapp.user.proxy-print.separate - The default |RST_BUTTON_PRINT_DOCUMENTS_SEPARATELY| option value, when |RST_BUTTON_ALL_DOCUMENTS| are selected. If ``Y``, a separate print job is created for each vanilla inbox document. If ``N`` (default), one (1) print job is printed of the complete vanilla inbox content. * - webapp.user.proxy-print.separate.enable - Enable the |RST_BUTTON_PRINT_DOCUMENTS_SEPARATELY|. If ``Y``, the option is enabled (shown), if ``N`` (default) it is not. See |RST_LINK_CONFIG_EDITOR| on how to set these items. .. _ch-webapp-user-main-print-job-settings-archive: |PRINT_ARCHIVE| ^^^^^^^^^^^^^^^ An extra option is offered when the :ref:`Document Store ` for |PRINT_ARCHIVE| is enabled, and the user is privileged to select the |RST_BUTTON_ARCHIVE|. See :ref:`User Privileges `. .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-job-settings-archive.png :width: 400 User Web App: Print Archive Option If the user *has* |PRINT_ARCHIVE| permission, but *no* permission to (de)select it, just a text is shown saying the “Print will be archived”. When explaining text is configured to be hidden, as described in the table below, the printed document will silently be archived. .. list-table:: Print Job Archive Configuration Properties :width: 100% :widths: 45 55 :header-rows: 1 * - Configuration property - Description * - webapp.user.doc.store.archive.out.print.prompt - Set to ``Y`` (default) or ``N``, to show/hide a prompt explaining the |RST_BUTTON_ARCHIVE| function. See |RST_LINK_CONFIG_EDITOR| on how to set these properties. .. _ch-webapp-user-main-print-job-settings-journal: |PRINT_JOURNAL| ^^^^^^^^^^^^^^^ If |PRINT_JOURNAL| is enabled and applicable for Printer and User, the Print Job is silently journalled in the :ref:`Document Store `. .. _ch-webapp-user-main-print-direct-print-release: Direct Print Release ~~~~~~~~~~~~~~~~~~~~ If a print job is issued for a printer secured with :ref:`Direct Print Release `, a dialog is shown prompting the user to swipe their card to release the print job. .. _ss-user-print-direct-release: .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-direct-release.png :width: 400 User Web App: Printer - Direct Print Release - The cost of the print job is shown in orange. - A countdown of the remaining seconds for the card swipe is shown in the top right corner of the pop-up. The time limit (seconds) is contained in configuration key ``proxy-print.direct-expiry-secs``. See |RST_LINK_CONFIG_EDITOR| on how to change this value. .. note:: Since the card reader will be mounted near the printer this implements a *secure pull-print* scenario. .. _ch-webapp-user-main-print-full-print-scope-and-jobs: Full Print Scope and Jobs ~~~~~~~~~~~~~~~~~~~~~~~~~ If a user did *not* :ref:`rearrange or delete ` any SafePages and *full* scope is selected without a range of |RST_GUILABEL_PAGES|, each input job is printed as a separate job when *duplex* printing is selected. As a result the first page of new input job will always start on a new sheet. If the |RST_GUILABEL_TITLE| is left blank, the titles of the print jobs will correspond to the titles of the input jobs. If a |RST_GUILABEL_TITLE| is specified it will be used for *all* print jobs. If a user *did* :ref:`rearrange or delete ` any SafePages, the scope is confined to *full* scope and SafePages will always be printed as a single job. When the |RST_GUILABEL_TITLE| is left blank the print job title will be generated according to the timestamp format ``SavaPage-CCYY-MM-DDTHH:MM:SS``. .. _ch-webapp-user-main-print-print-delegation-edit: |DELEGATEDPRINT| Edit ~~~~~~~~~~~~~~~~~~~~~ This dialog is part of the |RST_BUTTON_INVOICING| track, and is started from :ref:`Printer Settings ` or :ref:`Print Job Settings `. It is used to edit |DELEGATEDPRINT|. In a |DELEGATEDPRINT| scenario the user prints as *delegate* on behalf of other users, known as *delegators*. The result is a single job with multiple copies of a document. The total cost of the job is *pro rata* charged to the account of each delegator. *The* |RST_GUILABEL_COPIES| *section at the bottom of the dialog summarizes the selected delegators from the* |RST_GUILABEL_INVOICING| *section at the top.* .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-delegation-edit-copies.png :alt: User Web App: Print Delegation Copies :width: 500px User Web App: Print Delegation Copies - Selection type is marked with one of these icons: - |image17| : User Group. - |image18| : Individual User. - |image19| : Shared Account. - Each selection line shows the number of Members and Copies. The latter is the multiplication of members and the number of copies entered in the Invoicing section. - All *User Group* members are included, *whatever their role*. - *Individual Users* of course have just one member and have :ref:`Print Job Delegator ` role. - *Shared Account* counts unspecified users. Just the number of copies is shown. - The Account column shows where printing costs are charged to: - |image20| : Group Account. - |image21| : Personal Account of Group Members. - |image22| : Shared Account. *The screenshots* from the |RST_GUILABEL_INVOICING| *section, presented in the sections below, explain how the lines in the* |RST_GUILABEL_COPIES| *section were created.* Remember that for items to appear on the various search list: - |RST_GUILABEL_GROUPS| must have :ref:`Print Job Delegator ` role *enabled*. - |RST_GUILABEL_USERS| must have :ref:`Print Job Delegator ` role *enabled*. - |RST_GUILABEL_ACCOUNTS| must be accessible by the Delegate as member of one of the User Groups set in :ref:`Account Access Control `. - *If a Delegate has access to a single Shared Account only, the Account search list is* **not** *displayed, and the single account is implicitly selected.* .. note:: Availability of the option to enter multiple number of copies is dependent on configuration property :ref:`proxy-print.delegate.multiple-member-copies.enable `. .. tip:: |DELEGATEDPRINT| can be integrated with PaperCut. See :ref:`Delegated Print to PaperCut `. .. caution:: After printing, information about copies by "group/user/account" is kept in the financial data, if the cost turns out to be greater than zero. See :ref:`Document List `. If the printing cost is zero, all this information is lost after printing. .. _ch-webapp-user-main-print-print-delegation-edit-add-group-groups: Group Invoicing ^^^^^^^^^^^^^^^ *Select* |RST_BUTTON_GROUP| *to invoice copies for* :ref:`Groups ` *on Group Account*. .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-delegation-edit-add-group-groups.png :alt: User Web App: Delegated Print - Group Invoicing :width: 500px User Web App: Delegated Print - Group Invoicing Availability of this option is dependent on configuration property |br| :ref:`proxy-print.delegate.account.group.enable `. - Enter a part of the group name in the |RST_GUILABEL_GROUPS| quick search field and the first chunk with matching groups will show below. Paging buttons are shown when more chunks are available. - The list shows the Group Name with the ID appended (when it is not already part of the Name). - Group quick search is on both Group Name (sorted) and ID, unless configuration item :ref:`webapp.user.proxy-print.delegator-group.detail ` has value ``NAME``, so display and search is on Group Name (sorted) only , or has value ``ID`` , so display and search is on Group ID (sorted) only. - Note the star button at the left of the quick search field, and at the right of each list entry. Press the star button in a list entry to bookmark a group as “preferred”. Press the star button besides the quick search field to search for “preferred” groups only. This feature is enabled when configuration item :ref:`proxy-print.delegate.groups.preferred.enable ` is ``Y``. - Select one or more |RST_GUILABEL_GROUPS| from the list by tapping them (a green check mark sign will show at the front). - Enter the number of |RST_GUILABEL_COPIES| to be printed for each group member, or press the |RST_BUTTON_3_DOTS| button to enter the total number of :ref:`Group copies `. - Press the |RST_BUTTON_ADD| button to add the groups as delegator. - *The Group Account will be invoiced.* If configuration item :ref:`proxy-print.delegate.group-copies.enable ` is ``Y``, the |RST_BUTTON_3_DOTS| button is visible. When pressed, a pop-up shows where the number of copies for the selected group(s) can be entered. This feature can for instance be used when a group of 20 need only 10 copies, because group members work in pairs. .. _ss-01-03-user-print-delegation-edit-add-group-group-copies: .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-delegation-edit-add-group-group-copies.png :alt: User Web App: Delegated Print - Group copies :width: 500px User Web App: Delegated Print - Group copies .. _ch-webapp-user-main-print-print-delegation-edit-add-user-groups: User Invoicing for Groups ^^^^^^^^^^^^^^^^^^^^^^^^^ *Select* |RST_BUTTON_USER| *to invoice copies for* :ref:`Groups ` *on User Account*. .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-delegation-edit-add-user-groups.png :alt: User Web App: Delegated Print - User Invoicing (Groups) :width: 500px User Web App: Delegated Print - User Invoicing (Groups) - Select one or more |RST_GUILABEL_GROUPS| from the list. - See remarks about Group selection and display in :ref:`previous section `. - Enter the number of |RST_GUILABEL_COPIES| to be printed for each group member. - Press the |RST_BUTTON_ADD| button to add the group members as delegator. - *The Personal Account of each individual group member will be invoiced.* .. _ch-webapp-user-main-print-print-delegation-edit-add-user-users: User Invoicing for Users ^^^^^^^^^^^^^^^^^^^^^^^^ *Select* |RST_BUTTON_USER| *to invoice copies for Individual* :ref:`Users ` *on their User Account*. .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-delegation-edit-add-user-users.png :alt: User Web App: Delegated Print - Personal Invoicing (Users) :width: 500px User Web App: Delegated Print - Personal Invoicing (Users) Availability of this option is dependent on configuration property |br| :ref:`proxy-print.delegate.account.user.enable `. - Select one of the |RST_GUILABEL_GROUPS| to narrow down the search scope. If *no* group is selected the :ref:`All Users ` built-in group is implied. - See remarks about Group selection and display in the :ref:`previous section `. - Search and select one or more |RST_GUILABEL_USERS| from the list. - The list shows the User Name with the ID appended (when it is not already part of the Name). - User quick search is on both User Name (sorted) and ID, unless configuration item :ref:`webapp.user.proxy-print.delegator-user.detail ` has value ``NAME``, so display and search is on User Name (sorted) only , or has value ``ID`` , so display and search is on User ID (sorted) only. - Users can automatically be (un)selected by using the “Select All” toggle at the right-hand side of the search field. - Enter the number of |RST_GUILABEL_COPIES| to be printed for the selected users, and press the |RST_BUTTON_ADD| button to add them as delegator. - *The Personal Account of the selected users will be invoiced.* .. note:: The session user is added in the User List, even when this user does not have Print Delegator role. The session user's Name and ID is highlighted with an orange color. .. _ch-webapp-user-main-print-print-delegation-edit-add-shared-groups: Shared Invoicing for Groups ^^^^^^^^^^^^^^^^^^^^^^^^^^^ *Select* |RST_BUTTON_SHARED| *to invoice copies for* :ref:`Groups ` *on a Shared* :ref:`Account `. .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-delegation-edit-add-shared-groups.png :alt: User Web App: Delegated Print - Shared Account Invoicing (Groups) :width: 500px User Web App: Delegated Print - Shared Account Invoicing (Groups) Availability of the |RST_BUTTON_SHARED| button is dependent on configuration property |br| :ref:`proxy-print.delegate.account.shared.enable ` and on :ref:`Shared Account Access Control `. If the Delegate user does not have access to any shared account by :ref:`User Group ` membership, the button will not show. Availability of the |RST_BUTTON_GROUPS| option is dependent on |br| :ref:`proxy-print.delegate.account.shared.group.enable `. - Select one or more |RST_GUILABEL_GROUPS| from the list. - See remarks about Group selection and display in the :ref:`previous section `. - Select a Shared |RST_GUILABEL_ACCOUNT|. - *Shared Account selection is hidden if just a single account is available.* - Note the star button at the left of the quick search field, and at the right of each list entry. Press the star button in a list entry to bookmark a group as “preferred”. Press the star button besides the quick search field to search for “preferred” accounts only. This feature is enabled when configuration item :ref:`proxy-print.delegate.accounts.preferred.enable ` is ``Y``. - Enter the number of |RST_GUILABEL_COPIES| to be printed, and press the |RST_BUTTON_ADD| button. - *The Shared Account will be invoiced.* .. _ch-webapp-user-main-print-print-delegation-edit-add-shared-extra: Shared Invoicing for Extra Copies ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *Select* |RST_BUTTON_SHARED| *to invoice* |RST_BUTTON_EXTRA| *copies on Shared* :ref:`Account `. Availability of the |RST_BUTTON_SHARED| button is explained in the :ref:`previous ` section. .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-delegation-edit-add-shared-extra.png :alt: User Web App: Print - Delegated Print - Shared Account Invoicing (Extra) :width: 500px User Web App: Print - Delegated Print - Shared Account Invoicing (Extra) Availability of this option is dependent on configuration property |br| :ref:`proxy-print.delegate.account.shared.enable `. - Select a Shared |RST_GUILABEL_ACCOUNT|. - See remarks in the :ref:`previous section `. - Enter the number of |RST_GUILABEL_COPIES| to be printed, and press the |RST_BUTTON_ADD| button. - *The Shared Account will be invoiced.* *As this is the last Invoicing Selection of our example, the full Delegated Print dialog is shown in the screenshot.* .. note:: Once Users and Groups are selected as Delegate they are disabled in the quick search list so they can't be selected a second time. .. _ch-webapp-user-main-print-print-delegation-edit-config-props: Configuration Properties ^^^^^^^^^^^^^^^^^^^^^^^^ The following |DELEGATEDPRINT| configuration properties apply: .. list-table:: |DELEGATEDPRINT| Configuration Properties :width: 100% :widths: 55 45 :header-rows: 1 * - Configuration property - Description * - proxy-print.delegate.account.group.enable - Set to ``Y`` (default) or ``N``, to enable/disable invoicing with |RST_BUTTON_GROUP| Account. * - proxy-print.delegate.account.shared.enable - Set to ``Y`` (default) or ``N``, to enable/disable invoicing with |RST_BUTTON_SHARED| Account. * - proxy-print.delegate.account.shared.group.enable - Set to ``Y`` (default) or ``N``, to enable/disable invoicing with |RST_BUTTON_SHARED| Account for Groups copies. * - proxy-print.delegate.account.user.enable - Set to ``Y`` (default) or ``N``, to enable/disable invoicing with |RST_BUTTON_USER| Account. * - proxy-print.delegate.multiple-member-copies.enable - Set to ``Y`` (default) or ``N``, to enable/disable multiple copies for Groups and Users. If disabled, the number of copies is 1. * - proxy-print.delegate.group-copies.enable - Set to ``Y`` or ``N`` (default), to enable/disable option to assign (overrule) the numberof copies for a group. If enabled, an extra |RST_BUTTON_3_DOTS| button is displayed in the Delegated Print Dialog, at the right of the |RST_BUTTON_ADD| button, that leads to a pop-up where the number of copies for the selected groups can be entered. * - proxy-print.delegate.groups.preferred.enable - Set to ``Y`` (default) or ``N``, to enable/disable option to bookmark delegate groups as preferred. If enabled, an extra “star” button is displayed at the left of the quick group search field, and at the right of each list entry. When the star button in a list entry is pressed, a group is bookmarked as “preferred”. If the star button besides the quick search field is pressed, only “preferred” groups are searched. * - proxy-print.delegate.accounts.preferred.enable - Set to ``Y`` (default) or ``N``, to enable/disable option to bookmark shared accounts as preferred. When enabled, an extra “star” button is displayed at the left of the quick account search field, and at the right of each list entry. If the star button in a list entry is pressed, an account is bookmarked as “preferred”. If the star button besides the quick search field is pressed, “only preferred” accounts are searched. * - webapp.user.proxy-print.delegate-copies-apply-switch - Set to ``Y`` (default) or ``N``, to show/hide an On/Off switch to apply |DELEGATEDPRINT| Copies in the User Web App Print Dialog. If ``N``, |DELEGATEDPRINT| print Invoicing is active when the sum of collected delegator |RST_GUILABEL_COPIES| is greater than zero. * - webapp.user.proxy-print.delegator-user.detail - Set to ``FULL`` (default), ``ID`` or ``NAME``, to show FULL details of User in the |DELEGATEDPRINT| Dialog, or just its ID or NAME. * - webapp.user.proxy-print.delegator-group.detail - Set to ``FULL`` (default), ``ID`` or ``NAME``, to show FULL details of User Group in |DELEGATEDPRINT| Dialog, or just its ID or NAME. See |RST_LINK_CONFIG_EDITOR| on how to set these items. .. _ch-webapp-user-main-print-print-jobticket: |JOBTICKETPRINT| ~~~~~~~~~~~~~~~~ If :ref:`Job Ticket Printer ` instances are present, users with role :ref:`Job Ticket Creator ` can select the |image23| marked printers. .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-jobticket.png :alt: User Web App: Print - Select Job Ticket Printer :width: 400px User User Web App: Print - Select Job Ticket Printer By default, Job Tickets are of Type |RST_BUTTON_PRINT|. .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-jobticket-settings-print.png :alt: User Web App: Print - Job Ticket Settings - Print :width: 400px User Web App: Print - Job Ticket Settings - Print All options for a regular print job apply. The |RST_GUILABEL_TAG| item is a label for Job Tickets. Additional |RST_GUILABEL_DOMAIN| and |RST_GUILABEL_APPLICATION| (use) labels can be configured, as shown in screenshot below. See the :ref:`next section ` on how to configure these items. .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-jobticket-settings-print-items.png :alt: User Web App: Print - Job Ticket Settings - Labels :width: 400px User Web App: Print - Job Ticket Settings - Labels .. note:: The last selected |RST_GUILABEL_DOMAIN| label is saved, and used as default in future user session. You can disable this behavior by setting configuration property ``jobticket.domains.retain`` to ``N``. See :ref:`Configuration Properties `. .. note:: If the |RST_GUILABEL_TITLE| of the Ticket is *not* specified, SavaPage will compose one, based on the |RST_GUILABEL_DOCUMENT| title(s). In this way extra identifying data will be available. If a single document is selected the |RST_GUILABEL_TITLE| will default to the name of this document. When the |RST_GUILABEL_TITLE| is left empty, SavaPage will compose one, based on the |RST_GUILABEL_DOCUMENT| name(s). In this way identifying data will be available. If configured as such, Job Tickets can also be used for |RST_BUTTON_COPY| requests. All printer settings of a regular proxy print apply, as well as some job options. However, SafePages are not needed, and no PDF document will be attached to the ticket. .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-jobticket-settings-copy.png :alt: User Web App: Print - Job Ticket Settings - Copy :width: 400px User Web App: Print - Job Ticket Settings - Copy Users can enter a |RST_GUILABEL_TIME_OF_DELIVERY| and |RST_GUILABEL_REMARKS|. Valid delivery days are displayed at the right. Press the reset icon on the left to reset the time to the default. .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-jobticket-settings.png :alt: User Web App: Print - Job Ticket Settings :width: 400px User Web App: Print - Job Ticket Settings .. note:: The default |RST_GUILABEL_TIME_OF_DELIVERY| and its reset button are *not* displayed if configuration property :ref:`jobticket.delivery-days ` is 0 (zero). After the ticket is sent, the issued Ticket Number is displayed, and the user can view the Job Ticket on the :ref:`Hold Print Jobs ` list. .. figure:: ../images/manual/screenshots/user/sp-01-03-user-print-jobticket-sent.png :alt: User Web App: Print - Job Ticket - Sent :width: 400px User Web App: Print - Job Ticket - Sent In case of a Copy Job, the user will add a note with the Ticket Number to the hard copy original, before handing it to the Job Ticket operator, who will use it for off-the-glass copying according to the specs in the job ticket. A Job Ticket is printed on a central queue and is handled and released by users with role :ref:`Print Job Operator ` in a specialWeb App. See :ref:`Job Tickets Web App `. If the Job Ticket is printed or canceled, the user is optionally notified by email. The following configuration properties apply: .. _ch-webapp-user-main-print-print-jobticket-config-props: Configuration Properties ^^^^^^^^^^^^^^^^^^^^^^^^ .. list-table:: |JOBTICKETPRINT| Configuration Properties :width: 100% :widths: 45 55 :header-rows: 1 * - Configuration property - Description * - | | **Delivery** - * - jobticket.delivery-datetime.enable - Set to ``Y`` (default) or ``N``, to show/hide the |RST_GUILABEL_TIME_OF_DELIVERY| option. If date/time is hidden its value is set by the system to the date/time of the submit. * - jobticket.delivery-time.enable - Set to ``Y`` (default) or ``N``, to show/hide the time part of |RST_GUILABEL_TIME_OF_DELIVERY|. This option is valid if "jobticket.delivery-datetime.enable" is ``Y``. * - jobticket.delivery-days - Default value of the date part of |RST_GUILABEL_TIME_OF_DELIVERY| as days-of-week count after ticket creation date (default = 1). If value is 0 (zero), the date part default and its reset button are not displayed. * - jobticket.delivery-days-min - Minimal value of the date part of |RST_GUILABEL_TIME_OF_DELIVERY| as days-of-week count after ticket creation (default = 1). * - jobticket.delivery-days-of-week - CRON expression with valid delivery dates as days-of-week range (default: MON-FRI). * - jobticket.delivery-day-minutes - Default value of the time part of |RST_GUILABEL_TIME_OF_DELIVERY| on delivery days as minutes after midnight (default: 510). For instance: 8h30m = 8*60+30 = 510. * - | | **Copy Job** - * - jobticket.copier.enable - Set to ``Y`` or ``N`` (default), to enable/disable the creation of a Copy Job Ticket. * - | | **Email notification** - * - jobticket.notify-email.completed.enable - See :ref:`Job Ticket Configuration Properties `. * - jobticket.notify-email.canceled.enable - See :ref:`Job Ticket Configuration Properties `. * - | | **Domain labels** - * - jobticket.domains - A comma separated list of Job Ticket domains to be applied as job ticket number prefix. Each tag on the list is formatted as ``DOM/word``, where ``DOM`` is a unique N-letter upper-case mnemonic, ``/`` is a fixed separator, and ``word`` is a case-sensitive single word used in UI context. E.g. |br| |br| ``A/Domain.A,B/Domain.B,C/Domain.C`` |br| |br| If ``A`` domain is applied, the generated ticket number looks like ``A/EE1-FA3E-6596``. * - jobticket.domains.enable - Set to ``Y`` or ``N`` (default) to enable ``jobticket.domains``. |br| |br| If *enabled*, Job Ticket domains can optionally also be used for regular printers, i.e. printers that do not have |JOBTICKETPRINTER| role. See :ref:`Proxy Printer Identity `. * - jobticket.domains.required - Set to ``Y`` (default) or ``N``, to make usage of a Job Ticket Domain compulsory or optional. * - jobticket.domains.retain - Set to ``Y`` (default) or ``N``, to retain the last selected Domain label and use it as default in a next Job Ticket (this also works for a new User Web App session). * - | | **Application labels** - * - jobticket.uses - A comma separated list of Job Ticket applications (uses) to be applied as job ticket number prefix. Each tag on the list is formatted as ``USE/word``, where ``USE`` is a unique N-letter upper-case mnemonic, ``/`` is a fixed separator, and ``word`` is a case-sensitive single word used in UI context. E.g. |br| |br| ``E/Exam,T/Test`` |br| |br| If ``E`` use is applied in domain ``A``, the generated ticket number looks like "``A/E/EE1-FA3E-6596``". |br| |br| A use item can be restricted for use with one or more domains by appending the domain mnemonics. E.g. ``E/Exam/A/C`` restricts the ``E/Exam`` use to domains "``A``" and ``C``. * - jobticket.uses.enable - Set to ``Y`` or ``N`` (default) to enable ``jobticket.uses``. |br| |br| If *enabled*, Job Ticket uses can optionally also be used for regular printers, i.e. printers that do not |JOBTICKETPRINTER| role. See :ref:`Proxy Printer Identity `. * - jobticket.uses.required - Set to ``Y`` (default) or ``N``, to make usage of a Job Ticket Usecompulsory or optional. * - | | **Tag labels** - * - jobticket.tags - A comma separated list of Job Ticket tags to be applied as job ticket number prefix. Each tag on the list is formatted as ``TAG/word``, where ``TAG`` is a unique N-letter upper-case mnemonic, ``/`` is a fixed separator, and ``word`` is a case-sensitive single word used in UI context. E.g. |br| |br| ``MATH/Maths,PHYS/Physics,CHEM/Chemistry`` |br| |br| If ``CHEM`` tag is applied for use ``E`` in domain ``A``, a generated ticket number looks like |br| |br| ``A/E/CHEM/EE1-FA3E-6596`` |br| |br| A tag item can be restricted for use with one or more domains by appending the domain mnemonics. E.g. |br| |br| ``PHYS/Physics/A/C`` restricts the ``PHYS/Physics`` tag to domains ``A`` and ``C``. * - jobticket.tags.1 - An extension of configuration property ``jobticket.tags``. * - jobticket.tags.enable - Set to ``Y`` or ``N`` (default) to enable ``jobticket.tags``. |br| |br| If *enabled*, Job Ticket tags can optionally also be used for regular printers, i.e. printers that do not have |JOBTICKETPRINTER| role. See :ref:`Proxy Printer Identity `. * - jobticket.tags.required - Set to ``Y`` (default) or ``N``, to make usage of a Job Ticket Tag compulsory or optional. See |RST_LINK_CONFIG_EDITOR| on how to set these items. .. /* * Images */ .. |image10| image:: ../images/manual/device-card-reader-16x16.png :width: 16px .. |image11| image:: ../images/manual/device-card-reader-terminal-16x16.png :width: 16px .. |image12| image:: ../images/manual/printer-jobticket-32x32-no-alpha.png :width: 16px .. |image13| image:: ../images/manual/screenshots/user/sp-01-00-user-main-footer-print-color.png :width: 25px .. |image14| image:: ../images/manual/screenshots/user/sp-01-00-user-main-footer-print-grayscale.png :width: 25px .. |image15| image:: ../images/manual/screenshots/user/sp-01-00-user-main-footer-print-duplex.png :width: 25px .. |image16| image:: ../images/manual/screenshots/user/sp-01-00-user-main-footer-print-n-up.png :width: 25px .. |image17| image:: ../images/manual/famfamfam-silk_group-no-alpha.png :width: 16px .. |image18| image:: ../images/manual/famfamfam-silk_user_gray-no-alpha.png :width: 16px .. |image19| image:: ../images/manual/famfamfam-silk_tag_green-no-alpha.png :width: 16px .. |image20| image:: ../images/manual/famfamfam-silk_group-no-alpha.png :width: 16px .. |image21| image:: ../images/manual/famfamfam-silk_user_gray-no-alpha.png :width: 16px .. |image22| image:: ../images/manual/famfamfam-silk_tag_green-no-alpha.png :width: 16px .. |image23| image:: ../images/manual/printer-jobticket-32x32-no-alpha.png :width: 16px