pdfjs icon indicating copy to clipboard operation
pdfjs copied to clipboard

TypeError: Cannot read property '12' of undefined

Open bflemi3 opened this issue 1 year ago • 11 comments

I have a string that contains line breaks \n. After adding that string as text to a cell then calling asBuffer, I'm getting the following error.

TypeError: Cannot read property '12' of undefined LineBreaker.nextBreak (webpack-internal:///./node_modules/@rkusa/linebreak/src/linebreaker.js:93:39) at Text._render (webpack-internal:///./node_modules/pdfjs/lib/text.js:88:68)

The @rkusa/linebreaker repo is no longer around (or at least the github link referenced from npm is invalid), but the original repository, foliojs/linebreak, that it was based off looks like it has recent updates that aren't reflected in your version.


Here's my snippet of code that I'm trying to execute.

const table = pdfDoc.table({ widths: [140, null] })

for (const termGroup of sortedTermGroups) {
  const row = table.row({ paddingBottom: 20 })
  const titleCell = row.cell({ padding: 5 })
  titleCell.text(termGroup.termType.title, { font: HelveticaBold })

  const contentCell = row.cell({ padding: 5 })
  const contentTable = contentCell.table({ widths: [10, null] })
  for (const keyTerm of termGroup.keyTerms) {
    const contentRow = contentTable.row({ paddingBottom: 5 })
    const contentBullet = contentRow.cell()
    contentBullet.text('-')

    const contentContent = contentRow.cell()
    contentContent.text(keyTerm.content.replace(/(\r\n|\n|\r)/gm, ''))
  }
}

    return pdfDoc.asBuffer()

And, if it helps, here's the string from keyTerm.content that's causing issues.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Nulla aliquet enim tortor at auctor urna nunc id. Condimentum mattis pellentesque id nibh tortor id aliquet lectus. Sagittis purus sit amet volutpat consequat mauris nunc. Posuere sollicitudin aliquam ultrices sagittis orci. Odio aenean sed adipiscing diam. Enim praesent elementum facilisis leo vel fringilla. Integer enim neque volutpat ac tincidunt vitae semper quis. Fames ac turpis egestas integer eget. Duis tristique sollicitudin nibh sit amet commodo nulla. Mattis aliquam faucibus purus in massa tempor.\n\nPulvinar pellentesque habitant morbi tristique. Turpis egestas sed tempus urna et. Feugiat in fermentum posuere urna nec tincidunt praesent semper. Ornare arcu dui vivamus arcu felis bibendum ut. Pellentesque habitant morbi tristique senectus et netus et malesuada fames. Netus et malesuada fames ac turpis egestas integer eget aliquet. Libero id faucibus nisl tincidunt eget. Tincidunt eget nullam non nisi est sit amet facilisis. Vulputate dignissim suspendisse in est. Tempor orci dapibus ultrices in iaculis nunc sed. Egestas sed sed risus pretium quam vulputate dignissim suspendisse in. Venenatis lectus magna fringilla urna porttitor rhoncus dolor purus non. Facilisis magna etiam tempor orci eu lobortis elementum nibh tellus. Risus commodo viverra maecenas accumsan lacus vel facilisis volutpat est. Semper eget duis at tellus at urna condimentum mattis. Volutpat blandit aliquam etiam erat velit.\n\nElementum curabitur vitae nunc sed velit dignissim sodales ut. Libero enim sed faucibus turpis in eu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus proin. Nibh mauris cursus mattis molestie a iaculis at. Sapien pellentesque habitant morbi tristique. Semper feugiat nibh sed pulvinar proin gravida. Varius sit amet mattis vulputate. Aliquet enim tortor at auctor urna nunc id. Non quam lacus suspendisse faucibus interdum posuere. Feugiat pretium nibh ipsum consequat nisl vel. Velit egestas dui id ornare arcu odio ut sem. Eu scelerisque felis imperdiet proin. Vestibulum morbi blandit cursus risus at ultrices mi tempus imperdiet. Nibh nisl condimentum id venenatis a. In hendrerit gravida rutrum quisque non. Turpis cursus in hac habitasse platea dictumst quisque.\n\nTempor orci dapibus ultrices in. Et malesuada fames ac turpis egestas sed tempus urna et. Ut venenatis tellus in metus vulputate eu scelerisque felis imperdiet. At quis risus sed vulputate odio ut enim. Sit amet est placerat in egestas. Porta non pulvinar neque laoreet suspendisse interdum consectetur libero id. Duis convallis convallis tellus id interdum. Varius duis at consectetur lorem donec massa. Pharetra vel turpis nunc eget. Varius morbi enim nunc faucibus a pellentesque sit. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Sit amet cursus sit amet dictum. Amet commodo nulla facilisi nullam vehicula ipsum. Cras sed felis eget velit aliquet sagittis id. In aliquam sem fringilla ut morbi. Condimentum lacinia quis vel eros donec ac odio tempor. Consectetur adipiscing elit pellentesque habitant morbi tristique. Eu tincidunt tortor aliquam nulla facilisi cras fermentum. Cursus metus aliquam eleifend mi in nulla. Tellus mauris a diam maecenas sed enim.\n\nMauris sit amet massa vitae tortor condimentum lacinia. Tempus urna et pharetra pharetra massa massa ultricies mi. Interdum consectetur libero id faucibus nisl tincidunt. Enim sit amet venenatis urna cursus eget. Facilisi nullam vehicula ipsum a arcu cursus vitae congue. Lacinia at quis risus sed vulputate. Id neque aliquam vestibulum morbi blandit cursus risus at ultrices. Purus gravida quis blandit turpis cursus in hac habitasse platea. Sodales ut etiam sit amet nisl purus. Sed vulputate mi sit amet mauris.

bflemi3 avatar Apr 10 '23 17:04 bflemi3