- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
目前我正在使用 itext 阅读 pdf 的页数。这需要很长时间,因为库似乎要扫描整个文件。
页面信息是否位于 pdf 标题的某处,或者是否需要完整的文件扫描?
最佳答案
没错。 iText 在打开时会解析相当多的 PDF(它不读取流对象的内容,仅此而已)...
除非您使用 PdfReader(RandomAccessFileOrArray)
构造函数,在这种情况下,它只会读取外部参照(主要是必需的),但不会解析任何内容,直到您开始请求特定对象(直接或通过各种调用) ).
The first PDF program I ever wrote did exactly this. It opened up a PDF and doing the bare minimum amount of work necessary, read the number of pages. It didn't even parse the xrefs it didn't have to. Haven't thought about that program in years...
因此,虽然效率不高,但使用 RandomAccessFileOrArray 会效率高得多:
int efficientPDFPageCount(String path) {
RandomAccessFileOrArray file = new RandomAccessFileOrArray(path, false, true );
PdfReader reader = new PdfReader(file);
int ret = reader.getNumberOfPages();
reader.close();
return ret;
}
更新:
itext API 进行了一些大修。现在(在 5.4.x 版本中)正确的使用方法是通过 java.io.RandomAccessFile:
int efficientPDFPageCount(File file) {
RandomAccessFile raf = new RandomAccessFile(file, "r");
RandomAccessFileOrArray pdfFile = new RandomAccessFileOrArray(
new RandomAccessSourceFactory().createSource(raf));
PdfReader reader = new PdfReader(pdfFile, new byte[0]);
int pages = reader.getNumberOfPages();
reader.close();
return pages;
}
关于java - 使用 Java 的 Pdf 页数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6026971/
有没有像{{NUMBEROFARTICLES}}这样的魔法词对于所有页面? 文章和页面之间似乎存在差异(文章 < 页面),我想显示总页数。 最佳答案 Yes, there is : {{NUMBERO
在我的项目中,我有一个要求,即显示 Word 文档(.doc、.docx)文件中的页数和 Excel 文档(.xls、.xlsx)中的工作表数。我尝试使用 Docx4j 读取 .docx 文件,但性能
我使用正则表达式来计算 pdf 的页数。下面是我使用的代码。 Regex regex = new Regex(@"/Type\s*/Page[^s]"); MatchCollection matche
我的问题如下: 有一些巨大的 PDF 文件(>500MB),我想使用 JAVA 找到它们的页数。如果我使用 itext 或 pdfbox,我必须等到它读取整个文件,并且大多数时候都会失败,因为文件很大
我希望能够在浏览器中输出一个 pdf(这一切都很好而且花花公子)但限制了显示的页数。 IE。读者可以看到他想买的东西的内容是准确的,但同时我也不是免费提供文件的。我可以批量编辑文件以创建新的 3-5
我有一个 WebView 显示一些经常更新的内容。我想在我的 UI 中显示一个页面计数器,它会告诉用户如果要打印它,Web View 会有多少页。 我试过: NSRange r = NSMakeRan
我正在研究 linux 设备驱动程序,发现页数等于帧数。每个页面映射到每个框架。它说只要程序需要内存,它就会分配页面。 但是我发现在操作系统书籍中,虚拟地址分为页面,这些页面被加载到框架中。那么页面数
我想基于模板创建一个新文档,并且需要知道我的插入或附加结果何时会在最终打印输出中生成一个新页面,是否有任何属性/属性(例如可用于此的页数)? 最佳答案 过去我对此进行了大量搜索,但我认为没有任何属性或
不确定这是否可行,但我正在尝试通过纯文本输出将文本保存到具有特殊编码的 RTF。 除了总页数外,我一切正常。 我想让它说“y 的第 x 页”,例如,每页的底部说“第 1 页,共 3 页”,但我找不到总
在 ReportViewer 和导出的 PDF 中查看时显示的页数不同。例如:Report Viewer 的一页显示 50 条记录。但是当导出为 PDF 时,45 条记录出现在第 1 页,其余记录出现
除了我的所有文件都在网络驱动器上之外,这段代码对我有用。在下面的示例中,仅当文件位于根目录 (c:\) 中时代码才有效。 我是否必须将 input.pdf 替换为 d:\hello space fol
我想在访问者访问开始后进入第三页时向他显示一个弹出窗口。 我发现表log_url存储了visitor_id和url_id。我在想是否我们可以计算某个访问者 ID 的 url_id 记录数,这样我就可以
我正在尝试阅读编号。使用 pdf 的给定 pdf 中的页面(通过查找“/Count xx”),但我似乎做错了什么。我将所有字符读入缓冲区并使用字符串类的查找来查找。但是在我尝试过的许多文件中,它只工作
目前我正在使用 itext 阅读 pdf 的页数。这需要很长时间,因为库似乎要扫描整个文件。 页面信息是否位于 pdf 标题的某处,或者是否需要完整的文件扫描? 最佳答案 没错。 iText 在打开时
在我的项目中,我有一项要求显示 Word 文档(.doc、.docx)文件中的页数和 Excel 文档(.xls、.xlsx)中的页数。我曾尝试使用 Docx4j 读取 .docx 文件,但性能很差,
我在获取 phantomjs 中生成的 pdf 页数时遇到问题。基本上我将 phantomjs 与 nodejs 一起使用,我想在第 5 页中显示总页数。 function generatePdf()
我有一个网页,允许用户将文件上传到帐户文件夹。仅限 PDF 和 JPG 文件。我想计算每个上传的 PDF 中的页数,以将其显示给用户。 为此,我使用了 PDFINFO linux 库,它是 XPDF
我做了很多研究(我猜还不够?)并试图找到一个易于使用的库来使用 Node.js 查找 PDF 的页数。该库需要在 Windows 操作系统上可用。 有人知道如何最好地解决这个问题吗?最坏的情况是,我正
我是一名优秀的程序员,十分优秀!