MBS Filemaker Plugin



TopicsAllMacOS (Only) Windows (Only) Linux (Only, Not) iOS (Only, Not)
ComponentsCrossplatform Mac & WinServerClientOldDeprecatedGuidesExamplesVideos
New in version: 9.510.010.110.210.310.410.511.011.111.2StatisticFMMBlog

Unregistered MBS FileMaker Plugin; This topic contains 1 reply, has 2 voices, and was last updated by admin 4 years, 4 months ago. Posts October 17.

  1. FileMaker Developers in Southern California (English) 55:08 minutes: MBS FileMaker Plugin 11.1 (English) 17:23 minutes: Communication with an API with help of JSON (English) 37:34 minutes: Kommunikation mit einer API mit Hilfe von JSON (German/Deutsch) 46:53 minutes: Barcodes in FileMaker (English) 16:31 minutes: Barcodes in FileMaker (German/Deutsch) 19:20 minutes.
  2. MBS FileMaker Plugin is a complex, powerful extension for FileMaker that allows users to enhance its capabilities by relying on its wide variety of options. This plugin encompasses over 3300.

Barcode.Generate

Generates a barcode.

ComponentVersionmacOSWindowsLinuxServerFileMaker iOS SDK
Barcode3.5✅ Yes✅ Yes✅ Yes✅ Yes✅ Yes
MBS( 'Barcode.Generate'; symbology; Text { ; width; height; rotation; scale; Transparent; ShowText; Encoding } ) More
MBS( 'Barcode.Generate'; /* Generates a barcode. */
$symbology; /* The symbology to use. e.g. EANX for EAN-13.
Another possibility is to lookup the symbology code in the zint manual and pass the number here. EANX is 13 for example.e.g. 'EANX' */
$Text; /* The text to encode in the barcode.e.g. '12345' */
$width; /* Optional; The desired width of the barcode in pixels.
Zero gives the auto size.e.g. 0 */
$height; /* Optional; The desired height of the barcode in pixels.
Zero gives the auto size.e.g. 0 */
$rotation; /* Optional; The rotation. Can be 0, 90, 180 or 270.e.g. 0 */
$scale; /* Optional; The scale of the target image.
Please use at least 4 for printing the barcode.e.g. 1.0 */
$Transparent; /* Optional; 0: black on white
1: black on transparent background
2: white on black (new in 7.2)
3: white on transparent background (new in 7.2)e.g. 1 */
$ShowText; /* Optional; Whether to show text. Use 0 to hide text or 1 to show text.e.g. 1 */
$Encoding) /* Optional; The text encoding for text parameter.
Default is UTF-8.e.g. UTF8 */ Less

Parameters

ParameterDescriptionExampleFlags
symbologyThe symbology to use. e.g. EANX for EAN-13.
Another possibility is to lookup the symbology code in the zint manual and pass the number here. EANX is 13 for example.
'EANX'
TextThe text to encode in the barcode.'12345'
widthThe desired width of the barcode in pixels.
Zero gives the auto size.
0Optional
heightThe desired height of the barcode in pixels.
Zero gives the auto size.
0Optional
rotationThe rotation. Can be 0, 90, 180 or 270.0Optional
scaleThe scale of the target image.
Please use at least 4 for printing the barcode.
1.0Optional
Transparent0: black on white
1: black on transparent background
2: white on black (new in 7.2)
3: white on transparent background (new in 7.2)
1Optional
ShowTextWhether to show text. Use 0 to hide text or 1 to show text.1Optional
EncodingThe text encoding for text parameter.
Default is UTF-8.
Possible encoding names: ANSI, ISO-8859-1, Latin1, Mac, Native, UTF-8, DOS, Hex, Base64 or Windows. More listed in the FAQ.
UTF8Optional

Result

Returns GMImage reference or error.

Description

