In this article I want to introduce you the new functionalities from the MBS Xojo Plugins in version 23.3.
XPath
Some of you may have already come into contact with XPath. XPath is a query language with which you can address and evaluate parts of an XML document. With the new evaluate method from the class XMLDocumentMBS, you can now perform such a query under a given XPath expression. The result is then returned to you as an object of the new XMLXPathResultMBS class. Here you can use the properties to retrieve the information.
In this article we want to introduce you the new functions from the MBS FileMaker Plugin in version 13.3.
PDF Preview
With the new version of the plugin we have also added a new component that I would like to introduce to you today. With the Preview component you get a control for macOS and Windows that gives you a PDF preview in the layout. Since the plugin puts the control on the layout, it is independent of FileMaker, it can stay when switching records and can load data from a container field or from a file on disk. First you can use Preview.Available to check if the functions are available for your operating system. With the functions Preview.Create or Preview.CreateWithControl you can then create the control with a certain size defined in the parameters or with the help of a control. You get a reference number as return which you can use in the further functions. You can then load a PDF from a container with Preview.LoadContainer or from a file with Preview.LoadFile. With Preview.Unload you can then remove the file from the preview again. This and much more is waiting for you in this component, please have a look.
Nickenich, Germany - (July 18th, 2023) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 13.3 for Claris FileMaker for macOS, iOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin currently available for Claris FileMaker produce line. As the leading database management solution for Windows, macOS, iOS and the web, the Claris FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application. MBS FileMaker Plugin 13.3 has been updated and now includes over 7100 different functions, and the versatile plugin has gained more new functions:
With this version, we switch from OpenSSL 1.1 to the newer version 3.1.1. While you may not notice the difference from the outside, the inside is updated for Encryption, CURL, WebHook, Archive and Sign functions. Since the new OpenSSL 3 deactivates less secure ciphers by default, you can enable them again with CURL.SetOptionSSLCipherList function if needed.
Our new Preview functions allow you to add a preview control on a FileMaker layout. Independent from FileMaker, you can show PDF documents on macOS and Windows.
To improve JSON processing, we got the JSON.GetArrayItemsAsQuickList function to split a JSON array into a quick list. The JSON entries can then be changed and later reassembled with the QuickList.JoinJSON function. If you look for matching entries in a JSON array structure, check the JSON.FilterObjectArray function to look for matching objects.
For macOS we localized our user interface, so you can use the preferences dialog in one of 12 languages. Enjoy auto completion in the custom function dialog with the function-F5 shortcut. We improved our clickable links in Script Workspace to include links in calculations.
We enhanced our Matrix functions to output the content of the matrix to HTML with the Matrix.HTML function. And a matrix can be written to a sheet in an Excel workbook with XL.Sheet.CellWriteMatrix function.
For DynaPDF we got new functions to create reset and submit actions for forms and adding fields to them. The DynaPDF.CreateAnnotAP function creates a custom appearance stream for an annotation. For tagged PDF formats, you can use DynaPDF.OpenTagEx and related functions to add tags as needed. And the DynaPDF.AddDPartNode allows to add Document Part Metadata right within your PDF document.
We got a Files.DeleteLater function to remove temporary files when the application quits. The GMImage.Describe function can provide various details for an image as text to show to the user and OCR results can be returned as JSON with OCR.GetTextAsJSON function. The WebHook can now use a password protected private key for WebHook.SetSSL function, Text.ConcatWithDelimiter can help to concat texts with a given delimiter and Schedule.SetEnabled lets you disable or enable schedules. The audit functions now better return SQL errors, the XL.Sheet.SetColPx and XL.Sheet.SetRowPx functions can set column widths or row heights in pixel instead of characters.
Finally we updated CURL library to version 8.1.2, DynaPDF to 4.0.75.218, LibSSH to 1.11.0, LibXL to 4.2, MongoDB-c library to 1.23.4, openssl to 3.1.1 and SQLite to version 3.42.0.
Nickenich, Germany - (July 18th, 2023) -- MonkeyBread Software today is pleased to announce MBS Xojo Plugins 23.3 for macOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin collection currently available for Xojo. MBS Xojo Plugins have been updated and now includes over 3000 classes and 80,000 documented features, and the versatile plugins have gained more new functions:
With this version, we switch from OpenSSL 1.1 to the newer version 3.1.1. While you may not notice the difference from the outside, the inside is updated for Encryption, FMAPI, RabbitMQ, SSH, Archive and CURL plugin parts. Since the new OpenSSL 3 deprecates less secure ciphers, you can enable them again with for CURLSMBS class with OptionSSLCipherList property if needed. The CipherMBS class got 49 new ciphers and a ZeroPaddingKey property while the DigestMBS class got 8 new digest methods.
For Windows we got a WinPreviewControlMBS control to preview PDF documents using the PDF viewer built-in to Windows 10 and newer.
We ported our PDFKit classes to iOS and got PDFThumbnailViewIOSControlMBS and PDFViewIOSControlMBS controls for your iOS projects to show PDF documents. The QLPreviewControllerMBS class on iOS allows you to preview various documents like Word or Excel documents. If you show pictures or PDF documents, you can allow the user to markup the document and save the final PDF document.
For DynaPDF we got new functions for tagged PDF formats to add tags as needed. And the AddDPartNode function allows to add Document Part Metadata right within your PDF document.
The Scintilla plugin got an improved lexer code to better highlight Xojo code. We added RegisterRGBAImage and MarkerDefineRGBAImage methods to use pictures for markers.
For HTMLViewers based on WebKit 2 on macOS and iOS we have new options for WKWebViewConfigurationMBS and WKPreferencesMBS to allow inline media playback or picture in picture playback. You can limit navigation to app bound domains and upgrade known hosts to https protocol.
We added the describe method to GMImageMBS class to provide various details for an image as text to show to the user, the ConvertImage method in WindowsPDFDocumentMBS class helps to convert HEIF or RAW images to PNG, the XLSheetMBS class can set column widths and row heights in pixels and you can filter object arrays in JSONMBS class.
Finally we updated CURL library to version 8.1.2, DynaPDF to 4.0.75.218, LibSSH to 1.11.0, LibXL to 4.2, MongoDB-c to 1.23.4, openssl to 3.1.1, RabbitMQ-c library to 0.13 and SQLite to version 3.42.0.
18. Juli 2023 - Monkeybread Software veröffentlicht heute das MBS Plugin für Claris FileMaker in Version 13.3, mit inzwischen über 7100 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:
Mit dieser Version wechseln wir von OpenSSL 1.1 auf die neuere Version 3.1.1. Während Sie den Unterschied von außen vielleicht nicht bemerken, wurde das Innere für die Encryption, CURL, WebHook, Archive und Sign Funktionen aktualisiert. Da das neue OpenSSL 3 weniger sichere Verschlüsselungsalgorithmen standardmäßig deaktiviert, können Sie diese bei Bedarf mit der Funktion CURL.SetOptionSSLCipherList wieder aktivieren.
Unsere neuen Preview Funktionen ermöglichen es Ihnen, ein Vorschausteuerelement in ein FileMaker-Layout einzufügen. Unabhängig von FileMaker können Sie PDF-Dokumente auf macOS und Windows anzeigen.
Um die JSON-Verarbeitung zu verbessern, haben wir die Funktion JSON.GetArrayItemsAsQuickList entwickelt, die ein JSON-Array in eine QuickList zerlegt. Die JSON-Einträge können dann geändert und später mit der Funktion QuickList.JoinJSON wieder zusammengefügt werden. Wenn Sie nach bestimmte Einträgen in einer JSON-Array-Struktur suchen, können Sie mit der Funktion JSON.FilterObjectArray nach passenden Objekten filtern.
Für macOS haben wir unsere Benutzeroberfläche lokalisiert, sodass Sie den Einstellungsdialog in einer von 12 Sprachen verwenden können. Genießen Sie die automatische Vervollständigung im Dialogfeld für eigene Funktionen mit der Tastenkombination Funktion-F5. Wir haben unsere klickbaren Links im Skript-Arbeitsbereich um Links in Berechnungen erweitert.
Wir haben unsere Matrix Funktionen erweitert, um den Inhalt der Matrix mit der Funktion Matrix.HTML in HTML auszugeben. Und eine Matrix kann mit der Funktion XL.Sheet.CellWriteMatrix in ein Blatt in einer Excel-Arbeitsmappe geschrieben werden.
Für DynaPDF gibt es neue Funktionen zum Erstellen von Reset- und Submit-Aktionen für Formulare und zum Hinzufügen von Feldern zu diesen. Die Funktion DynaPDF.CreateAnnotAP erstellt einen benutzerdefinierten Appearance Stream für eine Annotation. Für getaggte PDF-Formate können Sie DynaPDF.OpenTagEx und verwandte Funktionen verwenden, um Tags nach Bedarf hinzuzufügen. Und die Funktion DynaPDF.AddDPartNode ermöglicht das Hinzufügen von Document Part Metadaten direkt im PDF-Dokument.
Wir haben eine Files.DeleteLater-Funktion, um temporäre Dateien zu entfernen, wenn die Anwendung beendet wird. Die GMImage.Describe-Funktion kann verschiedene Details für ein Bild als Text bereitstellen, um sie dem Benutzer anzuzeigen, und OCR-Ergebnisse können mit der OCR.GetTextAsJSON-Funktion als JSON zurückgegeben werden. Der WebHook kann nun einen passwortgeschützten privaten Schlüssel für die Funktion WebHook.SetSSL verwenden, mit Text.ConcatWithDelimiter können Texte mit einem bestimmten Trennzeichen zusammengefügt werden und mit Schedule.SetEnabled können Sie Zeitpläne deaktivieren oder aktivieren. Die Audit-Funktionen geben jetzt SQL-Fehler besser zurück, die Funktionen XL.Sheet.SetColPx und XL.Sheet.SetRowPx können Spaltenbreiten oder Zeilenhöhen in Pixel statt in Zeichen festlegen.
Wie aktualisieren die CURL-Bibliothek auf Version 8.1.2, DynaPDF auf 4.0.75.218, LibSSH auf 1.11.0, LibXL auf 4.2, die MongoDB-c-Bibliothek auf 1.23.4, openssl auf 3.1.1 und SQLite auf Version 3.42.0.
We frequently ask to reproduce the problem in a new database or with a short script. It's hard to dig through 1000 lines of script to come to the 10 lines where the problem shows and make sure none of the lines above causes the trouble.
Let us show you how to use Trace function in various situations:
I will show you how this works, using the example of a cone chart. The example can be downloaded together with the plugin from our website for a free testing. You can find it under this path: Examples/ChartDirector/cone.xojo_binary_project
First we store the data we want to represent on the diagram in an array. These data could also come from a database, a JSON or a calculation. We create a second array with the labels of the areas, corresponding to the values.
// The data for the pyramid chart
dim data(-1) as double = array(156.0, 123, 211, 179)
// The labels for the pyramid chart
dim labels(-1) as string = array("Funds", "Bonds", "Stocks", "Cash")
A few days ago Christian Schmitz from Monkeybread Software joined a live episode to talk a bit about the MBS FileMaker Plugin. Watch it on YouTube.
We talk about what is new in the MBS FileMaker Plugin in version 13.2. We talk about merging documents with DynaPDF including PDF documents and various image files.
Since we learnt a lot in previous conference, we change a few things:>
We have the hotel for ourselves. All hotel guest rooms should be filled with Xojo developers. At the bar, at the breakfast, in the garden, everywhere you find Xojo developers to talk to.
The hotel is easy to get to via train or car. Please consider coming by train (to Andernach) and walk to the hotel (1.2 km).
We have a second room for labs and un-conference sessions. Your chance to spontaneously meet with developers and discuss a topic. In the lab sessions, we can meet and and implement a new feature in Xojo or add-ons.
On the presentations, we honor the work for the presenter with a free ticket, but we'll try to be a bit pickier about which session to accept. The sessions will be added to the conference in 2024. As usual the early bird rate is for people signing-up early before they know all details.
The ticket prices get a shake-up. The regular rate is 399 €, but we give those who can afford more the chance to pay 799 € and support the event. On the lower end, we like to give young or hobby developers a chance to buy a discounted ticket for 199 € or even get a free ticket. And those are early bird pricing and we raise them in 2024. (all plus VAT if needed)
If you can stay a few more days, please spend some more time with your fellow Xojo developers and enjoy some history, culture and landscape. We plan a bigger trip for Tuesday and optional a trip to learn about the Geyser in Andernach on Saturday.
The hotel rate is affordable with 120 Euro/night including breakfast and VAT. Other hotels nearby should have plenty of rooms available at similar or cheaper rates. And of course you can find luxury accommodation, too.
This community event is organized by Monkeybread Software. We expect to have a Xojo staff around to present and answer questions.
The first batch of OmegaBundle orders is in delivery.
We process orders in batches every few days. And when you order your copy of the bundle, be prepared to have nothing happening for a day after the order. Then the delivery starts and you may quickly get something like 20 emails with license information and welcome messages.
If you don't get emails for a few days, please check:
Did your bank let the order go through on the credit card?
Did you check your spam filter? Put vendors on white list maybe?
Did you make a typo in the email address?
Every year emails end up in spam folders or bounce with typos.
If one of the vendors knows you, we can fix typos or have an alternative email address and deliver. If you have trouble with the web shop, please contact Paradigma Software, Inc. They also can provide the invoice for bookkeeping.
A week after the order, check if you got all the licenses from the bundle you needed. Some requires to login somewhere to lookup the license key. But for MBS, you just get a couple of emails.
You tried MBS Xojo DynaPDF Plugin and wonder what options you can use for inserting images?
With DynaPDF you have full control about how images are placed. By default the plugin does what most people need: insert images with 150 dpi and JPEG compression into a PDF. The resolution is calculated based on how big the image is shown on a page.
But you can decide:
Whether to pass through JPEG images.
What maximum resolution to use, e.g. 300 dpi.
Which compression filter to use for compressing images, e.g. JPEG.
Whether to mask white pixels with SetUseTransparency.
What compression quality to use for JPEG.
Whether to use image colorspace or convert to current colorspace.
Whether to allow duplicate image check or disable it (with SetGStateFlags).
Recently we got a request to merge documents of several types. Basically PDF files and images. Clients want to merge report from FileMaker with attachments like image files of repaired items and additional certificates as PDF documents. The start file has a layout with six container fields for input. It could have been a portal with a sub table for the fields, but for some reason the client didn't do that. So six fields may or may not contain some content.
We start with a script by checking if DynaPDF needs initialization. Either on startup or first time you use our plugin's DynaPDF functions, please locate where the library is and call DynaPDF.Initialize. Our examples look for the library file in the same folder, but you can change that. Newer plugins for a few years allow you to just pass the file name instead of a full path. And if the file name is the default one, you can leave it away. Then our plugin will look for dynapdf.dylib (macOS), dynapdf.dll (Windows) or dynapdf.so (Linux) in the same folder as the plugin file.
Perform Script [ Specified: From list ; “InitDynaPDF” ; Parameter: ]
End If
For DynaPDF we have a context object, which you reference in FileMaker scripts with a number and we usually store the value in $pdf. This way you can have multiple scripts using DynaPDF functions in parallel. The context for DynaPDF includes the current working PDF and the import PDF, if you have one open.
Added ElementFullscreenEnabled and siteSpecificQuirksModeEnabled properties to WKPreferencesMBS class.
Added allowsPictureInPictureMediaPlayback, allowsInlineMediaPlayback, upgradeKnownHostsToHTTPS and limitsNavigationsToAppBoundDomains properties to WKWebViewConfigurationMBS class.
Updated LibXL to version 4.2.
Added AddFormatFromStyle method for XLBookMBS class.
Added Table, SetRowPx and SetColPx methods for XLSheetMBS class.
Improved Text property in JSONMBS class to output less commas.
Now you got our MBS Xojo DynaPDF Plugin (e.g. with OmegaBundle) and you like to make a PDF with PDF/UA standard. That means your PDF includes tags for accessibility. So instead of just having text pieces on the page, they each haves tags to classify whether they are heading, paragraph, quote, label or similar thing.
You build your PDF and do a few extra steps for the PDF:
You need to define the viewer preferences to show the display title.
The language needs to be set, e.g. to en-EN.
The structure tree needs to be created, so we have a root.
The PDF version is set use to kpvPDFUA1.
When adding content, you call OpenTag/CloseTag to annotate your content.
For debugging, it can be helpful to set the compression level to zero for a PDF and thus be able to just drop the PDF on a text editor and see what is inside.
The July/August (21.4) issue of xDev Magazine is now available. Here's a quick preview of what's inside:
Future Vision by Marc Zeedar
We've been expecting Apple's expensive "VR headset" for a while -- what we got is a whole new "spacial computing" platform. It looks amazing, but there are still many questions and limitations. Has Apple done enough to make it a success?
Can ChatGPT Write Xojo Code? by Marc Zeedar
Everyone is jumping onto the hype of "artificial intelligence" and claiming AI can replace us humans, even programmers. Is that really the case? Can AI help with your next Xojo project? Marc asks ChatGPT to write a Tic-Tac-Toe game. See what happened.
Rasp Pi Electronic Fun Part 2 by Eugene Dakin
In this issue's project, Eugene shows how to get input from a switch on a Raspberry Pi and change the status of a control in a Xojo app.
Fun With wkhtmltopdf by Marc Zeedar
Working with third-party additions to Xojo can be frustrating when there are problems. Is your code at fault or is it an error in the source? Marc shares an adventure he had using the command-line tool wkhtmltopdf and how he worked around bugs in the tool.
Plus: Topics such as Xojo beta testing, charting, barcodes, non-SQL databases, and more!
Get the top developer tools and third party components for the Xojo cross-platform development platform at a huge savings!
Omegabundle for Xojo 2023 is a collection of the most useful tool sets, add-ons, digital books and components for use with Xojo Inc's Xojo development environment. If purchased separately and not including any additional offers, the total cost would be over $4166.94. Omegabundle for Xojo 2023 costs $399.99.
Xojo is an award-winning, cross-platform development tool for the Desktop (macOS, Windows, Linux), Web, iOS (iPad/iPhone) and Raspberry Pi. With Xojo, you can create native applications by using drag-and-drop to build your user interface and then one straight-forward programming language to enable the functionality. Xojo is powerful and modern, yet easy to use and learn.
Included Products
AprendeXojo GuancheMOS (UPDATED). The toolkit you need for application serialization and validation. Now supports Intel and ARM processors on macOS!
AprendeXojo AXImageCanvas (UPDATED). Pull and display images easily.
AXNumValidatedTF(UPDATED). Locale settings, numeric range enforcement, adaptive format and more for numeric input.
Einhugur Plugin Pack for Xojo. e-CryptIt Engine for Xojo and all 39 libraries and plugins, including plugins to work with Microsoft Excel and Microsoft Word.
GuancheID (UPDATED). The easiest way to get a unique ID for macOS and Windows based computers.
GrafittiSuite Desktop Edition (UPDATED). 67 (up from 55 from 2022!) incredible user interface controls for Xojo that add value and improve the professional appeal of your Xojo applications.
MBS Chart Director for Xojo (UPDATED). Professional, interactive, real-time charts in your Xojo applications on Mac, Windows and Linux. Desktop, Console and Web projects.
MBS DynaPDF Starter Edition for Xojo (UPDATED). Create PDF files with your applications on Mac, Windows and Linux. Desktop, Console and Web projects.
Ohanaware App Wrapper (UPDATED). Prepare your application for the Mac App Store or Web Distribution (macOS only app)
Paradigma Software Valentina Studio Pro (UPDATED). Ultimate reports designer, database administration and forms creation tool that runs on all three operating systems - Windows, macOS, Linux. Select one OS version.
Paradigma Software ValentinaDB ADK for Xojo (UPDATED). Embed the ultra-fast, object-relational Valentina database into your applications and deploy royalty free - Windows, macOS, Linux, including Raspberry PI! Also works with local SQLite files and as a client to Valentina Server.
Paradigma Software Valentina Reports ADK for Xojo (UPDATED). Generate visually rich reports as graphics, web pages or PDF from your Xojo applications on Windows, macOS, Linux including Raspberry PI! Also works with local SQLite files and as a client to Valentina Server.
Paradigma Software Valentina Server Unlimited (UPDATED). 4-in-1 Reports Server, Forms Server along with two database servers: one built on object-relational Valentina Database and the other on SQLite. Report and forms serving works with MySQL, PostgreSQL, MS SQL Server and the included Valentina and SQLite servers
XDL Library (NEW) Xojo Beginners Guide ebook (updated to over 1100 pages in June 2023) + 22 new digital articles
xDev Magazine (UPDATED). Get back issues and a year’s subscription to xDev Magazine, the professional's magazine for developing with Xojo.
You can learn more Omegabundle for Xojo 2023 from the Omegabundle website. Please allow up to 3-5 business days for all components to be supplied by participating vendors. If you are ready to purchase, order now from the Paradigma Software web store.
Technically the desktop and non-desktop variants both can be used in Desktop projects and the difference is the super class and the event naming (Open vs. Opening).
For next version 23.3, we got these ported to iOS:
All these control host the PDF controls from Apple's PDFKit framework. If you like to configure them, please query the view property to get the PDFViewMBS or PDFThumbnailViewMBS object. There you can configure them and e.g. define a background color.
To load a document, please use the PDFDocumentMBS class. Once you have it, please assign it to the document property in PDFViewMBS class. If you have a thumbnail view related to the PDF view, you can connect them. Please assign your PDFView object to the property PDFView in the PDFThumbnailViewMBS class.
If you need something for Windows, please check our WinPreviewControlMBS control. It can show a PDF document in a Xojo window.
Please try these controls for your iOS applications and let us know how well they work.
We got a few questions and thoughts and we look forward to have someone make a session about the trigger for next Claris Engage to talk about all the little details, but let me start here with a few thoughts and possible pitfalls: