Running the below code in debug mode allows me to download a PDF file (tested with Xojo versions since v2021 release 3.1).
Using the same code on Xojo cloud allows me to download the PDF when I use Xojo version 2021 3.1.
However, downloading does not work with the latest releases. The exception statement in the code reveals “Something really bad happened, but I don’t know what.”, so none of the used error options is recognized. Is this a bug or does anyone know how to adjust the code to get this working?
Note, downloading just TXT files works for any version both in debug and Xojo cloud.
You can try it with https://testpdfdownload.xojocloud.net
And already, thanks for your help.
var DocumentPDF as PDFDocument
DocumentPDF = New PDFDocument(PDFDocument.PageSizes.A4)
DocumentPDF.Creator = "Test"
DocumentPDF.Author = "Test"
DocumentPDF.Keywords = "Test"
DocumentPDF.Title = "Test file downloads"
DocumentPDF.Subject = "Test file downloads"
var g as Graphics = DocumentPDF.Graphics
g.FontName = "Arial"
g.FontSize = 16
g.DrawingColor = kBlack
Const LeftMargin = 10
var LineVerticalPosition as integer = 25
g.DrawText("Test", LeftMargin, LineVerticalPosition)
If DocumentPDF <> Nil Then
var PDFFolderItem as FolderItem
PDFFolderItem = SpecialFolder.Temporary.Child("Test.PDF")
DocumentPDF.Save (PDFFolderItem)
Session.PDFFile = WebFile.Open (PDFFolderItem) //PDFFile is a property on the Session object
Session.PDFFile.MIMEType = "application/pdf"
Session.PDFFile.ForceDownload = True
GoToURL (Session.PDFFile.URL)
end if
Exception err
If err IsA TypeMismatchException Then
MessageBox("Tried to retype an object!")
ElseIf err IsA NilObjectException Then
MessageBox("Tried to access a Nil object!")
ElseIf err IsA InvalidArgumentException Then
MessageBox("InvalidArgumentException!")
ElseIf err IsA PlatformNotSupportedException Then
MessageBox("PlatformNotSupportedException")
ElseIf err IsA UnsupportedOperationException Then
MessageBox("UnsupportedOperationException")
else
MessageBox("Something really bad happened, but I don't know what.")
End If