Perhaps you have a PDF document and want to add some links to the PDF. You want to add some page links to navigate inside the PDF Document and jump to the right pages or websites. Maybe you want to change the target of a linked url in the document. With the MBS Xojo DynaPDF Plugin for Xojo you can do it in an easy way. Now I want to show you how to do it.
Initialize and load PDF
At first we need to initialized DynaPDF and put, if you have one, the license key in the document:
Dim pdf As New MyDynapdfMBS
Then we call the open dialog for choosing the PDF for import. Next we ask the user where to store the final PDF file. If the saving dialog is canceled (outFile=Nil) the script return.
Dim f As FolderItem = GetOpenFolderItem(MyFileTypes.Pdf)
Dim outFile As folderitem = GetSaveFolderItem(MyFileTypes.Pdf, "PDF with links.pdf")
If outFile = Nil Then Return
Now we create a new and empty PDF at the given file. Pass nil instead to create an in-memory PDF:
We subsequently set flags for the import. We want pages (not templates) and get all parts of the pages. By asking to use visible coordinates, our coordinates are relative to pages crop box (if existent) and honors the orientation of the page.
dim flags as integer = Bitwise.BitOr(pdf.kifImportAsPage, pdf.kifImportAll)
kifImportAsPage constant set the import options for import the page as pages and not as a template. With the setting kifImportAll all elements of the source PDF are imported. For example you can only import the bookmarks or all elements except the annotations.
After that we open our import file and import it page wise to our pdf:
and just a few in Afghanistan, Argentina, Armenia, Austria, Bahrain, Belgium, Brazil, Burkina Faso, Cayman Islands, Chile, China, Columbia, Costa Rica, Croatia, Cyprus, Czech republic, Denmark, Dominican Republic, Ecuador, Egypt, Estonia, Finland, Georgia, Greece, Guadeloupe, Guernsey, Haiti, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Ireland, Israel, Jamaica, Jordan, Kuwait, Latvia, Liechtenstein, Lithuania, Luxembourg, Macau, Madagaskar, Malaysia, Malta, Mexico, Mosambik, Namibia, Nepal, Netherlands Antilles, New Caledonia, New Zealand, Norway, Pakistan, Panama, Peru, Philippines, Poland, Portugal, Puerto Rico, Romania, Russia, Serbia, Seychelles, Singapore, Slovakia, Slovenia, South Africa, South Korea, Spain, Sri Lanka, Sweden, Taiwan, Thailand, Turkey, Uganda, Ukraine, United Arab Emirates, Uruguay and Venezuela.
In general plugin users are living where a lot of people live, who speak some english (to read documentation) and have enough knowledge to do software development and know about Xojo or FileMaker.
Our hotel room contingent "Xojo" will expire in two weeks, about three months before the conference. If you plan to join the conference, but you don't yet have a hotel room in Dorint Hotel, please reserve your room as soon as possible.
Monkeybread Software is pleased to announce the European MBS Xojo Conference in metropolitan Cologne, Germany. We meet in the lovely Dorint Hotel in the center of Cologne. The hotel is in the city center and in walking distance to the main station. Beside our two conference days we have accompanying social programme with our dinner event and optional two training days. For the evenings we have casual get-together in the hotel bar or beer garden.
To give you an update, we have already over 50 attendees signed up from 15 countries:
🇩🇪, 🇬🇧, 🇳🇱, 🇫🇷, 🇨🇭, 🇺🇸, 🇬🇷, 🇸🇮, 🇦🇹, 🇮🇹, 🇺🇦, 🇪🇸, 🇯🇴, 🇧🇪, & 🇨🇦.
We extended our last offer: Save 100 € till 24th July and pay 599 instead of 699 Euro for the ticket (+VAT if needed).
Oct 23rd: Xojo Training in English
Oct 24th: Conference, first day with dinner event
Oct 25th: Conference, second day
Oct 26th: Xojo Training in German
Registration is open. The early bird offer available till 24th July is just 599 Euro plus VAT. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Dorint Hotel as well as an accompanying social program.
Sessions are to be held in English. Our conference is conceived as a networking event for the Xojo community. The conference is an ideal opportunity for sharing your thoughts and your own development experience with fellow users and developers.
Sending Emails with various servers can be a challenge. In this blog article we like to collect the settings needed for using our SendMail functions in FileMaker or CURLEmailMBS class in Xojo to send emails. As you see we always prefer to use encryption.
Bei checking certificates, we can detect and avoid giving our password to a transparent proxy. And we enable TLSv1.2 for all here and require encrypted connection. It's important to test and verify this, as I once run into a hotel reading my emails to count them and prevent spamming.
Function RecordSetToJSON(r as RecordSet) AsString//addsdatainrecordsettoaJSONDictionaryDim FieldNames() AsStringDim Values() AsString//QuerylistoffieldnamesDim c AsInteger = r.FieldCount
For i AsInteger = 1To c
Dim d As DatabaseField = r.IdxField(i)
For i AsInteger = 1To c
Wend//makenewDictionarywiththevaluesandfieldnamesDim j AsNew Dictionary
j.Value("FieldNames") = FieldNames
j.Value("Values") = Values
//ConverttoJSONDim v As Variant = j
Dim json As JSONMBS = JSONMBS.Convert(v)
This plugin is build with my plugin build system, so it has MBS in the name and includes libraries for Mac, Windows and Linux including ARM, so you can use it in all projects. If you find a bug related to the GTK3 or 64-bit port, please tell me.
A speciality of MBS Plugins with GTK is, that we built plugins to link dynamically to GTK and use either GTK 2 or GTK 3 depending on the Xojo version. This should help to have just one set of plugins to work with Xojo 2013 up to 2019r2.
Planning a conference is hard. You have a couple of variables from hotels and restaurants like conference room rent, delegate rates, hotel room rates, costs for buffets and refreshments. Sometimes you have to commit to a minimum number of attendees to get a nice room, which may lead to pay extra unused seats. A restaurant may impose a minimum revenue so you can be the only group that night. The big unknown left is how many attendees you have.
In Berlin we had 80 people attending the conference. The room was nice and big with possible space for over 100 attendees. We planned last year for Munich with 2 conference rooms. Just in case we got more people and would like to have two tracks. Six months before the event, we cancelled the second room as we only had around 30 people on the list that early. It doesn't make sense to have two tracks and only 20 people in each room.
For our Cologne event we planned a nicer conference with a ballroom and a lot of space to host even over 100 people. We started planning the schedule for two tracks and invited speakers.
Sadly the attendee numbers don't add up as much this year. We are just about 50 people and far away to fill two rooms for running with two tracks. The contract with the hotel allows to cancel 4 months in advance and we are have reduced to half of the space. We informed the speakers and attendees that we move all sessions in one room and reduce sessions to about 45 minutes each. The improvement for you is that you can now listen to all sessions. We still plan to record them and if you have to make a call or talk to someone in the foyer while a session, you can later watch it.
If you like to help the conference planner, please commit early for the conference and sign-up as early as you can. Don't wait for the last months as the conference size is reduced or enlarged months before the conference takes place. Such a conference is usually planned a year in advanced and adjusted about 4 to 6 months before to make sure we don't have too many empty seats.