2016-07-01 11 views
0
in HTML-Datei angezeigt wird
void HtmltoPDF::ConvertHtmltoPDF(std::string htmlTextData) 
{ 
wkhtmltopdf_global_settings *global_settings; 
wkhtmltopdf_object_settings *object_settings; 
wkhtmltopdf_converter *Converter; 

wkhtmltopdf_init(true); 


global_settings = wkhtmltopdf_create_global_settings(); 

wkhtmltopdf_set_global_setting(global_settings, "out", "..\\DownloadPDF\\Example.pdf"); 

object_settings = wkhtmltopdf_create_object_settings(); // create input **object** to store the setting 

//const char* a = "..\\Template\\VartLitePDF.html"; 

//wkhtmltopdf_set_object_setting(object_settings, "page", a); //pathway for the html file. 
//wkhtmltopdf_set_object_setting(object_settings, "web.enableJavascript", "true"); //enable javascript. 

Converter = wkhtmltopdf_create_converter(global_settings); //create the converter to convert the page. 
wkhtmltopdf_add_object(Converter, object_settings, htmlTextData.c_str()); 


if (!wkhtmltopdf_convert(Converter)) //Perform the actual conversion. 
    fprintf(stderr, "Convertion failed!"); 

std::cout << "httpErrorCode : " << wkhtmltopdf_http_error_code(Converter) << std::endl; 

const char* b = "..\\DownloadPDF\\Example.pdf"; 

HtmltoPDF::setReportGeneratedURL(b); 

wkhtmltopdf_destroy_converter(Converter); //delete the object after the object is fully convert. 

std::cout << wkhtmltopdf_deinit() << "\n"; //close the function after used. 
} 







int main() 
{ 
string path; 

cout << "Path file : "; 
cin >> path; 
cout << endl; 

GetData *data; 
GetData::createGetDataObject(&data); 
data->GetString(path); 

cout << data->GetString(path) << endl << endl; 


string htmltext = data->GetString(path); 


cout << endl; 


    HtmltoPDF *PDF; 
    HtmltoPDF::createPDFObject(&PDF); 
    PDF->ConvertHtmltoPDF(htmlTextData); 
    cout << "ABCD" << endl; 

system("PAUSE"); 
return 0; 
} 

htmlTextData => ein HTML-Inhalt und wandelt es in String.Wenn läuft zur gleichen Zeit zweimal wkhtmltopdf lib, warum es nur Datendokument ohne Tisch oder Bild auftreten, die

Zunächst kann eine vollständige PDF-Datei mit Tabellen und Bildern angezeigt werden. Nach dem zweiten Lauf (Nein das Programm geschlossen) aber es zeigt nur Datendokument und ohne irgendwelche Tabellen und Bilder ..

Darf ich wissen, was ist der Grund dafür?

Dank ..

Antwort

0

hatte ich das gleiche Problem gerade jetzt, und wkhtmltopdf_deinit() indem es funktionierte. Ich weiß nicht, warum und welche anderen Probleme auftreten können, aber das ist gut für mich, also denke ich nicht mehr darüber nach.

+0

remove wkhtmltopdf_deinit(), es wird nur eine PDF-Dokumentdatei generiert. In diesem Fall, wenn Sie mehr als eine PDF-Dokument-Datei erstellen möchten, wird es nicht gut funktionieren (ohne close-Programm). Und es erzeugt N gleiche PDF-Dokument (gleicher Inhalt mit vorherigen zuerst generieren) in N-mal .. – Dex