go to post Marc Mundt · Oct 13, 2022 There are some open source tools that can convert from XLSX to CSV. You could call out to these from your ObjectScript code:https://csvkit.readthedocs.io/en/latest/tutorial/1_getting_started.html#...https://stackoverflow.com/questions/10557360/convert-xlsx-to-csv-in-linu...
go to post Marc Mundt · Oct 12, 2022 Are you just calling out to a command-line utility -- like calling PGP to decrypt a file? Or are you trying to launch a GUI application that the user will interact with?
go to post Marc Mundt · Sep 23, 2022 <if> conditions in BPL are just ObjectScript expressions, so you'll want to have a look at the docs for ObjectScript expressions. https://docs.intersystems.com/irisforhealth20221/csp/docbook/DocBook.UI....
go to post Marc Mundt · Sep 22, 2022 Here's information on the Python library for working with .zip files: https://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.open
go to post Marc Mundt · Sep 20, 2022 "#" is for referring to a parameter defined in the class. Parameters are similar to static variables in Java. https://docs.intersystems.com/irisforhealth20221/csp/docbook/DocBook.UI....
go to post Marc Mundt · Sep 16, 2022 Hopefully this can save you some work. It uses a much larger chunk size (which is a multiple of 57) and works with or without CR/LFs (set the argument pAddCRLF): Class Example.B64.Util Extends %RegisteredObject { /// Be cautious if changing CHUNKSIZE. Incorrect values could cause the resulting encoded data to be invalid. /// It should always be a multiple of 57 and needs to be less than ~2.4MB when MAXSTRING is 3641144 Parameter CHUNKSIZE = 2097144; ClassMethod B64EncodeStream(pStream As %Stream.Object, pAddCRLF As %Boolean = 0) As %Stream.Object { set tEncodedStream=##class(%Stream.GlobalCharacter).%New() do pStream.Rewind() while ('pStream.AtEnd) { set tReadLen=..#CHUNKSIZE set tChunk=pStream.Read(.tReadLen) do tEncodedStream.Write($System.Encryption.Base64Encode(tChunk,'pAddCRLF)) if (pAddCRLF && 'pStream.AtEnd) { do tEncodedStream.Write($c(13,10)) } } do tEncodedStream.Rewind() quit tEncodedStream } }
go to post Marc Mundt · Sep 14, 2022 This method mentioned above by Vitaliy takes a stream as input and outputs a base64 encoded stream: https://cedocs.intersystems.com/ens20171/csp/documatic/%25CSP.Documatic....
go to post Marc Mundt · Jul 21, 2022 My experience with Zebras was quite a few years ago, so this may or may not still apply... Using Zen reports at the time, the print server would end up rendering the label as a bitmap and sending that over to the Zebra. ZPL code to print an equivalent label was much smaller than a bitmap, so ZPL labels tended to print faster than those rendered by a report.
go to post Marc Mundt · Jul 1, 2022 This question comes-up a lot on community and there are some previous posts on it. Have a look at this thread, and in particular this response.