Generates a barcode.
The plugin uses zint library internally, so we include the zint manual in documentation.
Possible symbologies: CODE11, C25MATRIX, C25INTER, C25IATA, C25LOGIC, C25IND, CODE39, EXCODE39, EAN8, EANX, EAN128, CODABAR, CODE128, DPLEIT, DPIDENT, CODE16K, CODE49, CODE93, FLAT, RSS14, RSSLTD, RSSEXP, TELEPEN, UPCA, UPCE, POSTNET, MSIPLESSEY, FIM, LOGMARS, PHARMA, PZN, PHARMA_TWO, PDF417, PDF417TRUNC, MAXICODE, QRCODE, CODE128B, AUSPOST, AUSREPLY, AUSROUTE, AUSREDIRECT, ISBNX, RM4SCC, DATAMATRIX, EAN14, CODABLOCKF, NVE18, JAPANPOST, KOREAPOST, RSS14STACK, RSS14STACKOMNI, RSSEXPSTACK, PLANET, MICROPDF417, ONECODE, PLESSEY, TELEPEN_NUM, ITF14, KIX, AZTEC, DAFT, MICROQR, HIBC128, HIBC39, HIBCDM, HIBCQR, HIBCPDF, HIBCMICPDF, HIBCBLOCKF, HIBCAZTEC, AZRUNE, CODE32, EANXCC, EAN128CC, RSS14CC, RSSLTDCC, RSSEXPCC, UPCACC, UPCECC, RSS14STACKCC, RSS14OMNICC, RSSEXPSTACKCC, CHANNEL, CODEONE, GRIDMATRIX, EANXCHK, UPCACHK, UPCECHK, DOTCODE, HANXIN, VIN, MAILMARK, UPNQR and ULTRA..

Mbs Filemaker Plugin Downloads

Please use EANX for EAN-2, EAN-5, EAN-8 and EAN-13. You may need to leave away the check digit for some barcodes. EAN-13 can be created with 12 or 13 digits, but for EAN-8, only pas 7 digits.
This function returns an image reference for our GMImage functions. There you can either work on the image or simply store it in a container. On the end please free the image with GMImage.Release function.
For the size, be aware that some types like UPC codes have fixed size depending on content.
See also Barcode.SetOptions for further options.
For MicroQR barcodes, you can use ECC Level 1 to 3, where 1 is default.
Length is limited to only 35 characters minus space for ECC.
You can use GMImage.SetDepth to customize the bit depth of the returned image before saving. Version 11.0 and further will default to 8 bit here, while 9.0 to 10.5 use 16 bit.

Examples

Creates UPCA barcode:

MBS( 'Barcode.Generate'; 'UPCA'; '72527270270')

Create ISDN 9780271016368 barcode with EAN:

MBS( 'Barcode.Generate'; 'EANX'; '978027101636')

Make a barcode and store it as PNG in a container:

