web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Small and medium business | Business Central, N...
Unanswered

PRINTING options using 16.x Web Client

(2) ShareShare
ReportReport
Posted on by

This post has the goal to address FAQ related to several printing options within web client.

NOTE: this community post refers as latest update considering version 16.x.

 

First differentiation has to be done between SaaS (cloud based) and On-Premise deployment

 

Dynamics 365 Business Central SaaS (16.x)

  1. Client side direct Printing is allowed through cloud printer extensions. It is not possible to add network or local printers with SaaS.

Cloud printers typically accept PDF formats as attachment of a PDF file sent over a specific address.

EMAIL PRINTER is the out-of-the-box generic cloud printer service that will enable sending an email to a specific address with attached PDF file.

This is performed through print jobs and requires SMTP setup.

pastedimage1594393824955v1.png

 

  1. Find Printer Extension in the AppSource marketplace.

Just visit

https://appsource.microsoft.com/en-us/marketplace/apps?product=dynamics-365%3Bdynamics-365-business-central&page=1

As of now, below a couple of them as example.

 pastedimage1594393943930v2.png

  1. Create your own Cloud Printer Extension

As described herehttps://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-reports-printing

 

  1. Custom development solutions through Azure Functions.

These are also possible as per https://demiliani.com/2019/01/29/dynamics-365-business-central-and-direct-printing/

 

  1. Server side printing (Schedule A Report feature) is not allowed for SaaS deployment.

See below the typical info message received when trying to select a server printer

 pastedimage1594393978032v3.png

 

NOTE: this might be submitted to changes to open for cloud printers through printer extensions also server side.

 

Dynamics 365 Business Central On-Premise (up to 16.x)

  1. Client side direct Printing is allowed through cloud printer extensions.

 

  1. Since version 16.x, it is possible to add network (local) printers but these will not print directly client side and are meant to be used server side

The same assumption proposed for SaaS, then, is valid with a very important exception.

Server side printers (local to the server or network ones) are mapped in the Printer Management table and these are shown by default.

See below a typical example.

 pastedimage1594394100607v4.png

Local and network printers added in the Printer Management catalogue does not allow for client side printing.

The scope of unblocking local and network printer scenarios in Printer Management table is to redirect and load the specific printer setup when enabling server side printing feature through schedule a report feature.

This could be a combination of Printer Management and Printer Selections.

Just as example, if setting up the first network printer (\\we-azprn-01a\ITA-MIL-02) as dedicated printer for a specific report in the printer selection by adding the following record

 pastedimage1594394139383v5.png

This will trigger the printer to be selected when choosing the print option when scheduling a report server side while does not have any influence client side unless being shown as “Selected Printer” in the request page. Again, this is the selected printer to be used when you SCHEDULE a report server side and does not influence on browser printing (when you click the PRINT button in the request page)

To find more information, please visit

https://docs.microsoft.com/en-us/dynamics365/business-central/ui-specify-printer-selection-reports

 

  1. “Selected Printer” field in client side request page it is used to show the selected printer within report selection that could be used for server side printing.

Below a simple example

pastedimage1594394271493v6.png

Once again, what is shown here is the selected printer that is chosen for server side printing.

Server side printing is enabled by using Schedule option in the request page.

NOTE: Schedule a report feature will default to the appropriate printer added in the printer selection page starting from 16.4 (August 2020).

 

  1. IMPORTANT: Selected Printer to be used server side does not influence client side browser printer page.

 Whenever clicking PRINT in the report request page then a modal browser printer page is open.

This is totally upon how browser is selecting the local printing experience. It might typically select the last printer chosen when printing or apply the default printer installed locally at first run. It depends on the browser of your choice.

In any case, the Selected Printer shown in the request page does not have any influence nor trigger anything within the client side context if this is a local printer from Printer Management list.

Local printers will have exactly the same behavior as if Selected Printer is set to "Browser".

If Selected Printer is a Cloud Printer then the application will apply direct printing to the specific cloud printer service.

 This is also duly described here

https://docs.microsoft.com/en-us/dynamics365/business-central/ui-work-report?branch=master#PrintReport

pastedimage1594394462811v7.png

  1. Print using system dialog will apply default printer settings and select the local printer.

 

Expanding the More Settings section, you might see that you could also enable the classic Printer dialog (CTRL+SHIFT+P) as it was in earlier versions with Windows Client.

 

 pastedimage1594394485373v8.png

System dialog will open selecting the local default printer and will not transport any of the previous printer parameters, no matter if they are changed or not.

 

  1. Find Printer Extension in the AppSource marketplace.

Just visit

https://appsource.microsoft.com/en-us/marketplace/apps?product=dynamics-365%3Bdynamics-365-business-central&page=1

