Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
12.1
12.2
12.3
12.4
12.5
13.0
13.1
13.2
13.3
13.4
Statistic
FMM
Blog
Initializes the DynaPDF functions in the MBS Plugin.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
DynaPDF | 3.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameter | Description | Example | Flags |
---|---|---|---|
LibraryPath | The native file path to the DynaPDF library file. Can be empty for default file name with file in same folder as plugin. |
$path | |
SerialNumber | The DynaPDF serial number. If you don't provide a serial number, you run DynaPDF in demo mode. |
$serial | Optional |
Initialize when needed:
#Initialize DynaPDF
If [MBS( "DynaPDF.IsInitialized" ) ≠ 1]
If [Get ( SystemPlatform ) = -3]
# iOS
Exit Script []
Else If [Get ( SystemPlatform ) = -2]
# Windows
Set Variable [$path; Value: "dynapdf.dll"]
Else
# Mac
Set Variable [$path; Value: "dynapdf.dylib"]
End If
Set Variable [$r; Value: MBS( "DynaPDF.Initialize"; $path; "12345..." )]
If [$r ≠ "OK"]
Show Custom Dialog [ "DynaPDF failed to initialize"; $r]
End If
End If
Initialize with path for demo:
MBS( "DynaPDF.Initialize"; $path)
Initialize with path and serial for real usage:
MBS( "DynaPDF.Initialize"; $path; $serial)
Initialize on server with dynapdf.dylib in Server folder on Mac:
MBS( "DynaPDF.Initialize"; "/Library/FileMaker Server/dynapdf.dylib"; $serial)
Initialize on server with dynapdf.dylib in Server folder on Windows:
MBS( "DynaPDF.Initialize"; "C:\Programs\FileMaker Server\dynapdf.dll"; $serial)
Initialize with check for server:
If [MBS("IsServer")]
# locate with absolute path
Set Variable [$path; Value: "/Library/FileMaker Server/Database Server/Extensions/dynapdf.dylib"]
Else
# locate with name in extensions folder
Set Variable [$path; Value: "dynapdf.dylib"]
End If
# initialize dynapdf
Set Variable [$r; Value: MBS( "DynaPDF.Initialize"; $path) ]
Write library to disk from container and initialize:
# your license key if you have one
Set Variable [$SerialNumber; Value:""]
# where we store the library file
Set Variable [$tempFolder; Value:MBS( "Folders.UserTemporary" )]
If [MBS( "IsMacOSX" )]
# library for Mac from Container
Set Variable [$container; Value:DynaPDF::DynaPDFLibMacContainer]
Set Variable [$filename; Value:"dynapdf.dylib"]
Else If [MBS( "IsWindows" )]
# library for Win from Container
Set Variable [$container; Value:DynaPDF::DynaPDFLibWinContainer]
Set Variable [$filename; Value:"dynapdf.dll"]
Else
Exit Script []
End If
Set Variable [$filepath; Value:MBS( "Path.AddPathComponent"; $tempFolder; $filename)]
# write file
Set Variable [$r; Value:MBS( "Files.WriteFile"; $container; $filepath)]
If [$r ≠ "OK"]
Show Custom Dialog ["Writing file failed"; $r]
End If
# now initialize
Set Variable [$r; Value:MBS( "DynaPDF.Initialize"; $filepath; $SerialNumber)]
If [$r ≠ "OK"]
Show Custom Dialog ["DynaPDF initialization failed"; $r]
End If
Register with Startup script for server and client:
Startup Script:
#Register for client
Perform Script [“InitMBS”]
#Register for server. Will be ignored if no server or no plugin installed on server
Perform Script on Server [“InitMBS”]
InitMBS script:
#Enable debug logging. Shows messages in DebugView/Console.app
Set Variable [$r; Value:MBS("Trace")]
#Register if needed for right platform
If [MBS("IsRegistered") = 0]
If [MBS("IsRuntime")]
Set Variable [$r; Value:MBS("Register"; "test"; "Complete"; "Runtime"; 123; 123)]
Else If [MBS("IsServer")]
Set Variable [$r; Value:MBS("Register"; "test"; "Complete"; "Server"; 123; 123)]
Else If [MBS("IsClient")]
Set Variable [$r; Value:MBS("Register"; "test"; "Complete"; "5 Seats"; 123; 123)]
Else
Set Variable [$r; Value:"Unknown platform: " & MBS("Platform")]
End If
#Show errors, so developer can fix them
If [$r ≠ "OK"]
Show Custom Dialog ["InitMBS failed."; $r]
End If
End If
#May initialize other stuff
#like dynapdf with library in extensions folder
If [MBS("DynaPDF.IsInitialized") = 0]
Set Variable [$DynaPDFLicense; Value:"1003637-16022016-3-8-12-685C57F..."]
If [MBS("IsWindows")]
Set Variable [$r; Value:MBS( "DynaPDF.Initialize"; "dynapdf.dll"; $DynaPDFLicense)]
Else If [MBS("IsMacOSX")]
Set Variable [$r; Value:MBS( "DynaPDF.Initialize"; "dynapdf.dylib"; $DynaPDFLicense)]
Else
Set Variable [$r; Value:"Unknown platform: " & MBS("Platform")]
End If
#Show errors, so developer can fix them
If [$r ≠ "OK"]
Show Custom Dialog ["InitMBS failed."; $r]
End If
End If
Initialize on server with dynapdf.so in Server folder on FileMaker Cloud (Linux):
MBS( "DynaPDF.Initialize"; "/opt/FileMaker/FileMaker Server/dynapdf.so"; $serial)
Initialize in iOS:
MBS("DynaPDF.Initialize"; "DynaPDF.framework")
# framework or dylib in Frameworks folder inside app, name case sensitive!
Write DynaPDF library to same folder as plugin:
Goto Layout [ “MBS Update” (MBS Update) ; Animation: None ]
Go to Record/Query/Page [ First ]
Set Variable [ $folder ; Value: MBS( "Plugin.Path" ) ]
Set Variable [ $folder ; Value: MBS( "Path.RemoveLastPathComponent"; $folder ) ]
Set Variable [ $path ; Value: MBS( "Path.AddPathComponent"; $folder; "dynapdf.dylib" ) ]
Set Variable [ $Plat ; Value: MBS("Files.MoveToTrash"; $path) ]
Set Variable [ $Plat ; Value: MBS("Files.WriteFile"; MBS Update::dynaPdfMac; $path) ]
Initialize automatically and look in same folder as plugin for the DLL/dylib/so file:
MBS("DynaPDF.Initialize"; ""; $license)
This function checks for a license.
Created 18th August 2014, last changed 30th December 2022