[FOLIO-1441] SPIKE: How to print slips? Created: 27/Aug/18  Updated: 12/Nov/18  Resolved: 01/Oct/18

Status: Closed
Project: FOLIO
Components: None
Affects versions: None
Fix versions: None

Type: Story Priority: P2
Reporter: Marc Johnson Assignee: Darcy Branchini
Resolution: Done Votes: 0
Labels: sprint47, sprint48
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original estimate: Not Specified

Attachments: Microsoft Word Technical Document - Printing FOLIO.docx     PNG File chalmers-receipt-printer1.png     PNG File chalmers-receipt-printer2.png    
Issue links:
Blocks
blocks UICHKIN-16 Print Hold Slip at Check In Closed
blocks UICHKIN-60 Print Transit Slip at Check-in Closed
Relates
relates to UXPROD-1112 Staff Slips: Print Closed
Sprint:
Development Team: Prokopovych

 Description   

In order to be able to print hold or transit slips (and possibly other documents) as unobtrusively as to the current user as possible, we need a mechanism for printing that happens automatically without a (per-document?) printer dialog, additional confirmation or setup

Acceptance criteria:

  • Work with PO (Darcy Branchini) and relevant tech folks to design solution to meet needs of user stories linked to this spike
  • Document the plan in this issue


 Comments   
Comment by Cate Boerema (Inactive) [ 28/Aug/18 ]

This is blocking the print slip work. Marc Johnson, do know who might be the appropriate assignee? Is it you or maybe Michal Kuklis?

Comment by Marc Johnson [ 28/Aug/18 ]

Cate Boerema Jakub Skoczen I don't know who an appropriate assignee might be. Michal Kuklis and I have been involved for a while in UICHKIN-16 Closed (although I haven't done any work related to this area, only asked some questions) so it could start with us.

Darcy Branchini has provided lots of information about the situation and challenges in UICHKIN-16 Closed , maybe we could start by transposing some of this as context to this issue?

I believe Michal Kuklis has proposed a tactical solution that at least allows the printing of a single slip to be achieved and tested. However I think it has the unacceptable downsides that Darcy Branchini has described.

We could also start by looking at whether it is possible to print without a dialog or separate tab/window entirely on the client side. Though I imagine Michal Kuklis has investigated this to a point already (and the OLE folks probably did to).

If we aren't able to acceptably print from the browser, then we likely need to start investigating the impact of server side printing. This likely raises a lot of questions, not the least of which, how it could be tested in our reference environments, and might be a significant research undertaking. Do we have anyone in the project who has experience of this kind of printing solution?

Comment by Michal Kuklis [ 28/Aug/18 ]

I'm definitely out of ideas here besides some research I did under:

https://folio-org.atlassian.net/browse/UICHKIN-16?focusedCommentId=167691&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel

Perhaps somebody else who has more experience with browser printing could take another look at it but from what I read there is no clean, cross browser solution to this (if we want to approach it from the client side).

The idea I proposed for v1 is to just use what browser provides for us - a standard popup from which the user has to hit a "Print" button. This is not ideal but at least it would allow us to test the slips.

Comment by Cate Boerema (Inactive) [ 29/Aug/18 ]

Darcy Branchini did you have the chance to check with the RA SIG about Michal's proposed v1 solution?

Comment by Michal Kuklis [ 29/Aug/18 ]

I just wanted to add one more option here: https://www.google.com/cloudprint/learn

I believe this will still have to be handled by the server but it looks like it could save us some time. There are some tools already available for the integration:

https://github.com/postmen/node-cloud-print

Comment by Cate Boerema (Inactive) [ 20/Sep/18 ]

I don't know how much you guys have looked into what's done in Alma, but we hear from users that it works fine in most cases. Might make sense to use similar approach?

Below are some links to approaches taken with Alma. Since printing from the cloud / single page application is generally done as an attachment. For example, if a page is to be printed, a separate page could be derived that allows the end user to print the webpage as a one off. For bulk printing though, the system should send the slips or letters to a printer. Most networked printers allow for services to email the server, which is an easy solution. The approach though that others have taken with Alma is to send to a print proxy or printer queue.

For Alma the design and setup is as follows: https://developers.exlibrisgroup.com/blog/Printing-in-Alma

The following print proxy was used in some cases at Emory when a printer did not allow printing via email. A computer would be setup with a printer next to it to allow for printing via email: https://developers.exlibrisgroup.com/blog/numtuk

Another approach done by some universities with Alma was to send emails to a central Linux box that printed notices, holdslips, etc. https://developers.exlibrisgroup.com/blog/Simple-Alma-printing

