parseXrefTable.js 693 B

123456789101112131415161718192021222324252627
  1. const fs = require('fs')
  2. const { FSPdfManager } = require('./FSPdfManager')
  3. async function parseXrefTable(path, size, checkDeadline) {
  4. if (size === 0) {
  5. return []
  6. }
  7. const file = await fs.promises.open(path)
  8. try {
  9. const manager = new FSPdfManager(0, { fh: file, size, checkDeadline })
  10. await manager.ensureDoc('checkHeader')
  11. checkDeadline('pdfjs: after checkHeader')
  12. await manager.ensureDoc('parseStartXRef')
  13. checkDeadline('pdfjs: after parseStartXRef')
  14. await manager.ensureDoc('parse')
  15. checkDeadline('pdfjs: after parse')
  16. return manager.pdfDocument.catalog.xref.entries
  17. } finally {
  18. file.close()
  19. }
  20. }
  21. module.exports = {
  22. parseXrefTable,
  23. }