如何获取通过SSRS生成的pdf字节数组的页数

时间:2014-01-16 09:35:37

标签: c# pdf reporting-services ssrs-2008 bytearray

我的任务是获取pdf内容的页数。我利用SSRS工具生成pdf字节数组。一旦我得到字节数组,我需要获得生成的这个字节数组的页数。 C#是使用的编程语言。

目前我正在使用生成的pdf字节数组物理创建pdf文件。后来我在内存中打开pdf文件并获取页数。最后,我删除了为临时目的而创建的文件。

有没有办法在不创建物理文件的情况下获取生成的pdf字节数组的页数?或者我可以在内存中创建一个pdf文件对象吗?

PDF创建需要额外的安全权限,我们不会将pdf文件用于任何其他目的。

2 个答案:

答案 0 :(得分:6)

我使用以下代码解决了这个问题。

感谢您的帮助。

int pageCount;
MemoryStream stream = new MemoryStream(pdfContent);
using (var r = new StreamReader(stream))
{
    string pdfText = r.ReadToEnd();
    System.Text.RegularExpressions.Regex regx = new Regex(@"/Type\s*/Page[^s]");
    System.Text.RegularExpressions.MatchCollection matches = regx.Matches(pdfText);
    pageCount = matches.Count;
}

答案 1 :(得分:0)

保存PDF流。使用iTextSharp引用在服务器上打开PDF并计算页面。