Set Variable [$image; Value:MBS( 'Barcode.Generate'; 'UPCA'; '72527270270')]
If [MBS('Iserror') = 0]
Set Field [MyTable::BarCodeContainer; MBS( 'GMImage.WriteToPNGContainer'; $image; 'barcode.png' )]
Set Variable [$r; Value:MBS('GMImage.Release'; $image)]
Else
Set Field [MyTable::BarCodeContainer; ']
End If

Generate EAN 128

MBS( 'Barcode.Generate'; 'EAN128'; '[00]993262210000005384')

Generate UPCA barcode:

Set Variable [ $Barcode ; Value: MBS( 'Barcode.Generate'; 'UPCA'; '76837100000'; 0; 0; 0; 1; 1; 1; 'UTF8' ) ]
If [ MBS( 'IsError' ) = 0 ]
Set Field [ test::Barcode ; MBS('GMImage.WriteToPNGContainer'; $Barcode; '768371000004.png') ]
Set Variable [ $r ; Value: MBS('GMImage.Release'; $Barcode) ]
Else
Set Field [ test::Barcode ; ' ]
End If

Create a barcode and change color to red:

Set Field [Barcode Generation::Image; ']
Set Variable [$img; Value:MBS('Barcode.Generate'; Barcode Generation::Symbology; Barcode Generation::Text)]
If [GetAsNumber($img) > 0]
Set Variable [$r; Value:MBS('GMImage.SetType'; $img; 7)]
Set Variable [$r; Value:MBS( 'GMImage.ReplaceColor'; $img; 'black'; 'red'; 3)]
Set Field [Barcode Generation::Image; MBS( 'GMImage.WriteToPNGContainer'; $img; 'barcode.png')]
Set Variable [$r; Value:MBS( 'GMImage.Release'; $img )]
End If

Create a data matrix barcode with size 10 and return as container:

Let ( [
// set options for Size 10 (32x32) square for data matrix
r = MBS('Barcode.SetOptions'; 0; 10; 100);
// create a data matrix barcode
p = MBS('Barcode.Generate'; 'DATAMATRIX'; '12818670,3,1' ; 0; 0; 0; 4);
// success?
e1 = MBS('IsError');
// save as PNG
image = MBS( 'GMImage.WriteToPNGContainer'; p; 'barcode.png' );
// success?
e2 = MBS('IsError');
// free image from memory
r = MBS('GMImage.Release'; p)
// return container if no error
]; If(e1 = 0 and e2 = 0; image; ') )

Generate Maxicode with mode=4:

Mbs Filemaker Plugin Windows

Set Field [Barcode Generation::Image; ']
Set Variable [$img; Value:MBS('Barcode.SetOptions'; 4)]
Set Variable [$img; Value:MBS('Barcode.Generate'; 'MAXICODE'; 'A MaxiCode Message in Mode 4')]
If [MBS('IsError') = 0]
Set Field [Barcode Generation::Image; MBS( 'GMImage.WriteToPNGContainer'; $img; 'barcode.png')]
Set Variable [$r; Value:MBS( 'GMImage.Release'; $img )]
End If

Example for Maxicode creation, e.g. for UPS:

Set Variable [ $p ; Value: 'LS97TF 826004' // primary text ]
Set Variable [ $t ; Value: '[)>{RS}01{GS}961Z42015596{GS}UPSN{GS}123W45{GS}339{GS}{GS}1/1{GS}1{GS}N{GS}{GS}LEEDS{GS}{RS}{EOT}' ]
Set Variable [ $t ; Value: Substitute($t; '{EOT}'; Char(4)) ]
Set Variable [ $t ; Value: Substitute($t; '{RS}'; Char(30)) ]
Set Variable [ $t ; Value: Substitute($t; '{GS}'; Char(29)) ]
Set Variable [ $r ; Value: MBS('Barcode.SetOptions'; 3) ]
// Set Variable [ $r ; Value: MBS( 'Barcode.SetInputMode'; 'data' ) ]
Set Variable [ $r ; Value: MBS( 'Barcode.SetInputMode'; 'unicode' ) ]
Set Variable [ $r ; Value: MBS('Barcode.SetPrimary'; $p) ]
Set Variable [ $img ; Value: MBS('Barcode.Generate'; 'maxicode'; $t) ]
Set Field [ Barcode Generation::Image ; MBS( 'GMImage.WriteToPNGContainer'; $img ) ]
Set Variable [ $r ; Value: MBS('GMImage.Release'; $img) ]

Create barcode and crop it:

Set Field [ Barcode Generation::Image ; ' ]
Set Variable [ $img ; Value: MBS('Barcode.Generate'; Barcode Generation::Symbology; Barcode Generation::Text) ]
If [ MBS('IsError') = 0 ]
Set Variable [ $ImageHeight ; Value: MBS('GMImage.GetHeight'; $img) ]
Set Variable [ $ImageWidth ; Value: MBS('GMImage.GetWidth'; $img) ]
# calculate the crop rectangle
Set Variable [ $w ; Value: $ImageWidth ]
Set Variable [ $h ; Value: $ImageHeight ]
Set Variable [ $x ; Value: 0 ]
Set Variable [ $y ; Value: $ImageHeight - 50 ]
# crop
Set Variable [ $r ; Value: MBS('GMImage.Crop'; $img; $w & 'x' & $h & '+' & $x & '+' & $y) ]
Set Field [ Barcode Generation::Image ; MBS( 'GMImage.WriteToPNGContainer'; $img; 'barcode.png') ]
Set Variable [ $r ; Value: MBS( 'GMImage.Destroy'; $img ) ]
End If

Create barcode and cut away top half to get wider EAN codes:

Set Field [ Barcode Generation::Image ; ' ]
Set Variable [ $img ; Value: MBS( 'Barcode.Generate'; /* Generates a barcode. */ Barcode Generation::Symbology; /* The symbology to use. e.g. EANX for EAN-13. Another possibility is to lookup the symbology code in the zint manual and pass the number here. EANX is 13 for example.e.g.… ]
If [ MBS('IsError') = 0 ]
# crop to top half
Set Variable [ $h ; Value: MBS('GMImage.GetHeight'; $img) ]
Set Variable [ $w ; Value: MBS('GMImage.GetWidth'; $img) ]
Set Variable [ $r ; Value: MBS('GMImage.Crop'; $img; $w & 'x' & ($h/2) & '+0+' & ($h/2)) ]
Set Field [ Barcode Generation::Image ; MBS( 'GMImage.WriteToPNGContainer'; $img; 'barcode.png') ]
Set Variable [ $r ; Value: MBS( 'GMImage.Destroy'; $img ) ]
End If

Create Code39 barcode in Let statement:

Let ( [
// create a Code39 barcode
p = MBS('Barcode.Generate'; 'CODE39'; $Stock ; 160 ; 25 ; 0 ; 2 ; 1 ; 0);
// success?
e1 = MBS('IsError');
// save as PNG
image = MBS( 'GMImage.WriteToPNGContainer'; p; 'barcode.png' );
// success?
e2 = MBS('IsError');
// free image from memory
r = MBS('GMImage.Release'; p)
// return container if no error
]; If(e1 = 0 and e2 = 0; image; ') )

Create a CMYK picture for barcode:

Set Variable [ $img ; Value: MBS( 'Barcode.Generate'; /* Generates a barcode. */
Barcode Generation::Symbology; /* The symbology to use. e.g. EANX for EAN-13.
Another possibility is to lookup the symbology code in the zint manual and pass the number here. EANX is 13 for example.e.g. 'EANX' */
Barcode Generation::Text; /* The text to encode in the barcode.e.g. '12345' */
0; /* Optional; The desired width of the barcode in pixels. Zero gives the auto size.e.g. 0 */
0; /* Optional; The desired height of the barcode in pixels. Zero gives the auto size.e.g. 0 */
0; /* Optional; The rotation. Can be 0, 90, 180 or 270.e.g. 0 */
4; /* Optional; The scale of the target image.e.g. 1.0 */
0; /* Optional; 0: black on white */
1; /* Optional; Whether to show text. Use 0 to hide text or 1 to show text.e.g. 1 */
'UTF-8') /* Optional; The text encoding for text parameter.
Default is UTF-8.e.g. UTF8 */]
If [ MBS('IsError') = 0 ]
Set Variable [ $r ; Value: MBS( 'GMImage.SetColorSpace'; $img; 10 ) ]
Set Variable [ $r ; Value: MBS( 'GMImage.ReplaceColor'; $img; 'RGB 1 1 1 1'; 'RGB 0 0 0 1'; 10) ]
Set Variable [ $r ; Value: MBS( 'GMImage.SetQuality'; $img; 100 ) ]
Set Field [ Barcode Generation::Image ; MBS( 'GMImage.WriteToJPEGContainer'; $img; 'barcode.jpg') ]
Set Variable [ $r ; Value: MBS( 'GMImage.Destroy'; $img ) ]
End If

Generate code for US Postal Office (USPS):

MBS( 'Barcode.Generate'; 'OneCode'; '01234567094987654321-012345678')

See also

Release notes

  • Version 11.2
    • Added workaround for error 561 in Barcode.Generate. We lower ECC level now if text doesn't fit otherwise.
  • Version 11.0
    • Changed Barcode.Generate to default to 8-bit per channel for the generated image to avoid trouble if receiving software can't handle 16 bit per channel. You can still change with GMImage.SetDepth, e.g. to make a monochrome version.
  • Version 9.4
    • Added Barcode.GenerateJSON function.
  • Version 7.4
    • Fixed bug in Barcode.Generate function with generating barcode without text.
  • Version 7.2
    • Added option for Barcode.Generate to allow white on black for barcodes.

Example Databases

Blog Entries

MBS Filemaker Plugin

FileMaker Magazin

  • Ausgabe 5/2018, Seite 29, PDF
  • Ausgabe 5/2018, Seite 27, PDF
  • Ausgabe 5/2018, Seite 26, PDF

Created 18th August 2014, last changed 24th November 2020


Barcode.EANChecksum - Barcode.GenerateJSON

Feedback: Report problem or ask question.