The PDF format defines 14 standard fonts which you can use without embedding those fonts:
Family name | Full name | PostScript name | Style |
Courier | Courier | Courier | Regular |
Courier | Courier Bold | Courier-Bold | Bold |
Courier | Courier Oblique | Courier-Oblique | Italic |
Courier | Courier Bold Oblique | Courier-BoldOblique | Bold + Italic |
Helvetica | Helvetica | Helvetica | Regular |
Helvetica | Helvetica Bold | Helvetica-Bold | Bold |
Helvetica | Helvetica Oblique | Helvetica-Oblique | Italic |
Helvetica | Helvetica Bold Oblique | Helvetica-BoldOblique | Bold + Italic |
Times | Times Roman | Times-Roman | Regular |
Times | Times Bold | Times-Bold | Bold |
Times | Times Italic | Times-Italic | Italic |
Times | Times Bold Italic | Times-BoldItalic | Bold + Italic |
Symbol | Symbol | Symbol | Regular |
ZapfDingbats | ZapfDingbats | ZapfDingbats | Regular |
This is great, because those fonts are always available in DynaPDF independent of what the user has installed. Especially with Xojo applications on linux, where DynaPDF doesn't know where system font files are and you have to use them yourself. Same for Xojo Cloud.
If you want to add your own folder with font files, please use
AddFontSearchPath (
MBS Xojo Plugin) or
DynaPDF.AddFontSearchPath (
MBS FileMaker Plugin) function.
With DynaPDF 3.0.34.98 and newer, you can use standard fonts also with unicode encoding.
Registration opened today for the
FileMaker Developer Conference 2015 in Las Vegas.
Join over thousand other FileMaker developers 20th to 23rd July 2015 at The Cosmopolitan of Las Vegas, Nevada.
If you have been looking for a reason to go to Las Vegas, well this year you have one for the 20th DevCon anniversary.
Optional you can attend the training day or just watch sessions and meet other developers in the breaks.
Save $800 with the early bird offer until March 31st.
If you need a license for MBS Plugin, please purchase them through an official channel. We sell them in on our website, through Share-It, in the Xojo web store and the K&K Verlag.
Sometimes it happens that someone tries to sell his license. This is legal and possible, but please check with us to be sure the license key is valid and upgradable. And the license key should be named after the seller, so you know we issued it for him. Actually the license agreement always states that you need to have written authorization to transfer it.
But so far some people trying to sell a MBS license are not honest. They got the key somehow, prefer to get cash and the license key of course does not match their name. Please don't buy such a license key.
Having an illegal license does not help you. If this is detected, you have to buy a new license regularly including updates for the past to get back on the right track. Else the lawyers would force you into destroying all your software using the illegal license. This can include that all your customers have to stop using your software, get their money back and of course sue you for compensation.
So please if you got a license key second hand or plan to get one, please contact us to make sure the license key is legal.
How do we know you use an illegal license key?
Well, you may want to come to use and buy an upgrade. Or a good friend of you wants to put you in trouble and reveals your dirty secret. Third, we download a lot of software and scan them for license keys.
Finally as a developer you should yourself know that people need to pay their license to you for you to make a living. So please apply same rules to the tools you use and pay for them.
The Xojo group in Paris meets in early March and if you are in the city, be sure to visit them:
Bonjour,
Je reprends le relai de Stéphane Thiroux, pour faire une journée d'information sur XOJO.
Stéphane Pinel ingénieur chez Xojo, nous parlera des futurs évolutions du produit.
Il y aura plusieurs présentations (dtPlugins pour iOS, utilisation des declares, création d'un plugin)
Une participation de 32,55 euros est demandé pour couvrir les frais de la salle.
Pour vous inscrire c'est ici eventbrite.com/event/15426344612/
Bonne journée !
One popular combination with our MBS FileMaker Plugin is buying it together with DynaPDF Pro license. This way you can automate all the PDF things on a server, either in scheduled scripts, with WebDirect or with FM Pro and Perform Script on Server script step. Use DynaPDF for:
- Create PDF files on server for invoices, catalogs, receipts, etc.
- Embed pictures in files
- Encrypt or Sign PDF files
- Merge pages from several PDF files in one PDF.
- Email your PDFs to clients or upload to FTP Server via MBS Plugin.
- Support PDF/A and PDF/X
- Extract content from existing PDF, e.g. for indexing and searching in content
- Build reports and invoices with table functions
- Add form fields, later query response values from PDFs
- Embed fonts for best display
- Include web and page links in PDF.
We
offer the bundle now 16% cheaper than normal price.
Please check price on purchase page as it depends on currency and VAT status.
PS: Currently we are working on print support for DynaPDF.
New in this prerelease of the 15.0 plugins:
- Updated Bonjour SDK on Windows to newer version.
- Added DNSServiceAddrInfoMBS class.
- Updated NikonCamera Plugin to work with newer SDKs for D4S, D750 and D810.
- Fixed crash in NSSearchFieldControlMBS with Real Studio (not Xojo).
- Added NSSecureTextFieldControlMBS control.
- Added NSTextViewControlMBS.AcceptTabs property, so you can decide if plugin passes tab key to Xojo framework or not.
- Updated AppleRemoteMBS with new code and methods.
- Fixed rare crash problem with Bonjour classes on Windows.
- Added new DynaPDF classes: DynaPDFMeasureMBS, DynaPDFNumberFormatMBS, DynaPDFPointDataDictionaryMBS, DynaPDFPointDataMBS, DynaPDFSysFontMBS and DynaPDFViewportMBS.
- Improved DynaPDFImageMBS class.
- Added private constructors to most DynaPDF classes.
- Added rate, pitch and volume for WindowsPlayerMBS class. As volume for right and left can be set individual, you can pan yourself.
- Added QLPreviewViewControlMBS class.
Download:
macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.
New in this prerelease of the 5.0 plugins:
- Added WebView.GetIcon function.
- Fixed window functions so you can pass once again 0 for the front window. Broken in earlier prerelease.
- Fixed bug with Trace on Windows. (introduced in pr5)
- Fixed bugs for future FileMaker version.
- Updated Bonjour SDK on Windows to newer version.
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
Just 100 days left until we all meet for Geoff's keynote. Already over 60 people signed up for the conference, so it may sell out like last year.
The good news on the hotel is that plenty of rooms are still available. The bad news is that you have to call and ask for the rate for the conference. It's $169 per room and the website doesn't find it. Also there seem to be no suites available for discounted rates, just the regular ones. Anyway, as we can cancel room up to 2 days before conference, you should make your reservation early and later modify or cancel it.
The 2015
Xojo Developer Conference will take place April 29 - May 1, 2015 at the Radisson hotel in fabulous downtown Austin!
XDC is the best place for Xojo users to learn from the experts, network with other Xojo users from around the world and meet the Xojo engineers. We will have sessions for everyone wanting to get the most out of their tool - from topics for those who are just getting their feet wet, to sessions for the most advanced Xojo developer.
Here a few smileys:
😀😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😑😒😓😔😕😖😗😘😙😚😛
😜😝😞😟😠😡😢😣😤😥😦😧😨😩😪😫😬😭😮😯😰😱😲😳😴😵😶😷
Do you see all 56?
Well, in our plugins we have a function to Encode Text to HTML and it didn't work for those smileys. The reason is that those are outside the normal 16bit unicode range. They need 2 characters in UTF16. Most functions in our plugins don't look for such things. And normally it doesn't matter as we pass through texts. But for encoding to HTML we need to handle UTF32 well. So plugin needs to decode 16bit character pairs to make sure they are encoded correctly.
So after a couple of hours work on our plugin's text handling you can now enjoy plugins doing it right!
The XojoTalk podcast just got it's fifth episode. So go and listen to it!
- Shoving Phones In Their Pockets with Geoff Perlman
- That's A Lot Of Tens with Bob Keeney
- Developer of Long Standing with Eric Gibbon
- Grizzled Veterans with Travis Hill
- Where's My Column? with Marc Zeedar
Subscribe at iTunes or to
RSS Feed
New in this prerelease of the 15.0 plugins:
- Updated DynaPDF to version 3.0.38.108.
- Deprecated CocoaControlMBS control. Please use concrete Cocoa controls and tell us if something is missing.
- Added NSDatePickerControlMBS control.
- Added WindowsPlayerMBS class.
- Changed NSScrollViewMBS to be a subclass of NSControlMBS. See example for ContainerControl in a ScrollView.
- Fixed bug in class extension function setters not being called! (introduced in pr5).
- Marked AppleScriptMBS as deprecated in favor of NSAppleScriptMBS as Apple deprecated the underlaying functions for Mac OS X 10.8.
- Changed function EncodingToHTMLMBS and DecodingFromHTMLMBS to work correctly for higher Unicode characters like smileys. Also changed a couple of string handling functions to support that.
- The DynaPDF dialog for complaining about old serial number shows the key now.
- Added Brightness property for CGDisplayMBS class.
- Updated CGDisplay* classes to show more properties in debugger and work in console projects.
- Remove last cases where plugin would query Gestalt for system version and cause a warning on console.
- Added advanced Twain methods for capabilities.
- Added CoreAudioListenerMBS class to listen for events like audio setup changed.
- Added contents, labels and identifiers functions to ABMultiValueMBS class to help easier inspecting what's inside.
- We limit curl progress event and yielding to maximum 60 per second, just to make sure we don't spend all CPU time on progress update or yielding.
- Fixed bug for SQL ODBC plugin functions to return error messages without garbage text in-between.
- Changed SQL Plugin to default to Scrollable = false for cursors. You can enable it if you need.
Download:
macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.
New in this prerelease of the 5.0 plugins:
- Updated Text.EncodeToHTML and Text.DecodeFromHTML to handle UTF32 correctly and encode smileys well.
- Improved trace output to show special characters correctly (e.g. umlauts).
- Changed parameter functions for SQL to also accept parameter by index with # as prefix.
- Fixed a bug with SQL connections not freed correctly.
- Fixed bug for SQL ODBC plugin functions to return error messages without garbage text in-between.
- Changed SQL Plugin to default to Scrollable = false for cursors. You can enable it if you need.
- Updated DynaPDF to version 3.0.38.108.
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
Open command line prompt as admin on Windows 7 or newer and run:
bcdedit /set IncreaseUserVa 3072
Now you can use over 2900 MB of memory with your Xojo made app.
(
detailed instructions)
This should also help the IDE as it needs a lot of memory for plugins and leaked memory.
Just a few fixes for currency data type, web listbox, report designer and modules import/export.
Please install.
xojo.com/download
Just a quick note to everyone interested in DynaPDF Lite/Pro license.
If you get the Omegabundle, you receive a DynaPDF Starter license. You can upgrade that license to Lite/Pro for a discounted price.
Interested, please email us.
We'll remind everyone later when the bundle offer ends and all licenses are delivered on their upgrade paths available.
PS: Bundle extended through 9th March. This is the final end date!
In the last days we saw some new things in Feedback which are scheduled. We are happy that the Xojo application retina support is now scheduled. I'm also happy that auto and text functions for the plugin SDK are scheduled.
So one way to learn what is coming in the future to Xojo is to check the Feedback application for what's reported there. Within something like 40000 feedback cases, it's difficult to find something. But well, here are 20 scheduled cases. This means that each item has been assigned to an engineer and be scheduled to ship in one of the future releases of Xojo. Maybe interesting to know what Xojo engineers work on?
- 3215: Allow compilation using the command-line
- 3353: 64 bit Applications Support
- 3851: Viewing Custom Controls in WIndow Editor.
- 7836: [WEB] [Cocoa] Feature request: NSTableView support
- 9053: [IDESubmitted] Report: Group Header 'Repeat on New Page' Option
- 9054: [IDESubmitted] Report Option: Need field option for Supress Repeated Values
- 9205: [WEB] Report Feature Request: Margin Guides
- 9206: [WEB] Report Feature Request: Pagination Features
- 10311: Support HTTP 1.1 in HTTPSocket and HTTPSecureSocket
- 10701: Add ability to Export PDFs
- 13417: Need a WebComboBox
- 16046: Add WebStyledText class to support styling text (with links) for WebTextField, WebTextArea, WebLabel, WebButton, WebLink, etc.
- 16671: Support building desktop applications for OS X with LLVM
- 17424: WebMapViewer: Add Directions
- 18399: Make the HTMLViewer on Windows use the most recent version of Internet Explorer that is installed
- 18541: WebMoviePlayer Lacking Simple Stop Method
- 20384: Support Drag and Drop for web applications
- 24074: undeprecate REALPictureClearCache
- 25108: Xojo application is not retina display aware.
- 37329: Add support for the new "Text" datatype in the plugin SDK
- 37330: Add support for the new Auto type in the plugin SDK
We recommend everyone to use Feedback. At least sign in and put your 5 favorite cases in the top case list.
So until we have HTTP 1.1, we use the MBS CURL Plugin. And until we have PDF built into Xojo, we use DynaPDF Plugin.
New in this prerelease of the 15.0 plugins:
- Fixed JPEGImporterMBS.ReadHeader to once again read ICC profile data and no longer reports an error about too few scanlines read.
- Improved LCMS2TransformMBS.Transform to correctly handle row bytes differences between input/output bitmaps.
- Changed PictureMBS to create memoryblock for memory allocation, so you can get reference of that memoryblock via Memory property.
- Added new properties for LCMS2TransformMBS class to help debugging.
- Changed 20 properties to be debugger visible in LCMS2 plugin.
- Added OptionKeepAliveMBS for socket class.
- Several functions working with variants can handle Text data type in variants (They are converted to String for plugin).
- Added CURLSMultiMBS class.
Download:
macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.
New in this prerelease of the 5.0 plugins:
- Fixed a bug with DynaPDF table handling. Reference counting was broken in earlier prerelease.
- Fixed bug in DynaPDF string handling introduced in earlier prerelease.
- A changed in C++ linker in newer XCode version made problems with merging classes which should not merged. This caused deadlocks on server. (introduced in pr2)
- Fixed a bug in ServerSocket.SendQuery which can lead to a crash in case of a timeout.
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
If you are interested in encrypted SQLite databases with
SQLCipher, you can use their library with our plugins.
You simply get a copy of their library, either the commercial or the open source one. For open source, I built my own copies today for Mac and below you can download them. When you use my SQL plugin functions, you normally set option to point to libsqlite.dylib file. But instead to this file, you point to the libsqlcipher.dylib file. Now you run as first command "PRAGMA key = 'passphrase';" to pass in your password for the database. All following calls should run normal and the file is encrypted.
This is not the same encryption as used by Xojo. They use the SQLite Encryption Extension from Hwaci - Applied Software Research (see
hwaci.com/sw/sqlite/)
Download my built library:
sqlciphermac.zip
The January/February 2015 (13.1) issue of xDev Magazine is now available.
Here's a quick preview of what's inside:
*
Birmingham 2014 * by Richard Duke
Most of us couldn't make it to the U.K. for their annual Xojo Conference, but fortunately Richard was there to capture it all in words and photos.
*
Data Access * by Kevin Cully and Scott Boss
What's the best way to access data within Xojo? Kevin and Scott walk you through the pros and cons of three different paradigms.
*
Xojo Health Journal * by JC Cruz
Health logging is all the rage, so longtime xDev contributor JC Cruz documents creating a health journalling application.
*
iOS First Look * by Marc Zeedar
We've been waiting for this day for a long time: Xojo can now create iOS applications! But what is the experience like? Marc covers an overview of iOS development using Xojo, explaining what you'll need, and how it works.
Plus: columns on creating our first iOS app, Xojo 2014r3, database modeling, RegEx literals, tips on listbox row coloring, and much more.
So a few weeks passed and we had time to check details on new data types. Years ago I appreciated books like Inside Turbo Pascal (or similar name) which explained all the details behind the runtime, compiler and data structures used there. Sometimes I'd wish someone knowing internals would document them in nice articles to give us interesting knowledge. Especially sometimes you can write better code or optimize for performance if you know how things work internally. Until that, here are my observations on the new data types:
Text
The new text data type is interesting. The idea is to have a data type for a string of unicode characters is good and removes a couple of downsides on the old string data types. We have a lot of fallback code in MBS plugins to handle things right. For example the plugin will default to some text encoding if you pass in a string with no text encoding. On the other side we still need to put JPEG data into string to write them into a binarystream object. In the last months I moved a couple of methods to use Memoryblocks for a block of bytes instead of a string, but that causes a lot of unnecessary automatic conversion.
The new text data type is not a normal class, so you can't assign it simply to object variable. But it is reference counted like the old string class and any objects in Xojo, so memory storage is efficient. Especially as text is either stored in ASCII or Unicode internally depending of content. Most texts for us western people is just ASCII, but anything containing umlauts or the asian characters will be stored as UTF16. And it looks like UTF16 is converted to Normalization Form Canonical Composition. The ä (umlaut a) for example is stored as one unicode character and not as two like Mac OS X does it for file names.
Auto
The new auto data type is similar to variant. It wraps the data type, but does not do the auto conversion. So assigning an auto value with text inside to an integer will give a TypeMismatchException. This data type is also not a regular object internally (can't be assigned to object variable), but it is reference counted. At least passing an auto value around seems not to copy it.
But something is strange there. Auto seems only to be a number internally, maybe a key in a dictionary the runtime manages? Or a structure based data type? Well, we have to wait for Xojo Inc. to explain some of the internals, so we can make better use of the auto objects.
To know type of data in auto, you can use the new framework's introspection functions:
dim a as auto = 123
Dim info As Xojo.Introspection.TypeInfo = Xojo.Introspection.GetType(a)
msgbox info.text
which gives you text "Int32" here. Please note that older introspection functions like Introspection.GetType do not work on auto data type.
While you can't assign nil to a text, you can do so to auto. And auto can be compared with nil, which is also the default value. And is actual integer/pointer value of auto in that case is indeed zero (you see that if you debug a plugin function taking auto parameter). Vartype function seems to work on auto data type just fine, but that may be just due to the unpacking and repacking as variant.
Variants
When you stuff text in a variant, you get a new variant type with number 37 internally. At least vartype() returns this number now for a text variant. To get back the text from the variant, you can use TextValue function. Or use StringValue which converts to normal string. For array of text, well this will gives vartype 4096 + 37.
For auto data type, we can note that if you put an auto into a variant, it's unpacked first and the data type itself is wrapped for the variant. So putting auto with text into variant, gives you a variant of type text.
Plugins
For the plugin we created a couple of feedback cases to allow text (
37329) and auto (
37330) data types. Until we have some API, we ignore them in general. For variants we treat them as strings and use StringValue property. Arrays of text can be passed to plugin inside a variant, but the plugin can only ignore them currently.
New in this prerelease of the 15.0 plugins:
- Added CGBitmapContextMBS.CreateRGB and CGColorSpaceMBS.CreateWithHandle functions.
- Improved GameKit classes. No longer build for Mac PPC.
- Reorganized plugins internally. Globals and Class Extensions are now registered as modules.
Download:
macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.
New in this prerelease of the 5.0 plugins:
- Fixed a bug with RichText.SetFormattedText function.
- Added PrintDialog.SetPrintType, PrintDialog.SetPaperName and PrintDialog.GetPaperName function.
- When passing parameters, the plugin now more often return back the wrong value, so you can easier find a case where you passed wrong parameter.
- When looking for front window, we now better ignore floating palettes like Data Viewer on Mac.
- Added Webview.Scrollbar.getHorizontalMaximum, Webview.Scrollbar.getHorizontalPosition, Webview.Scrollbar.getVerticalMaximum, Webview.Scrollbar.getVerticalPosition and Webview.Scrollbar.set for Mac.
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.