JSFiddle - React, Tailwind, and code Playground

by Eugene Fedorov

HTML

<script src="https://code.angularjs.org/1.1.1/angular.min.js"></script>
<div ng-controller = "myCtrl">
    <a href="#" ng-click="downloadFile();">download</a>
</div>

JavaScript

var myApp = angular.module('myApp', []);

myApp.controller('myCtrl', ['$scope', function($scope){
	$scope.html_content = '<table name="foo"><tr><td>word up</td></tr></table><textarea>Foo&nbsp;&nbsp;&trade;&nbsp;&nbsp;Bar</textarea><p>What happens to +\'s?</p>';
    
    $scope.data = {
      doc: {
        test: true,
        document_type: 'pdf',
        name: 'adoc',
        document_content: $scope.html_content,
        strict: 'none'
      },
      user_credentials: "YOUR_API_KEY_HERE"
    };
    $scope.downloadFile = function() {
		downloadPDF("https://docraptor.com/docs.pdf", $scope.data);
    }    
}]);
var downloadPDF = function(url, data, method){
  //url and data options required
  if( url && data ){
    $('<form style="display: none" id="dr_submission" action="' + url
           + '" method="' + (method||'post') + '">'
           + '</form>').appendTo('body');
    //credentials
    $('form#dr_submission').append('<textarea name="user_credentials"></textarea>');
    $('form#dr_submission textarea[name=user_credentials]').val(data.user_credentials);

    //doc values
    for(var key in data.doc) {
      $('form#dr_submission').append('<textarea name="doc['+key+']"></textarea>');
      $('form#dr_submission textarea[name="doc['+key+']"]').val(data.doc[key]);
    }

    //submit the form
    if(confirm("press ok")) {$('form#dr_submission').submit().remove(); }
  };
};