erreur itextsharp: "le document n'a pas de pages."

je définir comme références les trois dll:

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]()
0
demandé sur Bruno Lowagie 2014-06-06 10:48:07

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.

1
répondu Bruno Lowagie 2014-06-06 08:31:53