0

我正在尝试在 C# .net MVC Web 应用程序中使用 ABCpdf.net 生成动态 pdf。

        Doc theDoc = new Doc();
        theDoc.Rect.Inset(72, 144);
        string url = System.Web.HttpContext.Current.Request.Url.OriginalString.Replace("GeneratePDFUsingStream", "");

        theDoc.Page = theDoc.AddPage();
        int theID;
        theID = theDoc.AddImageUrl(url,true,1200,true);

        while (true)
        {
            theDoc.FrameRect();
            if (!theDoc.Chainable(theID))
                break;
            theDoc.Page = theDoc.AddPage();
            theID = theDoc.AddImageToChain(theID);
        }

        for (int i = 1; i <= theDoc.PageCount; i++)
        {
            theDoc.PageNumber = i;
            theDoc.Flatten();
        }

        using (Stream theStream = theDoc.GetStream())
        {
            Response.Clear();
            Response.ContentType = "application/pdf";
            Response.AddHeader("content-disposition", "inline; filename=MyPDF.PDF");
            Response.AddHeader("content-length", theStream.Length.ToString());
            long theLen = theStream.Length;
            byte[] theData = new byte[theLen >= 32768 ? 32768 : (int)theLen];
            while (theLen > 0)
            {
                theStream.Read(theData, 0, theData.Length);
                Response.BinaryWrite(theData);
                theLen -= theData.Length;
                if (theLen < theData.Length && theLen > 0)
                    theData = new byte[(int)theLen];
            }
        }
        theDoc.Clear();
        Response.End();

一切正常,但我的 html 的内容在 pdf 文件中是不变的。

根据他们的网站推荐(ABCpdf),我尝试了以下操作:

通过代码禁用缓存(最后一个参数-disablecache设置为true:theID = theDoc.AddImageUrl(url,true,1200,true);

每次将一个新的 url 传递给 AddImageUrl 方法。

这些建议似乎都不起作用。我不确定这是否是由于我的浏览器设置造成的。

请建议。

4

0 回答 0