DynaPDF Screenshot

We got a screenshot to show DynaPDF features in our MBS FileMaker Plugin:

In detail:
  • The click points example where you click on the image and get dots showing there.
  • The example to show visually the difference between two PDF documents or pages (DynaPDF.ShowDifferences).
  • The invoice example to create invoices without a FileMaker layout by doing the layout via DynaPDF table functions (DynaPDF.Table.Create).
  • The page number example running on Windows
  • An example to show search within a PDF document on iOS (DynaPDF.HighlightPattern).
  • The watermark example to add Private Document on top of a page (DynaPDF.WriteDemoText).
  • And the personalize PDF example on Web Direct where every visitor sees a personalized copy of the PDF with their name and page numbers (see blog article).

Screenshot of FileMaker Enhancements in MBS Plugin

We got a nice collage to show you over 15 improvements to the FileMaker Pro user interface included with MBS Plugin for MacOS:

If you like to check if you can name them all, please look on full resolution image: SyntaxColorizing.png

See also Reasons for FileMaker Pro users on MacOS to install MBS Plugin

MBS DevCon Sale ends soon

Please note that our FileMaker DevCon sale for 2019 ends soon.

The coupon code you picked up at our booth is valid for August only.

Adobe PDFViewer crashes in FileMaker

If you see crashes in FileMaker related to showing a PDF document inside an interactive container field, you may want to take a closer look.

Click details on the crash report and look which thread crashed. If you find that some code in com.adobe.acrobat.pdfviewer is crashing, we may have solution for you:

Thread 38 Crashed:
0 libobjc.A.dylib 0x00007fff6cf3869d objc_msgSend + 29
1 com.adobe.acrobat.pdfviewer 0x000000011902faa3 0x119018000 + 96931
2 com.adobe.acrobat.pdfviewer 0x00000001190304d3 0x119018000 + 99539
3 com.adobe.acrobat.pdfviewer 0x000000011901a380 0x119018000 + 9088
4 com.adobe.acrobat.pdfviewer 0x000000011901a224 0x119018000 + 8740

The PDF viewer plugin from Adobe helps browsers to show the PDF content. But Safari and other browsers have such a viewer built-in, so the Adobe one is not needed. And the Adobe control is optimized to run within a browser and not the FileMaker application. We recommend to remove it and avoid those crashes. Your users probably won't miss it and your FileMaker solution is more stable.

Some clients even automate this by putting a line like this in the start script:

$r = MBS("Files.MoveToTrash"; "/Library/Internet Plug-Ins/AdobePDFViewer.plugin")

We've see such crashes with other development tools (e.g. Xojo) and embedded webkit controls before. Once you remove the Adobe PDF Viewer plugin, the default PDF viewer will kick in and show PDFs.

MBS FileMaker Plugin, version 9.4pr4

New in this prerelease of version 9.4 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

FileMaker Stammtische Rheinland und Rhein-Main

Zwei Stammtische am Rhein und Main laden ein zum Austausch mit anderen FileMaker Entwickler:

Dienstag, 3. September 2019

19:00 im Restaurant Portofino, St. Augustiner Str. 129, Bonn
Organisiert von Tischler IT-Consulting

siehe filemaker-datenbank.de/fm-stammtisch/

Donnerstag, 5. September 2019

19:00 Uhr im Ristorante BELLA BARI, Hessenstraße 1, 65719 Wallau
Organisiert von der Denkform

siehe denkform.net/schulungen-webinare/events

Themen sind die Neuerungen von der FileMaker DevCon 2019 und die kommende FileMaker Konferenz in Hamburg. Gerne auch Fragen an uns zum MBS Plugin. Bei Interesse bitte gerne direkt beim Veranstalter anmelden bzw. auf die Mailingliste setzen lassen.

Falls sonst noch Bedarf an Schulung, vor Ort Entwicklung oder FileMaker/Xojo Hilfe besteht, bitte wegen Terminfindung bald bei uns melden.

PS: Für die MBS Plugin Schulungen bei der Denkform und in Hamburg gibt es noch freie Plätze.

Web viewer exists only with URL loaded

In FileMaker you can place a web viewer on your layout. But only when you actually load an URL into the web viewer, FileMaker will create the control and place it on the window. To solve this, we often load "about:blank" to get a blank web viewer.

