0

I am making use of a tool called GemBoxDocument which can be used to convert html files into a pdf file.

The sample code on their website shows how this can be done converting an actual file that exists on a server (source):

using System;
using System.Linq;
using System.Text;
using GemBox.Document;
using GemBox.Document.Tables;

class Sample
{
    [STAThread]
     static void Main(string[] args)
    {
        // If using Professional version, put your serial key below.
        ComponentInfo.SetLicense("FREE-LIMITED-KEY");

        DocumentModel document = DocumentModel.Load("Reading.html");

       document.Save("Convert.pdf");
    }
}

However, in my case, i want to be able to convert a page that had been loaded in a browser and has potentially been edited.

So far i have thought of sending the HTML content through an ajax call as follows:

  $.ajax({
    url: 'convertToPDF',
    type: 'POST',
    data: {
        html: $("#page").html()
    },
    success: function (data) {

    }
});

"#page" is a html wrapper for the whole entire page including loaded CSS scripts and images.

My initial thinking is that i will send the html code through to the server, create a temporary file and then pass that through as an argument to the .Load() function.

However i dont think im doing this correctly. #page has externally referenced CSS and images that i dont think will be passed to the server. So my question is, how can i get ALL the content of a loaded page into a single variable in javascript and send it to the sever?

Notaras
  • 611
  • 1
  • 14
  • 44

1 Answers1

1

Check this:

Have a look at WKHTMLTOPDF . It is open source, based on webkit and free.

https://stackoverflow.com/a/1357499/5131888

http://wkhtmltopdf.org/

Community
  • 1
  • 1
Mo A
  • 26
  • 4