我的任务是获取pdf内容的页数。我利用SSRS工具生成pdf字节数组。一旦我得到字节数组,我需要获得生成的这个字节数组的页数。 C#是使用的编程语言。
目前我正在使用生成的pdf字节数组物理创建pdf文件。后来我在内存中打开pdf文件并获取页数。最后,我删除了为临时目的而创建的文件。
有没有办法在不创建物理文件的情况下获取生成的pdf字节数组的页数?或者我可以在内存中创建一个pdf文件对象吗?
PDF创建需要额外的安全权限,我们不会将pdf文件用于任何其他目的。
答案 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并计算页面。