Topics   All   Mac OS X (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server (Not)   Client   Old   Guides
New in version: 5.4   6.0   6.1   6.2   6.3   6.4   6.5   7.0   7.1   7.2    Statistic  

DynaPDF.Initialize

Initializes the DynaPDF functions in the MBS Plugin.

Component: DynaPDF
Version: 3.0
Mac OS X: Yes
Windows: Yes
Server: Yes
FileMaker Cloud: Yes

MBS( "DynaPDF.Initialize"; LibraryPath { ; SerialNumber } )

Parameters

Parameter Description Example value
LibraryPath The native file path to the DynaPDF library file. $path
SerialNumber Optional
The DynaPDF serial number. If you don't provide a serial number, you run DynaPDF in demo mode.
$serial

Result

Description

Initializes the DynaPDF functions in the MBS Plugin.
You need to pass the path to the dynapdf library and the plugin loads it.
The DynaPDF dll/dylib files are included with the plugin archive in the examples folder. Please check our example projects on sample scripts to load and initialize DynaPDF.
If you provide a serial number, the plugin will also register DynaPDF. If you need a serial number, please order one from Monkeybread Software.
Starting with version 4.4, you can pass just the filename of library and the plugin finds it in the Extensions folder or in FileMaker's application folder.
Pro license is required for the following functions:

Lite is required for:

And all functions relaying on those functions internally.

For testing you can pass "Lite", "Pro" or "Starter" for the license key. DynaPDF runs in demo mode, but will returners if you use functions which are not covered by the license.

Windows error 193 means that 64-bit FileMaker tried to load 32-bit library or 32-bit FileMaker tried to load 64-bit library. The bit level must match between app and library. For Mac OS X the error message will tell you about wrong architecture.

If you download the library files directly from dynaforms.com website, you can use the libdynapdf.dylib, libdynapdf.so or dynapdf.dll files, too.

This function requires a native path. Use Path.FileMakerPathToNativePath to convert a FileMaker path to a native path if required. If you like to have the user choose the path, you can use FileDialog functions.
For Server be aware that server has limited permissions and may not be able to access all files on a computer.

Examples

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 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 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)

See also


DynaPDF.InitColorManagementEx   -   DynaPDF.InsertBookmark

Feedback: Report problem or ask question.




Links
MBS Realbasic Plugins - Nachhilfe in Nickenich