To verify, here a FileMaker window in 3D view in debugger, where you see the view hierarchy without a web viewer:

And here after loading about:blank with the web viewer:

As you see FMWKWebView is now present and MBS Plugin can find it with WebView.FindByName and other functions. Alternatively you can use WebView.Create or WebView.CreateOnPopover to add a web view via plugin functions.

New York FileMaker Meeting

Due to XDC 2020 we come to Nashville and stop by in New York. We'll attend the New York FileMaker Pro Developers' Group meeting.

Please save the date: 19th March 2020

Times: 5:30 pm Meet & Greet, 6:00 pm – 8:00pm Presentation

We'll have a presentation to whatever is new in the MBS FileMaker Plugin 2020.
Looking forward to see a few FileMaker developers there!

If you are interested in private time for consulting, training or discussion MBS or FileMaker topics, we can of course schedule a meeting. Please contact me directly interested.

Choose spelling dictionary in FileMaker automatically

If you like to use dictionary in another language, you can now control the dialog to select dictionaries.

You can use our new FM.ChooseDictionary function to set the dictionary. Once the function run, you can use FM.GetDictionary to get the current selected item or FM.GetDictionaryList to get the list.
This may be useful for people in e.g. Switzerland. They may use German localization, but would like to use the Swiss German dictionary instead of the regular German one.

Coming soon with next MBS Plugin prerelease. If you like to try now, please do not hesitate to contact us via email for a download link.

PS: We tried for Windows, but when asking the combobox for entries, we only get zero back. Maybe we can solve that someday, but until that day this feature stays Mac only.

MBS FileMaker Plugin, version 9.4pr3

New in this prerelease of version 9.4 of the MBS FileMaker Plugin:
  • Notarized the disk image for MacOS Catalina.
  • Added SpeechRecognition functions.
  • Rebuild CURL code for Windows to fix issue in pr2.
  • Updated to Xcode 10.3.
  • Added error check to Encryption.Cipher to report if de/encryption fails instead of silently return no or garbage data.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Sponsoring European FileMaker Conferences

This year we sponsor six FileMaker events for October 2019: Beside hosting our own conference for Xojo.
Please leave your cave and join the conferences, make contacts, learn new techniques and meet the Claris staff!

Create two page PDF document in FileMaker

You want to convert a single page document to a two pages side by side document or even more pages per page with FileMaker?
With the help of the MBS FileMaker Plugin and our DynaPDF functions you can do it. You find an example database in the example folder coming with the plugin.


MapKit in FileMaker Screenshot

Here is a nice screenshot we made to show you what you can do with MapView functions in MBS FileMaker Plugin:

As you see we can show maps in 2D and 3D, normal and satellite, render snapshots, add pins and plan routes. For MacOS and iOS and all within FileMaker solutions. Try yourself!

Windows DLL Loading errors

When you try to load a DLL on Windows via our plugins, you may get back an error message on failure.

Error 126: The specified module could not be found.

You passed an invalid path to the DLL or you tried to load a DLL and it refers to another DLL, which could not be found. For example several DLLs belong together and they should all be in same folder, so Windows can find them. Or a Visual Studio Runtime DLL is missing for the version of the C runtime needed by this DLL.

You can use Dependency Walker application to figure out which DLL is missing.

Error 127: The specified procedure could not be found.

The DLL was loaded, but then an expected function was not found. This could happen if you load the wrong DLL, which doesn't have the functions at all. Or if you have an older DLL, which does not yet export the required function.

Error 193: This is not a valid Win32 application.

Either this is really not a DLL or you mixed 32 and 64bit platforms and got the wrong one. Please make sure you use 32-bit DLL for a 32-bit application and a 64-bit DLL for a 64-bit application.

Error 998: Invalid access to memory location.

The path passed may be invalid and cause a memory access error.

Error 1114: A dynamic link library (DLL) initialization routine failed.

The DLL got loaded, but the initialization routine returned an error message. This may happen with Visual C libraries, if you try to load more statically linked libraries, then you have handles available. Memory may be available, but some handles have a limited list and loading too many DLLs (over 500) can run into a limit.

Read HEIC or HEIF image files in FileMaker

