2017-02-26 5 views
0

Ich habe versucht, mehrere Plugins und C# Klassen zu versuchen und konvertieren Sie die HTML und CSS auf meinem asp.net-Projekt in eine PDF und obwohl der Code gut aussieht, und der Klick funktioniert andere Funktionen, ich kann einfach nicht scheinen, HTML zu pdf-Funktion zu arbeiten. Ist jemand anderes auf dieses Problem gestoßen oder weiß ich, ob ich etwas verpasst habe, um es zu lösen?ASP.NET Konvertieren von HTML in PDF

Dies ist der letzte Code, den ich für hiqpdf in C# versucht habe:

protected void Print_Button_Click(object sender, EventArgs e) 
{ 


    HtmlToPdf htmlToPdfConverter = new HtmlToPdf(); 

    // set PDF page size, orientation and margins 
    htmlToPdfConverter.Document.PageSize = PdfPageSize.A4; 
    htmlToPdfConverter.Document.PageOrientation = PdfPageOrientation.Portrait; 
    htmlToPdfConverter.Document.Margins = new PdfMargins(0); 

    // convert HTML to PDF 
    htmlToPdfConverter.ConvertUrlToFile("http://localhost:51091/Printout","mcn.pdf"); 


} 
+0

Was bedeutet es, dass es nicht funktioniert? Fehler? Bitte sei spezifischer. –

+0

Hallo @SamiKuhmonen, passiert nichts, wenn ich den Code ausführe – kehoewex86

Antwort

0

Es ist nicht direkt in theHiQpdf Dokumentation des Verfahrens angegeben, aber die Methode ConvertUrlToFile() speichert die erzeugte PDF-Datei lokal auf der Disc. Auf einiger Beispielseite (Rechnen Sie URLs und HTML-Code in PDF) der folgenden Kommentar zu finden ist:

 // ConvertUrlToFile() is called to convert the html document and save the resulted PDF into a file on disk 
     // Alternatively, ConvertUrlToMemory() can be called to save the resulted PDF in a buffer in memory 
     htmlToPdfConverter.ConvertUrlToFile(url, pdfFile); 

Da Ihr Beispiel eine Schaltfläche klicken, Eventhandler zeigt, wird die Datei wahrscheinlich erzeugt, aber nicht in der http zurückzukehren verwendet Antwort. Sie müssen die Daten in die Antwort schreiben. Die Methoden ConvertToStream() oder ConvertToMemory sollten sich dazu eignen. Vergessen Sie nicht, vorher Response.Clear() oder Response.ClearContent() und Response.ClearHeader() und danach Flush() and Close() zu verwenden.

Verwandte Themen