Ich habe eine neue Domain :)

Ja, Du hast richtig gelesen – ich habe meinem Blog eine neue Domain verpasst. Meine alte Domain chaensel.de ist noch immer erreichbar, leitet aber nur auf diese neue Domain weiter und wird eigentlich nur noch als E-Mail-Doomain genutzt.

Mit meiner neuen Domain haensel.pro möchte ich der zuletzt (und zukünftig) stärkeren technischen Ausrichtung meines Blogs Ausdruck verleihen und habe mich daher für diese neue Domain entschieden.

Also, ab heute gilt: haensel.pro statt chaensel.de :D

jsPDF / html2pdf: add header and footer text to each page

In a recent project I needed to add header and footer text (like page count) to every single generated html2pdf / jsPDF page.

There are a lot of instructions on the web, but none of those are really doing what I wanted.

Basically, I needed to use the callback  function of  html2pdf to loop over the total pages, and then access that single page to add text to it.

html2PDF: Add a header and footer to every page

So the first step is to use the callback  function of html2pdf :

And within the callback function, I am looping over the pages of the generated document. You can find the total number of pages within the returned jsPDF-Object  which is called  pdfObject in my example.

Using this code you can simply add a header and a footer text to each page of the generated PDF document.

To add a header text, you can simply add the following line to the above code.

This will add the text „my header text“ at the position x = 10, y = 10 to every page of your PDF document.

Solved: html2pdf / jsPDF elements are cut off in the PDF

So I am using some JavaScript libraries in my Apache Cordova app to save some HTML to a PDF file, which can then be shared via email and social.
The problem was that the rendered content of the HTML element is only as wide as the parent element, which caused me some headaches as the content of the PDF (like the tables and text) were cut off at the width of the parent element.

The parent element was – in my case – simpy as wide as the browser’s viewport, which is kind of bad on a mobile device. So I tried several things – without much success. At last, I have had to use a dirtly little hack to make the canvas/render area wider.

I simply inserted a div with a fixed width of – in this case – 1500px. That fixed it for me.

Surely it is not nice code, and there may must be a way to do it within the JavaScript, but until I find out how, I will resort to this solution.

Cordova Ajax Request failed on iOS because of invalid SSL certificate

When developing with Cordova for iOS, you often make Ajax requests to SSL-encrypted hosts, such as APIs.

Sometimes, these SSL certificates are not valid (or self signed), so iOS breaks the call and sends out an error message to the console in xcode.

To get around this error, we can tell iOS to simply ignore invalid certificates.

Open the file yourproject/platforms/ios/appname/Classes/AppDelegate.m  and insert the following code at the end:

Then run the app from xcode or cordova to check whether it is working now.