PDFClown is unable to extract text from an invoice. Debugging shows a problem when CffParser parses some data.
Unfortunately, I cannot provide an invoice pdf here, as it contains confidential information.
Any help or guidance will be much appreciated.
Here's the stack trace:
System.ArgumentException: Source array was not long enough. Check srcIndex and length, and the array's lower bounds.
in System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
in System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length)
in org.pdfclown.bytes.Buffer.Read(Byte[] data, Int32 offset, Int32 length) in D:\workspace\eDSU\PdfsClown\org\pdfclown\bytes\Buffer.cs:wiersz 346
in org.pdfclown.bytes.Buffer.Read(Byte[] data) in D:\workspace\eDSU\PdfsClown\org\pdfclown\bytes\Buffer.cs:wiersz 338
in org.pdfclown.documents.contents.fonts.CffParser.Index.Parse(IInputStream stream) in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\fonts\CffParser.cs:wiersz 313
in org.pdfclown.documents.contents.fonts.CffParser.Index.Parse(IInputStream stream, Int32 offset) in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\fonts\CffParser.cs:wiersz 324
in org.pdfclown.documents.contents.fonts.CffParser.Load() in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\fonts\CffParser.cs:wiersz 565
in org.pdfclown.documents.contents.fonts.CffParser..ctor(IInputStream fontData) in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\fonts\CffParser.cs:wiersz 533
in org.pdfclown.documents.contents.fonts.Type1Font.GetNativeEncoding() in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\fonts\Type1Font.cs:wiersz 89
in org.pdfclown.documents.contents.fonts.Type1Font.LoadEncoding() in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\fonts\Type1Font.cs:wiersz 132
in org.pdfclown.documents.contents.fonts.SimpleFont.OnLoad() in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\fonts\SimpleFont.cs:wiersz 105
in org.pdfclown.documents.contents.fonts.Font.Load() in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\fonts\Font.cs:wiersz 651
in org.pdfclown.documents.contents.fonts.Font..ctor(PdfDirectObject baseObject) in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\fonts\Font.cs:wiersz 277
in org.pdfclown.documents.contents.fonts.SimpleFont..ctor(PdfDirectObject baseObject) in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\fonts\SimpleFont.cs:wiersz 49
in org.pdfclown.documents.contents.fonts.Type1Font..ctor(PdfDirectObject baseObject) in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\fonts\Type1Font.cs:wiersz 67
in org.pdfclown.documents.contents.fonts.Font.Wrap(PdfDirectObject baseObject) in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\fonts\Font.cs:wiersz 178
in org.pdfclown.documents.contents.FontResources.Wrap(PdfDirectObject baseObject) in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\FontResources.cs:wiersz 63
in org.pdfclown.documents.contents.ResourceItems1.get_Item(PdfName key) in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\ResourceItems.cs:wiersz 96
in org.pdfclown.documents.contents.objects.SetFont.GetResource(IContentContext context) in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\objects\SetFont.cs:wiersz 96
in org.pdfclown.documents.contents.objects.SetFont.GetFont(IContentContext context) in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\objects\SetFont.cs:wiersz 71
in org.pdfclown.documents.contents.objects.SetFont.Scan(GraphicsState state) in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\objects\SetFont.cs:wiersz 77
in org.pdfclown.documents.contents.ContentScanner.MoveNext() in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\ContentScanner.cs:wiersz 1138
in org.pdfclown.documents.contents.ContentScanner.TextWrapper.Extract(ContentScanner level) in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\ContentScanner.cs:wiersz 714
in org.pdfclown.documents.contents.ContentScanner.TextWrapper..ctor(ContentScanner scanner) in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\ContentScanner.cs:wiersz 680
in org.pdfclown.documents.contents.ContentScanner.GraphicsObjectWrapper.Get(ContentScanner scanner) in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\ContentScanner.cs:wiersz 579
in org.pdfclown.documents.contents.ContentScanner.get_CurrentWrapper() in D:\workspace\eDSU\PdfsClown\org\pdfclown\documents\contents\ContentScanner.cs:wiersz 1033
in org.pdfclown.tools.TextExtractor.Extract(ContentScanner level, IList1 extractedTextStrings) in D:\workspace\eDSU\PdfsClown\org\pdfclown\tools\TextExtractor.cs:wiersz 606
in org.pdfclown.tools.TextExtractor.Extract(IContentContext contentContext) in D:\workspace\eDSU\PdfsClown\org\pdfclown\tools\TextExtractor.cs:wiersz 371
in PdfsClown.Pdf.ReadPdf() in D:\workspace\eDSU\PdfsClown\Pdf.cs:wiersz 51
PdfsClown.Pdf.ReadPdf is a standard method for extracting text included in one of the samples:
`using (org.pdfclown.files.File file = new org.pdfclown.files.File(this.Filepath))
{
org.pdfclown.documents.Document doc = file.Document;
org.pdfclown.tools.TextExtractor extractor = new org.pdfclown.tools.TextExtractor();
foreach (org.pdfclown.documents.Page page in doc.Pages)
{
IList<org.pdfclown.documents.contents.ITextString> textStrings = extractor.Extract(page)[org.pdfclown.tools.TextExtractor.DefaultArea];
foreach (org.pdfclown.documents.contents.ITextString textString in textStrings)
{
RectangleF textStringBox = textString.Box.Value;
Form1.dgv.Rows.Add(
Math.Round(textStringBox.X),
Math.Round(textStringBox.Y),
Math.Round(textStringBox.Width),
Math.Round(textStringBox.Height),
textString.Text
);
}
}
}`