* Avoid looping through all the page tree if there is no destination page
Fixes: #3396
Auto-cherry-pick to 1.0.x
Signed-off-by: torakiki <andrea.vacondio@gmail.com>
Fixes: #3265
* Bump org.apache.pdfbox to 3.0.4
* Guard against empty unicode strings
Auto-cherry-pick to 1.0.x
Signed-off-by: David Frizelle <david.frizelle@gmail.com>
---------
Signed-off-by: David Frizelle <david.frizelle@gmail.com>
Replace spring-ai-client-chat dependency with spring-ai-model in model implementations
and memory repositories, and with spring-ai-commons in document readers. This change
improves the dependency structure by having components depend on the appropriate
abstraction level.
Additional changes:
- Add slf4j-api dependency to pdf-reader and spring-ai-retry
- Move spring-ai-client-chat to test scope in spring-ai-ollama
- Fix XML formatting in some pom.xml files
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
* Remove use of Document.getContext method from spring-ai-core, use getText
* Remove deprecated ChatOptionsBuilder class
* Remove deprecated FunctionCallingOptionsBuilder class
Fixes: #1913
Issue: https://github.com/spring-projects/spring-ai/issues/1913
- Add lineSeparator field to ExtractedTextFormatter with configurable override
- Update deleteTopTextLines and deleteBottomTextLines methods to use custom separator
- Mark old methods as deprecated in favor of new ones with separator parameter
- Update PDF test to use explicit line separator for Windows compatibility
- Disable project-wide Checkstyle checks to unblock development
- Add documentation for enabling Checkstyle locally
- Fix remaining checkstyle violations in current codebase
Fixes#1669
The ParagraphPdfDocumentReader relies on a PDF object called 'outline' (e.g. TOC) to be present in the document.
If the pdf was not generated with TOC, the other options in Spring AI are PagePdfDocumentReader and TikaDocumentReader.
Resolves#59