If you need to read HEIF or HEIC image files (High Efficiency Image File Format) in FileMaker on Mac or iOS, please check our Container.ReadImage function in MBS FileMaker Plugin:

Set Variable [ $path ; Value: "/Users/cs/Desktop/IMG_3552.HEIC" ] 

Set Variable [ $container ; Value: MBS( "Container.ReadFile"; $path) ] 

If [ MBS("IsError") = 0 ] 

Set Variable [ $image ; Value: MBS( "Container.ReadImage"; $container; "PNG"; "image.png") ] 

If [ MBS("IsError") = 0 ] 

Set Field [ Untitled::image ; $image ] 

End If

End If

So we may need to import the file into a container value first, if you haven't it in a container field already. Second, we use Container.ReadImage to read the image and convert it to a PNG file. PNG supports transparency and has lossless compression, so we prefer it over JPEG.

Alternatively you can use CGImageSource functions and get the images and any metadata like this:

Set Variable [ $path ; Value: "/Users/cs/Desktop/IMG_3552.HEIC" ] 

Set Variable [ $ImageSource ; Value: MBS( "CGImageSource.CreateWithPath"; $path) ] 

If [ MBS("IsError") = 0 ] 

# you can get metadata as JSON to check later...

Set Variable [ $$MetaData ; Value: MBS( "CGImageSource.Properties"; $ImageSource ) ] 

Set Variable [ $$ImageMetaData ; Value: MBS( "CGImageSource.Properties"; $ImageSource; 0 ) ] 

# get image to show

Set Variable [ $image ; Value: MBS( "CGImageSource.ImageAtIndex"; $ImageSource; 0; "PNG"; "image.png") ] 

If [ MBS("IsError") = 0 ] 

Set Field [ Untitled::image ; $image ] 

End If

Set Variable [ $r ; Value: MBS( "CGImageSource.Release"; $ImageSource ) ] 

End If



Please do not hesitate to contact us with questions.

Under the Radar Podcast

Once again Xojo Inc. sponsors an episode of the Under the Radar podcast.

Originally pointed to by Paul Lefebvre's tweet, I quickly subscribed as they talk about various topics for independent app developers and those episodes are very interesting. They face similar issues as myself and so I like to hear their solutions.

Thanks to David Smith and Marco Arment for their apps and the podcast.

Thanks to Xojo Inc. for supporting the shows.

Do you like this podcast? Or any other good podcasts not to miss?

Combine PDFs 5.4

Monkeybread Software today is proud to announce Combine PDFs 5.4, an update to their popular PDF merge and split tool for Mac OS. With a focus on ease-of-use, Combine PDFs is a lightweight utility which allows anyone to merge PDF files and images into a single PDF file. The user need only drag & drop files onto the program icon. The main window appears, allowing the user to set the order in which the files are joined.

Changes in Version 5.4:
  • Requires MacOS 10.10 or newer.
  • Upgraded to Xojo 2019r1 for dark mode support.
  • Notarized.
Combine PDFs Website

Requires MacOS 10.10 or newer for 64-bit. Older 32-bit version stays available and still works very well.

This application is made with Xojo 2019r1.

MBS FileMaker Plugin, version 9.4pr2

New in this prerelease of version 9.4 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Vision Framework for FileMaker

For the next MBS Filemaker Plugins, we worked on including the Vision framework from Apple. Currently we have six new Vision functions. We even include the new features coming with MacOS 10.15 Catalina release.

The Vision framework performs face and face landmark detection, text detection, barcode recognition, image registration, and general feature tracking. Vision also allows the use of custom Core ML models for tasks like classification or object detection.

For now we have Vision.ClassifyImage function to classify image content, Vision.RecognizeText to recognize text in a picture and Vision.DetectBarcode to find barcodes in a picture.

Please try them later with version 9.4pr2 and let us know if you need more.

Whats new in MBS FileMaker Plugin version 9.3

Since July 2019 we offers a new version of our FileMaker Plugin. Let me show you the new function and how you can use it.