Cloud marketplace ISVs typically also have the same extension add-on also ready to be delivered on-premises. Investigate the market to find out the best solution that would fits also your on-premises solution.

 

  1. Create your own Cloud Printer Extension

Same assumption for SaaS is valid for On-Premises. Described here:

https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-reports-printing

 

  1. Custom development solutions through Azure Functions.

These are also possible as per https://demiliani.com/2019/01/29/dynamics-365-business-central-and-direct-printing/

NOTE: this blog post applies to any web client version that makes use of HttpClient data type (Dynamics NAV 2018 onwards). You might adapt the blog post and apply .NET interop calls with even earlier versions.

 

  1. Server side direct printing (Schedule A Report feature) is fully allowed for on-premise deployment. The experience is now fully enabled to print server side since cumulative update 15.3 where printers virtual table has been rewritten. The experience has also been enhanced with Printer Management page in version 16.x.

Printing server side is always warmly recommended with on-premises deployment for several reasons:

  1. Better performance (it does not have any resource demanding UI facade)
  2. More resources (runs server side)
  3. Runs unattended (users do not have to wait for the printing job to finish to do other tasks)
  4. Direct, not interactive, printing (as per a.)

NOTE: Schedule a report feature will default to the appropriate printer added in the printer selection page starting from 16.4 (August 2020).

I have the same question (0)
  • hverheij Profile Picture
    55 on at

    Hi,

    I tried creating sort of a printer extension, but I noticed that when the printer selection finds a printer and the user clicks on the 'Preview' button on the request page, the 'OnAfterDocumentPrintReady' event is triggered. If it does not find a printer selection then it is not triggered. In the event you can't see in payload that the preview button is clicked.

    In my opinion the event should only be triggered when the 'Print' button is clicked.

    Btw: if a cloud printer is used the event is not triggered when the 'Preview' button is clicked.

    Kind regards, Henry

  • Frederic Vercaemst Profile Picture
    5 on at

    If I'd like to immediately print a document without UI via code (e.g. print x reports when releasing a document) - always ran server side, to ensure the printernam is taken from the printer selections - what would be the best options?

    Report.run / report.print seem no valid option, since they could run client side (and thus ignore the printername). I was thinking of enqueing a job queue entry (SchedulePrintJobQueueEntry, with the overhead of the job queue framework) or to use the TASKSCHEDULER.CreateTask instead. Any recommendations?

  • THE Italian Profile Picture
    on at

    That should be fairly easy, I think. Let me split this into two sections.

    Non Interactive printing after gathering request page params.

    Instead of chosing Print, user has to choose Send To... and select schedule.

    It will be shown the Schedule a Report page (default PDF) then select PRINT and it will take the printer selections one (since 16.4).

    Completely non interactive printing.

    Look at what the page Schedule a Report does and mimic the same way through code.

    Shouldn't be that complicate (maybe worth another blog...) for you, Frederic.

    Do not remember if it still goes through standard Job Queue / background sessions or send this through taskscheduler.

    In any case, I would stick with was the standard do to be consistent (same experience with or without UI)

  • THE Italian Profile Picture
    on at

    Sorry for the late response, Henry, I guess you have already gone through MS Support. Those are all valid inquiries / suggestions.

  • hverheij Profile Picture
    55 on at

    I tried to have it fixed by Microsoft, but they have just stopped responding after a while.I guess we'll just have to live with it.

    In the mean time we noticed another issue. When you print a label via a background process (by for example scheduling it) the label is not printed correctly. It looks as if it is shifted a bit higher and more to the left. Whent printed directly from the request page and then through the browsers print page, the label is printed correctly.

    We have logged a new issue for that at microsoft.

    Kind regards, Henry

  • Claus Macali.dk Profile Picture
    1,045 on at

    Hi

    When try add this network link sampel (\\we-azprn-01a\ITA-MIL-02) in the printer in , i get a failuer , printer name not found

    So try to add this in print management only email adresse, works thier

    So where to add (\\we-azprn-01a\ITA-MIL-02), on the server side ?

  • hverheij Profile Picture
    55 on at

    Assuming this is about an On Prem situation. If the network printer is available on your local host you should be able to see the printer when you select a printer in the printer selections.

    If you want to print something in the background the printer has to be installed on the server as well and available under the user on which the instance is running.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > Small and medium business | Business Central, NAV, RMS

#1
OussamaSabbouh Profile Picture

OussamaSabbouh 3,226

#2
Jainam M. Kothari Profile Picture

Jainam M. Kothari 2,047 Super User 2025 Season 2

#3
YUN ZHU Profile Picture

YUN ZHU 1,257 Super User 2025 Season 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans