Last weekend I had a funny idea to continue the preparation on supporting Apple Silicon for the
MBS FileMaker Plugin. The work went nice until we came to linking the project and FMWrapper.framework was Intel only. But I had an idea and made myself a dummy FMWrapper.framework, which exports the right functions and is built for both Intel and Apple Silicon. The plugin builds now and we got a new plugin file for both CPU architectures. Checking in Terminal, the file command reports the content like this:
> file MBS.fmplugin/Contents/MacOS/MBS
MBS.fmplugin/Contents/MacOS/MBS: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit bundle x86_64] [arm64]
MBS.fmplugin/Contents/MacOS/MBS (for architecture x86_64): Mach-O 64-bit bundle x86_64
MBS.fmplugin/Contents/MacOS/MBS (for architecture arm64): Mach-O 64-bit bundle arm64
The new plugin is 53.7 MB big. The arm64 side is 26.2 MB in size and a bit smaller than the 27.6 MB part for Intel. Since disk space is no longer a problem, we intend to simply ship this file with both targets later this year and avoid trouble with clients installing the wrong version: Intel or Apple Silicon.
Technically you can of course use lipo command line tool to reduce the code you don't need, but that breaks code signature.
cd path/to/folder
codesign --remove-signature MBS.fmplugin
lipo -extract x86_64 -output MBS.fmplugin/Contents/MacOS/MBS MBS.fmplugin/Contents/MacOS/MBS
Then you get an Intel only and FileMaker may tell you that there is no longer a signature included.
Let us know if you have questions. We look forward to news from Claris about when they will support Apple Silicon directly.
One of our clients asked for how to create payment QR-Codes in FileMaker and we just made him a new example for this. You may prepare the data, but then you can use MBS Plugin to create the barcode and put it as picture in a container and print it on your invoice. Or you use DynaPDF to draw it as vector graphics to keep it sharp.
Here is the main script with the full calculation to assemble the text for the barcode:
# EPC-QR-Code generation
#
Go to Layout [ “Tabelle” ; Animation: None ]
# Sample data for QR-Code. May need adjustment to final standard
Set Variable [ $text ; Value: // Service Tag
"BCD" & ¶ &
// Version (001 oder 002)
Right( Tabelle::Version ; 4 ) & ¶ &
// Character set: 1 = UTF-8
"1" & ¶ &
// Identification: SEPA Credit Transfer
"SCT" & ¶ &
// BIC of receiver. optional for EEA
Tabelle::BIC & ¶ &
// Name of receiver
Left(Tabelle::Name; 70) & ¶ &
// IBAN of receiver
Tabelle::IBAN & ¶ &
// Amount. We replace comma with dot for German amounts
"EUR" & Substitute(Tabelle::Amount; ","; ".") & ¶ &
// Zweck, 4 letter code, optional
Left(Tabelle::Intention; 4) & ¶ &
// Reference 35-Character-Code, see ISO 11649 RF Creditor Reference
Left(Tabelle::Reference1; 35) & ¶ &
// Reference
Left(Tabelle::Reference2; 140) & ¶ &
// Note to user
Tabelle::Note ]
#
# Barcode options. We use high level as we draw over barcode.
Set Variable [ $o ; Value: MBS("Barcode.SetOptions"; 4) // ECC Level with values from 1 = low, 2 = middle, 3 = better, 4 high. ]
Set Field [ Tabelle::Code ; TextFormatRemove ( $text ) ]
#
# CRLF line endings needed
Set Variable [ $text ; Value: MBS( "Text.ReplaceNewline"; $text; 3 ) ]
# We render barcode at 4x size for better drawing later
Set Variable [ $img ; Value: MBS("Barcode.Generate";"QRCODE"; $text; 0; 0; 0; 4; 0; 1; "UTF-8") ]
If [ MBS("IsError") = 0 ]
# Save to field
Set Field [ Tabelle::Barcode ; MBS( "GMImage.WriteToPNGContainer"; $img; "barcode.png" ) ]
#
# Clean up
Set Variable [ $r ; Value: MBS( "GMImage.Destroy"; $img) ]
End If
Feel free to try the example database with next plugin pre-release and let us know if you find some issue.
If we have changes to the script, we'll keep the example database updated for you. Please do not hesitate to contact us with your questions.
In this article I want to introduce you the new functions from the
MBS FileMaker Plugin in version 11.0.
Drag & Drop
Let's start with the functions that are new in the DragDrop component. You can now create a drag drop area over the whole working window. The
DragDrop.AttachToWindow function disables FileMaker's drop handler and installs the plugin one to the window.
You can also drag things out of a drop zone. To do this, you can use
DragDrop.SetFilePathsToDrag to specify a list of paths to where the files should be taken. With
DragDrop.SetDragImage you can set an image that should be displayed when this object is dragged. If we do not set an image, we have a preview image of the dragged file on macOS.
List Dialog - Filter
We have four new functions for the ListDialog component in connection with filters. A list dialog can have a lot of entries and there it can be very useful if you can limit the entries a little bit before. On the one hand you can set a filter via script. To do this, use the
ListDialog.SetFilter function and specify the filter in the parameters.
Set Variable [ $r ; Value: MBS("
ListDialog.SetFilter"; "th") ]
On the other hand you can show a bar in the list dialog itself where you can change the filter while the dialog is open.
To show and hide this bar, use the
ListDialog.SetShowsFilter function.
Set Variable [ $r ; Value: MBS("
ListDialog.SetShowsFilter"; 1) ]
The other two functions give us the current filter ("
ListDialog.GetFilter") or tell us whether the filter bar in the list dialog is shown or hidden (
ListDialog.GetShowsFilter).
(more)
Did you know you can configure the capabilities of the WebViewer in FileMaker using
MBS FileMaker Plugin functions?
If you take a close look on the
WebView.SetPreferences function for MacOS and iOS, you find a couple of options to set. Let's take a look on the most important options and what each option sets:
minimumFontSize
You may load some HTML into the web viewer, like the content of an email. Since you don't know the font sizes, you can define a minimum font size for the content.
For example use 12 point for fonts as minimum:
Set Variable [$r; Value: MBS("
WebView.SetPreferences"; "web"; "minimumFontSize"; 12) ]
javaScriptEnabled
If you show an email, it may be a good idea to disable JavaScript for the content. This avoids arbitrary HTML to include JavaScript, which may try and do network connections to track your user, trigger FileMaker scripts or exploit a JavaScript security problem.
Disable JavaScript like this:
Set Variable [$r; Value: MBS("
WebView.SetPreferences"; "web"; "javaScriptEnabled"; 0) ]
developerExtrasEnabled
In your scripts you can enable developer extras. This allows you to open the inspector via contextual mouse menus. As you can define this by script, you may want to enable it, if the current account privilege set is Full Access.
You can enable developer extras like this:
Set Variable [$r; Value: MBS("
WebView.SetPreferences"; "web"; "developerExtrasEnabled"; 1) ]
(more)
Nickenich, Germany - (January 19th, 2021) -- MonkeyBread Software today is pleased to announce
MBS FileMaker Plugin 11.0 for macOS, iOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin currently available for FileMaker Pro. As the leading database management solution for Windows, macOS, iOS and the web, the FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application.
MBS FileMaker Plugin 11.0 has been updated and now includes over 6400 different functions, and the versatile plugin has gained more new functions:
This release adds more Drag & Drop support to our plugin. For both macOS and Windows you can now attach a drop area to a whole window with our new
DragDrop.AttachToWindow function. Every item dropped will trigger the script, so you can process the drop as you like, e.g. import the files into container fields. Beside accepting drops you can now use the control as a drag source. Just pass a list of files to
DragDrop.SetFilePathsToDrag function to let the user drag those files to the desktop or other applications. Use
DragDrop.SetDragImage function to provide a picture to show while drag runs.
DynaPDF got updated to newer version and we now include a
DynaPDF.SaveAndSignFileExt function to sign PDF files with digital keys with 2048 or 4096 bits in addition to 1024 bits. With a page break expression set using
DynaPDF.SetPageBreakExpression function you can define what happens if
DynaPDF.WriteFText or
DynaPDF.WriteStyledText filled the text rectangle and need a new text rectangle. This allows to continue text output in a new column or a new page. To set color values instead of color components, you can now use
DynaPDF.SetFillColorValue and
DynaPDF.SetStrokeColorValue functions and pass a value you got from
DynaPDF.Lab,
DynaPDF.CMYK or
DynaPDF.RGB functions. You can now specify a line spacing (leading) when converting styled text from FileMaker to DynaPDF syntax.
Our
ListDialog functions go upgraded with a new filter field. It allows the user to search within the list and filter to the entry they look for. You decide whether the filter field is shown and what is the text and placeholder for it.
The
SyntaxColoring functions got improved with newer color set for dark mode. You may need to use
SyntaxColoring.FactoryDefaults to reset the colors. Our if/loop highlighting can better find matching exit loop even if it is within an If block. The bracket highlight and syntax highlighting got tuned for Big Sur.
You can now control the toolbar style ad display mode for Big Sur. With
SystemInfo.IsiOSAppOnMac you can detect whether your FileMaker iOS SDK app runs on macOS.
QuickList.SortWith can now sort by number. The
EmailParser.HTMLToPlainText function is improved to better convert HTML to text.
Finally we updated SQLite library to version 3.34.0, curl to 7.74.0, DynaPDF to 4.0.46.132, LibXL to 3.9.3, SQLAPI to 5.1.3 and Xcode to version 12.3.
See
release notes for a complete list of changes.
19. Januar 2021 - Monkeybread Software veröffentlicht heute das
MBS FileMaker Plugin für FileMaker in Version 11.0, mit inzwischen über 6400 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:
Diese Version fügt unserem Plugin weitere
Drag & Drop-Unterstützung hinzu. Sowohl für macOS als auch für Windows können Sie nun einen Drop-Bereich mit unserer neuen Funktion
DragDrop.AttachToWindow an ein ganzes Fenster anhängen. Jedes fallengelassene Element löst das Skript aus, so dass Sie den Drop wie gewünscht verarbeiten können, z. B. die Dateien in Felder importieren. Neben dem Akzeptieren von Drops können Sie unser Steuerelement auch als Drag-Quelle nutzen. Übergeben Sie einfach eine Liste von Dateien an die Funktion
DragDrop.SetFilePathsToDrag, damit der Benutzer diese Dateien auf den Desktop oder in andere Anwendungen ziehen kann. Verwenden Sie die Funktion
DragDrop.SetDragImage, um ein Bild bereitzustellen, das während des Ziehens angezeigt wird.
DynaPDF wurde auf eine neuere Version aktualisiert und enthält nun eine
DynaPDF.SaveAndSignFileExt Funktion, um PDF-Dateien mit digitalen Schlüsseln mit 2048 oder 4096 Bit zusätzlich zu den bisherigen 1024 Bit zu signieren. Mit einem Seitenumbruch-Ausdruck, der mit der Funktion
DynaPDF.SetPageBreakExpression gesetzt wird, kann definiert werden, was passiert, wenn
DynaPDF.WriteFText oder
DynaPDF.WriteStyledText das Textrechteck gefüllt hat und ein neues Textrechteck benötigt. Dies ermöglicht es, die Textausgabe in einer neuen Spalte oder auf einer neuen Seite fortzusetzen. Um Farbwerte anstelle von Farbkomponenten zu setzen, können Sie nun die Funktionen
DynaPDF.SetFillColorValue und
DynaPDF.SetStrokeColorValue verwenden und einen Wert übergeben, den Sie aus den Funktionen
DynaPDF.Lab,
DynaPDF.CMYK oder
DynaPDF.RGB erhalten haben. Bei der Konvertierung von gestyltem Text aus FileMaker in die DynaPDF-Syntax können Sie nun einen Zeilenabstand (Leading) angeben.
Unsere
ListDialog-Funktionen werden um ein neues Filterfeld erweitert. Es ermöglicht dem Benutzer, innerhalb der Liste zu suchen und auf den gesuchten Eintrag zu filtern. Sie entscheiden, ob das Filterfeld angezeigt wird und was der Text und Platzhalter dafür ist.
Die
SyntaxColoring-Funktionen wurden mit neueren Regeln für den dunklen Modus verbessert. Eventuell müssen Sie
SyntaxColoring.FactoryDefaults verwenden, um die Farben zurückzusetzen. Unsere Wenn/Schleife-Hervorhebung findet nun besser passende Schleife Verlassen Befehle, auch wenn diese innerhalb eines Wenn-Blocks liegen. Die Klammerhervorhebung und die Syntaxhervorhebung wurden für Big Sur angepasst.
Sie können jetzt den Anzeigestil der Symbolleiste für Big Sur steuern. Mit
SystemInfo.IsiOSAppOnMac können Sie erkennen, ob Ihre FileMaker iOS SDK-App unter macOS läuft.
QuickList.SortWith kann nach Zahlen sortieren. Die Funktion
EmailParser.HTMLToPlainText wurde verbessert, um HTML besser in Text zu konvertieren.
Schließlich haben wir die SQLite-Bibliothek auf Version 3.34.0, curl auf 7.74.0, DynaPDF auf 4.0.46.132, LibXL auf 3.9.3, SQLAPI auf 5.1.3 und Xcode auf Version 12.3 aktualisiert.
Alle Änderungen in den
Release Notes.
We got a new video for you about the Barcodes in FileMaker and made an English and a German version.
Claris accepted the German version for their localized content for Claris Engage.
You find this and other videos on our FileMaker video website. Enjoy is and if you have questions, please don't hesitate to contact us.
New in this prerelease of version 11.0 of the MBS FileMaker Plugin:
Download at
monkeybreadsoftware.com/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
A client asked how to detect who locks a field or record in FileMaker. Since a recent FileMaker version (16 maybe) the error dialog shows who edits the record, but how to know in a script?
We recently learnt that setting a field of a locked error will return the error 301 and the error detail shows the name of the user with the account name in brackets, e.g. Christian Schmitz (admin).
Here is a test script:
Set Error Capture [ On ]
Set Field [ Contacts::Title ; Contacts::Title ]
# @variable $name
# @variable $error
Set Variable [ $r ; Value: Let ( [ $error = Get(LastError); $name = Get(LastExternalErrorDetail ) ]; "") ]
Show Custom Dialog [ $error ; $name ]
As you see we use Let statement to query LastError and LastExternalErrorDetail in one calculation. Why? Because if you split it in two lines, the Set Variable would clear the error state. If you notice the comments above it, we use those to tell MBS FileMaker Plugin that there are variables declared in the Let statement. Otherwise our variable check would be unhappy.
We hope this tip helps you.
New in this prerelease of version 11.0 of the MBS FileMaker Plugin:
- Fixed bug in Font.Deactivate for macOS, where deactivate was not working since v10.3.
- Fixed FileDialog.GetNameFieldStringValue for Windows to return name of chosen file after dialog showed.
- Fixed problem with plugin preventing variable name being selected when you open a Set Variable dialog by formatting text twice.
Download at
monkeybreadsoftware.com/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
Not sure if you know, but for about 20 years already we offer academic discounts for students learning to program. Both our FileMaker and Xojo plugins are available with academic discounts including DynaPDF licenses.
Recently we cleaned up our order pages, so academic prices are no longer listed. This basically cuts the list of store items by half for us. It's much easier to provide you with a coupon code to order and use the same website as everyone else.
If you are interested in an academic license, please contact us via email and provide a proof of status. That may be a copy of a university or school identity card. For young people below age of 25, we may just accept a proof of birth date.
Over the years we got quite a few students, some of which grown up to now use full commercial licenses for their work. From time to time we also granted academic status to retired, unemployed or other people, who asked for this with a compelling reason.
Please note that an order for an academic license from a company doesn't usually work. We expect companies to buy commercial licenses. Same if you receive any compensation for your work.
For Non-Profit organization supporting humanity, we also provide a discount on request.
Please don't hesitate to contact us if you have questions.
As you may know we have a great Optimize command for DynaPDF. You can use it on PDF documents in both FileMaker and Xojo plugins. Over time the command got more and more powerful and we like to write here about some of the features.
In general the function rebuilds the content stream of all pages, templates, patterns, annotations, and form fields. This may remove errors in the content stream and produce a consistent document.
When you specify the flags, the default flag value (0) just rebuilds the content stream and fixes errors.
You may specify "InMemory" to have changes made in a way, that the PDF is in memory and not flushed to the current output. Normally you may not notice the difference, but if you like to continue writing to the PDF, the memory flag is needed.
Scale images
The Optimize function can reduce the file size of PDF files. You can pass the ScaleImages flag and then all images are checked. You can define a minimum and target resolution for images. All pictures with at least the minimum resolution are checked. This avoids that we look on icons for example and only process pictures with a significant resolution. DynaPDF scales the images down to the target resolution and compresses them with the compression algorithm you specify, usually JPEG. If the final picture is smaller in size, we store it, otherwise we keep the original image. The reason is that often one bit tiff images can be smaller than a reduced resolution JPEG file.
You can pass flag SkipMaskedImages to skip masked images as JPEG compression may not work well with pictures, where a specific color is used to mark transparency.
The check whether new picture is smaller than original image can be disabled via NoImageSizeCheck flag.
If you like to get images compressed with JBIG2, you can use CompressWithJBIG2 flag. This can drastically reduce the file size since JBIG2 compression achieves much higher compression rates than any other 1 bit image filter that PDF supports. The JBIG2 compression filter in DynaPDF is lossless, that means the original image quality will be preserved. Great to combine with ConvertGrayTo1Bit flag discussed below.
(more)
When you output styled text via MBS Plugins and DynaPDF, we convert the styled text for you in commands for DynaPDF. For this conversion we recently added a leading factor to define the line spacing based on the font size. You can still define leading (distance between two base lines) in points if you like, but the relative measure to font size is probably better for a lot of cases. Of course only makes an effect if font size changes within a text.
For FileMaker we added LeadingFactor parameter to
DynaPDF.ConvertStyledText,
DynaPDF.WriteStyledText and
DynaPDF.WriteStyledTextEx functions.
For Xojo we added LeadingFactor parameter for WriteStyledText, WriteStyledTextEx and ConvertStyledText methods in
DynaPDFMBS class. The default value for the new parameter is -1, which allows us to detect whether you use the parameter.
For all the functions, please pass nothing (omit parameter) or zero for automatic behavior like it used to be: Leading being the font size. You can pass a factor like 1.2 or 1.5 to increase line spacing as needed.
Available in current pre-release. Please don't hesitate to contact us with your questions.
New in this prerelease of version 11.0 of the MBS FileMaker Plugin:
Download at
monkeybreadsoftware.com/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
We have a new example for a client to add cutting edges and a crop box to a PDF document.
The picture on the left shows the debug version, where you see the red lines we add and a rectangle around the content. The crop box is put around the content, so the printing shop will crop the paper at the right position. Only for debugging, we show you the rectangle and leave the crop box away, so you see it.
# Add crop markers
# Initialize DynaPDF if needed
If [ MBS("DynaPDF.IsInitialized") ≠ 1 ]
Perform Script [ Specified: From list ; “InitDynaPDF” ; Parameter: ]
End If
# Clear current PDF document
Set Variable [ $pdf ; Value: MBS("DynaPDF.New") ]
# Load PDF from container
Set Variable [ $r ; Value: MBS("DynaPDF.OpenPDFFromContainer"; $pdf; Convert to 2 Pages::InputPDF) ]
If [ MBS("IsError") ≠ 0 ]
Show Custom Dialog [ "Failed to load PDF" ; $r ]
Exit Script [ Text Result: ]
End If
#
Set Variable [ $Debug ; Value: 1 ]
#
# Query page size for first page
Set Variable [ $bounds ; Value: MBS("DynaPDF.GetImportPageBounds"; $pdf; 1; "MediaBox") ]
Set Variable [ $boundsLeft ; Value: MBS("Math.TextToNumber"; MiddleValues ( $bounds ; 1 ; 1 )) ]
Set Variable [ $boundsTop ; Value: MBS("Math.TextToNumber"; MiddleValues ( $bounds ; 2 ; 1 )) ]
Set Variable [ $boundsRight ; Value: MBS("Math.TextToNumber"; MiddleValues ( $bounds ; 3 ; 1 )) ]
Set Variable [ $boundsBottom ; Value: MBS("Math.TextToNumber"; MiddleValues ( $bounds ; 4 ; 1 )) ]
Set Variable [ $w ; Value: Abs($boundsRight - $boundsLeft) ]
Set Variable [ $h ; Value: Abs($boundsBottom - $boundsTop) ]
#
# now import page as template and place on new page with border around
Set Variable [ $template ; Value: MBS("DynaPDF.ImportPageAsTemplate"; $pdf; 1) ]
Set Variable [ $r ; Value: MBS("DynaPDF.AppendPage"; $pdf) ]
Set Variable [ $r ; Value: MBS("DynaPDF.SetPageWidth"; $pdf; $w + 200) ]
Set Variable [ $r ; Value: MBS("DynaPDF.SetPageHeight"; $pdf; $h + 200) ]
Set Variable [ $r ; Value: MBS("DynaPDF.PlaceTemplateEx"; $pdf; $template; 100; 100; $w; $h) ]
Set Variable [ $r ; Value: MBS("DynaPDF.SetStrokeColor"; $pdf; 1; 0; 0) ]
Set Variable [ $r ; Value: MBS("DynaPDF.SetLineWidth"; $pdf; 1) ]
#
If [ $Debug ]
Set Variable [ $r ; Value: MBS("DynaPDF.Rectangle"; $pdf; 100-1; 100-1; $w+2; $h+2; "stroke") ]
End If
#
Set Variable [ $r ; Value: MBS("DynaPDF.MoveTo"; $pdf; 100; 100 - 10) ]
Set Variable [ $r ; Value: MBS("DynaPDF.LineTo"; $pdf; 100; 0) ]
Set Variable [ $r ; Value: MBS("DynaPDF.ClosePath"; $pdf; "stroke") ]
#
Set Variable [ $r ; Value: MBS("DynaPDF.MoveTo"; $pdf; 100; 100 + 10 + $h) ]
Set Variable [ $r ; Value: MBS("DynaPDF.LineTo"; $pdf; 100; $h + 200) ]
Set Variable [ $r ; Value: MBS("DynaPDF.ClosePath"; $pdf; "stroke") ]
#
Set Variable [ $r ; Value: MBS("DynaPDF.MoveTo"; $pdf; 100 + $w; 100 - 10) ]
Set Variable [ $r ; Value: MBS("DynaPDF.LineTo"; $pdf; 100 + $w; 0) ]
Set Variable [ $r ; Value: MBS("DynaPDF.ClosePath"; $pdf; "stroke") ]
#
Set Variable [ $r ; Value: MBS("DynaPDF.MoveTo"; $pdf; 100 + $w; 100 + 10 + $h) ]
Set Variable [ $r ; Value: MBS("DynaPDF.LineTo"; $pdf; 100 + $w; $h + 200) ]
Set Variable [ $r ; Value: MBS("DynaPDF.ClosePath"; $pdf; "stroke") ]
#
Set Variable [ $r ; Value: MBS("DynaPDF.MoveTo"; $pdf; 100 - 10; 100) ]
Set Variable [ $r ; Value: MBS("DynaPDF.LineTo"; $pdf; 0; 100) ]
Set Variable [ $r ; Value: MBS("DynaPDF.ClosePath"; $pdf; "stroke") ]
#
Set Variable [ $r ; Value: MBS("DynaPDF.MoveTo"; $pdf; 100 + 10 + $w; 100) ]
Set Variable [ $r ; Value: MBS("DynaPDF.LineTo"; $pdf; $w + 200; 100) ]
Set Variable [ $r ; Value: MBS("DynaPDF.ClosePath"; $pdf; "stroke") ]
#
Set Variable [ $r ; Value: MBS("DynaPDF.MoveTo"; $pdf; 100 - 10; 100+$h) ]
Set Variable [ $r ; Value: MBS("DynaPDF.LineTo"; $pdf; 0; 100 + $h) ]
Set Variable [ $r ; Value: MBS("DynaPDF.ClosePath"; $pdf; "stroke") ]
#
Set Variable [ $r ; Value: MBS("DynaPDF.MoveTo"; $pdf; 100 + 10 + $w; 100 + $h) ]
Set Variable [ $r ; Value: MBS("DynaPDF.LineTo"; $pdf; $w + 200; 100 + $h) ]
Set Variable [ $r ; Value: MBS("DynaPDF.ClosePath"; $pdf; "stroke") ]
#
If [ $Debug ]
# no bounding box
Else
Set Variable [ $r ; Value: MBS("DynaPDF.SetBBox"; $pdf; "crop";100; 100; $w+100; $h+100) ]
End If
Set Variable [ $r ; Value: MBS("DynaPDF.SetBBox"; $pdf; "media"; 0; 0; $w+200; $h+200) ]
#
Set Variable [ $r ; Value: MBS("DynaPDF.EndPage"; $pdf) ]
#
Set Field [ Convert to 2 Pages::OutputPDF ; MBS("DynaPDF.Save"; $pdf; "Merged.pdf") ]
# done, save to container
Set Variable [ $r ; Value: MBS("DynaPDF.Release"; $pdf) ]
We may include this script as example for future releases. Let us know if you have questions about DynaPDF and MBS Plugin.
Two years ago I had my first working day at MBS.
Today I have the opportunity to résumé about these two years. I have learned a lot in this time, especially I got to know the programming language Xojo and the FileMaker platform and was allowed to realize some exciting projects. I also wrote some articles for the
German FileMaker Magazine (
see here) and the
Xojo Developer Magazine. I also gave presentations at conferences on- and offline.
2020 was a very special year in which we all outgrew ourselves and had to find new solutions for problems that were unprecedented until then. Digitalization got the 7 mile boots on and home office was the new work routine for many. I was able to learn a lot in the last two years. Not only technical knowledge, but I also got to know many kind and interesting people and was allowed to work with them. I would like to thank all of you who have welcomed me so kindly into the community. I am looking forward to many new and interesting exchanges in the next few years, hopefully some of them will take place offline again.
I wish you now a happy, successful and healthy year 2021!
Yours truly Stefanie Juchmes
New in this prerelease of version 11.0 of the MBS FileMaker Plugin:
Download at
monkeybreadsoftware.com/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
We updated the Plugin License Decision Graph for the newer targets:
Since Data API and FileMaker Go can't run the plugin directly, you have to use Perform Script on Server there. With FileMaker Pro and FileMaker Go you can use Perform Script on Server to do enjoy plugin functions.
Please let us know if you have a question or comment.