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.

nw_coretls_callback_handshake_message_block_invoke_3 tls_handshake_continue: [-9814]

DATE appname[64744:23296315] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9814)

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:

@implementation NSURLRequest(DataController)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
{
    return YES;
}
@end

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

Darf ich vorstellen? Smarte Menschen auf Facebook.

Ich würde  gerne die Gelegenheit nutzen und Euch ein paar Leute vorstellen, mit denen ich auf Facebook „befreundet“ bin und deren Posts ich immer gerne lese, weil Sie mich entweder weiterbilden, ermutigen oder mir eine neue Sichtweise auf viele Dinge geben.

Viele dieser Leute sind in der Online-Marketing-Branche unterwegs, manche ziemlich bekannt, manche eher weniger. Für mich sind diese Leute aber der Grund, Facebook noch nicht aufzugeben, da ich hier immer wieder Neues lerne und meinen Horizont erweitern kann.

Darf ich vorstellen? Smarte Menschen auf Facebook. weiterlesen

Das große Ideensterben

Ich bin angestellter Webentwickler und nebenbei als Kleinunternehmer tätig. Meine nebenberufliche Tätigkeit beschränkt sich allerdings auf das Erstellen und Betreiben von eigenen Projekten – Kundenprojekte nehme ich nicht mehr an.

Wie viele andere Webentwickler bin auch ich immer am Tüfteln und Planen, am Entwickeln und Konzeptionieren. Ständig rasen irgendwelche Ideen durch meinen Kopf, die umgesetzt und veröffentlicht werden wollen.

Und jeden Tag kommen neue Ideen hinzu. In diesem Beitrag möchte ich einmal darauf eingehen, was meist passiert, wenn mir Ideen in den Kopf kommen und ich versuche, sie umzusetzen.

Das große Ideensterben weiterlesen

ACF: How to set Google Maps API key

I am using Advanced Custom Fields for WordPress, and within that, I am trying to use the Google Maps field type.

After installation, there is no API key set for the usage of the Google Maps API, so you need to set it yourself. If you do not, you will get an error in the developer console of your browser:

Google Maps API error: MissingKeyMapError https://developers.google.com/maps/documentation/javascript/error-messages#missing-key-map-error
Google Maps API warning: NoApiKeys https://developers.google.com/maps/documentation/javascript/error-messages#no-api-keys

 

Here are the steps involved to save your API key for your Advanced Custom Fields Google Maps field type:

  1. Get an API key from Google
  2. Open your theme’s function.php and put the following code
    function my_acf_google_map_api( $api ){	
    	$api['key'] = 'YOUR_GOOGLE_MAPS_API_KEY';	
    	return $api;	
    }
    
    add_filter('acf/fields/google_map/api', 'my_acf_google_map_api');
    
  3. Save the file,

It’s as simple as that. Enjoy.