Die Anzeige einer web-Seite als pdf-Datei mit klicken auf eine Schaltfläche
Habe ich eine neue Anforderung, eine Schaltfläche in meiner web-Seite und bei Klick zeigt es die web-Seite als PDF-Datei. Auf der recherche habe ich festgestellt, dass iTextSharp
ist für derartige Zwecke verwendet.
Aber ich habe viele Telerik
- und ASP-controls in meine web-Seite auch. Kann ich das auch in der PDF-Datei mit der iTextSharp
?
Wenn ja, dann kann jemand bitte geben Sie mir einen basic-link, um zu starten mit iTextSharp
als ich nicht stieß auf dieses tool noch.
Laut der Antwort von @ahaliav habe ich versucht mit dem folgenden code. Allerdings bin ich mir nicht immer die Steuerelemente auf dem pdf-Dokument.
protected void btnExport_Click(object sender, EventArgs e)
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=TestPage.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
MemoryStream msOutput = new MemoryStream();
TextReader reader = new StringReader(HtmlContent);
//step 1: creation of a document-object
Document document = new Document(PageSize.A4, 30, 30, 30, 30);
HTMLWorker worker = new HTMLWorker(document);
//step 2:
//we create a writer that listens to the document
//and directs a XML-stream to a file
PdfWriter writer = PdfWriter.GetInstance(document, Response.OutputStream);
//step 3: we create a worker parse the document
//step 4: we open document and start the worker on the document
document.Open();
worker.StartDocument();
//step 5: parse the html into the document
worker.Parse(reader);
//step 6: close the document and the worker
worker.EndDocument();
worker.Close();
document.Close();
//Response.Write(document);
//Response.End();
}
protected override void Render(HtmlTextWriter writer)
{
//setup a TextWriter to capture the markup
TextWriter tw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(tw);
//render the markup into our surrogate TextWriter
base.Render(htw);
//get the captured markup as a string
string pageSource = tw.ToString();
//render the markup into the output stream verbatim
writer.Write(pageSource);
//remove the viewstate field from the captured markup
HtmlContent = Regex.Replace(pageSource,
"<input type=\"hidden\" name=\"__VIEWSTATE\" id=\"__VIEWSTATE\" value=\".*?\" />",
"", RegexOptions.IgnoreCase);
//the page source, without the viewstate field, is in viewStateRemoved
//do what you like with it
}
Bitte helfen .
Ich habe andere option,dass ist das Bild von der vollständigen web-Seite, wenn ich auf eine Schaltfläche klicken.Kann jemand mich leiten, um alle mögliche Richtungen für diese zwei Fragen bitte.
Ich endlich meine geänderte code:
Response.ContentType = "application/msword";
Response.AddHeader("content-disposition", "attachment;filename=TestPage.doc");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
MemoryStream msOutput = new MemoryStream();
Damit bin ich in der Lage, die msword-Dokument mit allen meinen Kontrollen ,aber ich bin auch immer einige unerwünschte Texte,wie kann ich das entfernen, dass,wenn jemand hatte das gleiche problem?
- Ich bin mit den wkhtmltopdf in einem meiner Projekte zum generieren einer PDF-Datei basierend auf einer Webseite.
- kann ich die telerik controls auch in diesem pdf
- Nicht sicher, aber meine Vermutung wäre Nein.
- Ich habe noch geändert, meine Frage,bitte helfen Sie mit, dass
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nachdem einige der Forschung, ich fand keine Lösung für die Anzeige der Steuerelemente in der html diesen code unten funktioniert einwandfrei, aber mit aus zeigt die Steuerelemente,
in der Vergangenheit habe ich diese http://www.winnovative-software.com/ und es funktioniert gut für html-Seiten einschließlich aller Steuerelemente können Sie auch testen, es onlie, das "einzige" problem ist es, die Sie bezahlen müssen für die Lizenz
Sehr einfache Google-Suche bringt uns zu dem folgenden forum-thread, die hat Ihre "sollution":
http://forums.asp.net/t/1039486.aspx/1
iTextSharp kommt mit einem kleinen Begleiter : XML Worker
Für eine demo, einen Blick hier
Obwohl die Dokumentation bezieht sich auf die Java-API, die Anpassung an C# einfach sein sollte.
Als für Telerik/ASP-tags, können Sie erweitern XMLWorker und definieren Sie, wie konvertieren von tags in PDF-Elemente.