Emailing html formatted emails might be a good way to push email functionality outside of the system; i.e., push formatting, history, drivers, etc, outside of FOLIO.

The program that Kevin Kidd when at BC created was a spine printing option…the SpineOMatic Printing Solution: https://developers.exlibrisgroup.com/blog/SpineOMatic-Label-Printing-Software-for-Alma. This leverages Alma’s APIs, but we could easily take the same approach when it comes to spine printing. I think that Kevin Kidd would be happy to give some suggestions on how to implement spine printing to make the process easier.

Thoughts?

Comment by Darcy Branchini [ 20/Sep/18 ]

I spoke with a systems person using the email solution and Alma, and although their solution works, he felt it was a hack and that it would be better to handle printing through a print server. I guess that's why I left it off of the possible solutions, but we can talk about it today. Also, Michal Kuklis jumped in on the original hold slip printing issue - UICHKIN-16 Closed - but he's also made it clear that he would prefer a back end developer to weigh in on this.

Comment by Marc Johnson [ 20/Sep/18 ]

Cate Boerema Thanks, that information about Alma is interesting (and surprising).

From what I could tell, Alma effectively treats printing as sending an email to a configured address. This neatly side-steps the potential security issues of potentially needing external access to printers or needing to host software inside the organisation.

Whilst they provide guidance, it appears it is effectively up to each organisation to decide how to process the received emails internally?

The label printing solution described seems to effectively be a piece of custom software running inside the organisation talking to ALMA's APIs.

Does that fit with other people's understanding of Alma's approach?

Darcy Branchini That is good feedback from an operations perspective.

I think the print server approach effectively a custom print service from option 4c. The most important aspect of this is where this server lives. Did the systems person you spoke to describe that?

If the print service lives internal to the organisation (so it can talk to the printers), it needs to be built in a technology that organisations can easily adopt and run. And we need to choose a protocol that can talk to either an internally or cloud hosted FOLIO.

Comment by Cate Boerema (Inactive) [ 20/Sep/18 ]

Does that fit with other people's understanding of Alma's approach?

Sounds like a good summary to me

Comment by Darcy Branchini [ 20/Sep/18 ]

We came to consensus at today's Stripes Architecture meeting to try the Chrome kiosk print mode. I was able to show this solution to the RA SIG and they agreed that it is a viable solution for v1 and possibly long-term as well.

A few things need to be verified before proceeding. Darcy Branchini will be looking into these:

  1. Does Chalmers use standard printers or receipt printers (or something else) that requires different formatting and/or heat imprints?
  2. Can we create an App shortcut on both Windows machines and a Macs that automatically launches the application in the browser in kiosk print mode?
  3. If you change default settings for a printer (like narrower width and/or from portrait to landscape), is this remembered when running in kiosk print mode?
Comment by Darcy Branchini [ 20/Sep/18 ]

To address #2 above (Desktop Shortcuts):

On a Mac, follow these steps:

  1. Open a text editor, copy and paste this command:
    /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args 'folio-snapshot-stable.aws.indexdata.com' --kiosk-printing
    
  2. Save and name the file 'FOLIOApp'.
  3. Open terminal, and change permissions on that file using this command:
    chmod +x ./FOLIOApp
    
  4. Add .command extension to the end of the filename.
  5. Run FOLIO in kiosk print mode by double-clicking on FOLIOApp.

Reference: https://discussions.apple.com/thread/3175771

Comment by Darcy Branchini [ 20/Sep/18 ]

To address #3 (Default Print Settings):

I conducted the following test. I changed the print settings on Chrome from portrait to landscape, and from Letter to another paper size, and both settings persisted when running in kiosk print mode. It's worth noting that it might prove a little confusing to an end user if they use the browser for something else, change the print settings, and then return to FOLIO and start printing staff slips because they won't get an opportunity to change those settings when running in kiosk print mode.

Reference: https://support.shippingeasy.com/hc/en-us/articles/203545819-How-to-Set-default-printer-paper-size-on-a-Mac-Chrome-

Comment by Darcy Branchini [ 20/Sep/18 ]

To address #1 (Chalmers' needs):

According to Theodor Tolstoy, they are using a Star TSP700II receipt printer. See photos above.

Comment by Darcy Branchini [ 28/Sep/18 ]

It was decided that we will use Chrome running in kiosk print mode for short-term solution, and possibly for long-term solution. Follow-up to this issue is to test this functionality with receipt printers (which is a Chalmers' requirement) - FOLIO-1540 Open .

Comment by Cate Boerema (Inactive) [ 01/Oct/18 ]

I think we can close this spike as we've settled on a solution. Thanks.

Generated at Thu Feb 08 23:13:21 UTC 2024 using Jira 1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d.