New functions for better working with the MBS FileMaker Plugin
Maybe you have asked yourself how often you use the MBS FileMaker Plugin. Now you can answer this question by using the "Plugin.CallCounter" function. This function shows you how many times you called a MBS FileMaker Plugin function. The call of this function also counts.
For a better debugging of the MBS FileMaker Plugin we developed the “Plugin.InstallSignalHandlers” function. With this function you install the signal handler invoked by the OS when the application crashes. Thats helps to detect what and where exactly is the problem. Usually you call this function only if we ask you to help on debugging a crash on Linux or MacOS. Our plugin then prints a backtrace to show where the crash happened.

New possibilities in debugging
New for the debugging is the Trace.SetErrorsOnly function. If you call this and use our Trace functions you log only the MBS FileMaker Plugin calls that return errors. Whether this option is set can be queried with the Trace.GetErrorsOnly function. With Trace.SetWithTimes the time is additionally logged. Trace.GetWithTimes evaluates whether this option is set.

A helping tool for command line tools debugging is the new Shell.GetArguments function. This function query a list of all arguments of the shell. Use it to look whether an argument that you need is missing.

Test your XML import
For better XML import debugging we offers you the XML.Import.Errors function, which list all errors. It only reports each error once. With XML.Import.ErrorCount you can count the errors. Because of this you can learn, whether you had errors during the import. (more)

Zwei Monate bis zur FileMaker Konferenz 2019 in Hamburg

Vom 16. bis 19. Oktober 2019 findet die zehnte deutschsprachige FileMaker Konferenz in Hamburg, Deutschland statt. FileMaker Anwender und Entwickler sind herzlich eingeladen sich anzumelden.

Die Veranstalter vom Verein FM Konferenz erwarten auch 2019 rund 180 Entwickler, Anwender, IT-Fachleute und Entscheidungsträger aus Wirtschaft, Bildung und Verwaltung. Rund um über 25 Fachvorträge und Workshops wird es viel Zeit zum Vernetzen in den gemeinsamen Pausen und beim Abendprogramm geben.

Dieses Jahr gibt es wieder eine MBS Plugin Workshop, diesmal am 16. Oktober 2019 von ca. 9 bis 17 Uhr.
Anmeldung bei Monkeybread Software.

CURL Up 2020

The CURL conference for 2020 is announced:

curl up 2020 will take place in Berlin, Germany in mid May.

When: May 9-10, 2020
Where: Berlin, Germany
Venue: Co.up Community

Anyone interested in the CURL project is welcome to join the conference!
For details, please check the website.

Maybe we can arrange some developer meeting with our Xojo and FileMaker clients, too?

More Text Encoding conversion for FileMaker

FileMaker itself understands a few text encodings. And with our various plugin formats we offer them directly to use within the plugin. We usually only document the short list: ANSI, Mac, Latin1, ISO-8859-1, Windows, Native, UTF-8 and DOS.

But the following encodings also work: ShiftJIS-Mac, ShiftJIS-Win, Korean-Mac, Korean-Win, Korean-Johab, ChineseTrad-Mac, ChineseTrad-Win, ChineseSimp-Mac, ChineseSimp-Win, Cyrillic-Mac, Cyrillic-Win, ISO-8859-5, CentralEurope-Mac, EasternEurope-Win, ISO-8859-2, Turkish-Mac, Turkish-Win, ISO-8859-3, ISO-8859-9, Baltic-Win, ISO-8859-4, Arabic-Mac, Arabic-Win, ISO-8859-6, Greek-Mac, Greek-Win, ISO-8859-7, Hebrew-Mac, Hebrew-Win, ISO-8859-8 or ISO-8859-15.

But what if you have a more exotic text encoding or an old DOS code page? Like CP865?

We added a new function Text.ConvertToTextEncoding to convert from normal text to any encoding in a long list. The result is hex encoded as we otherwise can't really show you the text. So you can pass the hex encoded text in the specific encoding to other functions like BinaryFile.WriteHex, Socket.WriteHex or SerialPort.WriteHex. If you need to decode back, you can use the new Text.ConvertFromTextEncoding function. (more)

See you at Claris Engage 2020

After the conference is before the conference.
We are looking forward to meet all the FileMaker developers next year in Nashville.

Claris International Inc. hosts the Claris Engage conference in Nashville, August 3-6 2020.
We will probably attend and have a booth as usual, so see you there!

MBS FileMaker Plugin, version 9.4pr1

New in this prerelease of version 9.4 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Slides and Pictures from my presentation

