我正在尝试在 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 方法。
这些建议似乎都不起作用。我不确定这是否是由于我的浏览器设置造成的。
请建议。