Search code examples
javascriptpdfutf-8savetidesdk

Save a pdf file with TideSDK


I have a decodification problem.

I have an offline desktop application, where I have to generate a pdf file and save at his open.

To generate the PDF file I use BytescoutPDF library createpdf.js.

This returns a document variable that I have to save. I tried with:

//this calls the createPDF to BytescoutPDF library
//and returns the variable into 'doc'
var doc = generaStaticPartBolla_2();

    //take the stream
    var bolla = Ti.Filesystem.getFileStream(billPath);

    //open in write mode
    bolla.open(Ti.Filesystem.MODE_WRITE);

    //write the doc file decodified in Base 64
    bolla.write(doc.getBase64Text());

    //close the stream
    bolla.close();

Now, the file generated is currupted. I'm not able to open this. How can I do this? The file must be converted in Base 64 or other?


Solution

  • I don't know if you have solved your issue now, but I had the same requirements : offline app, generating pdf from HTML, and in my case, styling the generated pdf with CSS. After trying many solutions, the main problem was to style with CSS. Finally I used WkhtmlToPdf (http://wkhtmltopdf.org/). Basically I embed the binaries (for mac os and for windows) in the app, and regarding the platform, I execute them with the Ti.Process method. WkhtmlToPdf generates a pdf in the specified path, so in this way, you will be able to open this pdf. (In order to set the path for the pdf, i use openSaveAsDialog (http://tidesdk.multipart.net/docs/user-dev/generated/#!/api/Ti.UI.UserWindow-method-openFileChooserDialog) which allows the user to set the path and the name of the generated pdf).