Here a few pictures from the MBS FileMaker Plugin presentation at the FileMaker DevCon 2019 hosted by Claris International, Inc:


MBS Plugin Session on Wednesday at lunch time

Please join our MBS Plugin Presentation at 12:00 PM on Wednesday. It's lunch time, so get some food and sit down in the theater for an update on what is new in the MBS FileMaker Plugin:

Come by to our booth, read the posters, ask us questions and talk with us about existing and future features.
We got flyers with our DevCon2019 coupon code for the discount on licenses (20% on everything).

MBS Booth ready for FileMaker DevCon 2019

Please come and visit me in the booth #230 at FileMaker DevCon:

As usual you can come by, read the posters, ask us questions and talk with us about existing and future features.
We got flyers with our DevCon2019 coupon code for the discount on licenses (20% on everything).

MBS Plugin Session on Wednesday, 7th August 2019 at 12:00 PM (noon) right in the theater, so you can bring your lunch and listen.


Jun 2024
May 2024
Apr 2024
Mar 2024
Feb 2024
Jan 2024
Dec 2023
Nov 2023
Oct 2023
Sep 2023
Aug 2023
Jul 2023
Jun 2023
May 2023
Apr 2023
Mar 2023
Feb 2023
Jan 2023
Dec 2022
Nov 2022
Oct 2022
Sep 2022
Aug 2022
Jul 2022
Jun 2022
May 2022
Apr 2022
Mar 2022
Feb 2022
Jan 2022
Dec 2021
Nov 2021
Oct 2021
Sep 2021
Aug 2021
Jul 2021
Jun 2021
May 2021
Apr 2021
Mar 2021
Feb 2021
Jan 2021
Dec 2020
Nov 2020
Oct 2020
Sep 2020
Aug 2020
Jul 2020
Jun 2020
May 2020
Apr 2020
Mar 2020
Feb 2020
Jan 2020
Dec 2019
Nov 2019
Oct 2019
Sep 2019
Aug 2019
Jul 2019
Jun 2019
May 2019
Apr 2019
Mar 2019
Feb 2019
Jan 2019
Dec 2018
Nov 2018
Oct 2018
Sep 2018
Aug 2018
Jul 2018
Jun 2018
May 2018
Apr 2018
Mar 2018
Feb 2018
Jan 2018
Dec 2017
Nov 2017
Oct 2017
Sep 2017
Aug 2017
Jul 2017
Jun 2017
May 2017
Apr 2017
Mar 2017
Feb 2017
Jan 2017
Dec 2016
Nov 2016
Oct 2016
Sep 2016
Aug 2016
Jul 2016
Jun 2016
May 2016
Apr 2016
Mar 2016
Feb 2016
Jan 2016
Dec 2015
Nov 2015
Oct 2015
Sep 2015
Aug 2015
Jul 2015
Jun 2015
May 2015
Apr 2015
Mar 2015
Feb 2015
Jan 2015
Dec 2014
Nov 2014
Oct 2014
Sep 2014
Aug 2014
Jul 2014
Jun 2014
May 2014
Apr 2014
Mar 2014
Feb 2014
Jan 2014
Dec 2013
Nov 2013
Oct 2013
Sep 2013
Aug 2013
Jul 2013
Jun 2013
May 2013
Apr 2013
Mar 2013
Feb 2013
Jan 2013
Dec 2012
Nov 2012
Oct 2012
Sep 2012
Aug 2012
Jul 2012
Jun 2012
May 2012
Apr 2012
Mar 2012
Feb 2012
Jan 2012
Dec 2011
Nov 2011
Oct 2011
Sep 2011
Aug 2011
Jul 2011
Jun 2011
May 2011
Apr 2011
Mar 2011
Feb 2011
Jan 2011
Dec 2010
Nov 2010
Oct 2010
Sep 2010
Aug 2010
Jul 2010
Jun 2010
May 2010
Apr 2010
Mar 2010
Feb 2010
Jan 2010
Dec 2009
Nov 2009
Oct 2009
Sep 2009
Aug 2009
Jul 2009
Apr 2009
Mar 2009
Feb 2009
Dec 2008
Nov 2008
Oct 2008
Aug 2008
May 2008
Apr 2008
Mar 2008
Feb 2008