erreur itextsharp: "le document n'a pas de pages."
je définir comme références les trois dll:
- itextsharp.dll: la bibliothèque de base
- itextsharp.xtra.dll: fonctionnalité supplémentaire (PDF 2!)
- itextsharp.pdfa.DLL: PDF / A-fonctionnalité associée Ce projet est hébergé sur http://sourceforge.net/projects/itextsharp / Vous pouvez trouver la dernière version ici: http://sourceforge.net/projects/itextsharp/files/itextsharp /
j'obtiens une erreur lors de l'exécution de ce code:
sur pdfDoc.Close(), "Le document n'a pas de pages."
Imports iTextSharp.text
Imports iTextSharp.text.html.simpleparser
Imports iTextSharp.text.pdf
gv.DataBind()
gv.AllowPaging = "False"
Response.ContentType = "application/pdf"
Response.AddHeader("content-disposition", "attachment;filename=Export.pdf")
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Dim sw As New StringWriter()
Dim hw As New HtmlTextWriter(sw)
Dim frm As New HtmlForm()
gv.Parent.Controls.Add(frm)
frm.Attributes("runat") = "server"
frm.Controls.Add(gv)
frm.RenderControl(hw)
Dim sr As New StringReader(sw.ToString())
Dim pdfDoc As New Document(PageSize.A4, 10.0F, 10.0F, 10.0F, 0.0F)
Dim htmlparser As New HTMLWorker(pdfDoc)
PdfWriter.GetInstance(pdfDoc, Response.OutputStream)
pdfDoc.Open()
htmlparser.Parse(sr)
pdfDoc.Close()
Response.Write(pdfDoc)
Response.[End]()
1 réponses
la classe HTMLWorker
est dépréciée et ne doit plus être utilisée. La fonctionnalité HTML to PDF a été remplacée par une technologie appelée XML Worker. Je vois que vous incluez itextsharp.xtra et itextsharp.pdfa qui sont 2 DLLs dont vous n'avez pas besoin. Je ne vous vois pas inclure la DLL xmlworker.
quant à l'exception: lorsque vous recevez le message" le document n'a pas de pages", vous essayez de créer un document sans aucun contenu (et cela n'a pas de sens). Comment est-ce possible? Tout dépend du contenu de sr
. Ce contenu est soit vide, soit il contient du HTML qui ne peut pas être interprété par HTMLWorker
.
remarque supplémentaire: à côté de itextpdf.xtra, vous avez écrit (PDF 2!). Alors que le paquet XTRA contient des fonctionnalités qui n'existaient pas dans PDF 1.7, ce N'est pas le paquet PDF 2. La spécification PDF 2 est attendue au plus tôt à la fin de 2015 (une estimation plus réaliste est 2016). À la bibliothèque iText, nous avons déjà mis en œuvre la fonctionnalité PDF 2.0 basée sur l'ébauche de la spécification, mais cette fonctionnalité n'est pas (1) limitée à ce qui est dans le paquet xtra, et (2) ne fait pas partie d'une spécification qui a été rendue publique par ISO encore.