History log of /plugin/totext/vendor/ (Results 1 – 5 of 5)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
c876c28815-Jul-2026 Andreas Gohr <gohr@cosmocode.de>

updated pdfparser

fd4f7c4706-Jul-2026 Andreas Gohr <gohr@cosmocode.de>

Track the cosmocode prinsfrank/pdfparser dev fork

The dev fork adds native UTF-16BE Info-string decoding and Form-XObject
text extraction. Point composer at the fork's VCS repo, pin dev-dev, and
dro

Track the cosmocode prinsfrank/pdfparser dev fork

The dev fork adds native UTF-16BE Info-string decoding and Form-XObject
text extraction. Point composer at the fork's VCS repo, pin dev-dev, and
drop the now-redundant normalizePdfString() UTF-16BE shim (metadata values
just get trimmed). Refresh AGENTS.md accordingly.

show more ...


/plugin/totext/AGENTS.md
/plugin/totext/Exception/ExtractionException.php
/plugin/totext/Extractor/AbstractOdfExtractor.php
/plugin/totext/Extractor/AbstractOoxmlExtractor.php
/plugin/totext/Extractor/AbstractZipXmlExtractor.php
/plugin/totext/Extractor/DocxExtractor.php
/plugin/totext/Extractor/ExtractionResult.php
/plugin/totext/Extractor/ExtractorFactory.php
/plugin/totext/Extractor/ExtractorInterface.php
/plugin/totext/Extractor/ImageExtractor.php
/plugin/totext/Extractor/OdpExtractor.php
/plugin/totext/Extractor/OdsExtractor.php
/plugin/totext/Extractor/OdtExtractor.php
/plugin/totext/Extractor/PdfExtractor.php
/plugin/totext/Extractor/PptxExtractor.php
/plugin/totext/Extractor/TextExtractor.php
/plugin/totext/Extractor/XlsxExtractor.php
/plugin/totext/_test/DocxExtractorTest.php
/plugin/totext/_test/ExtractorFactoryTest.php
/plugin/totext/_test/HelperTest.php
/plugin/totext/_test/ImageExtractorTest.php
/plugin/totext/_test/OdpExtractorTest.php
/plugin/totext/_test/OdsExtractorTest.php
/plugin/totext/_test/OdtExtractorTest.php
/plugin/totext/_test/PdfExtractorTest.php
/plugin/totext/_test/PptxExtractorTest.php
/plugin/totext/_test/TextExtractorTest.php
/plugin/totext/_test/XlsxExtractorTest.php
/plugin/totext/cli.php
/plugin/totext/composer.json
/plugin/totext/composer.lock
/plugin/totext/helper.php
/plugin/totext/plugin.info.txt
composer/installed.json
composer/installed.php
prinsfrank/pdfparser/composer.json
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/State/TextShowingOperator.php
prinsfrank/pdfparser/src/Document/ContentStream/ContentStream.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/ContentStreamScope.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/GraphicsState.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/LineGroupingStrategy/BaselineClusterStrategy.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/LineGroupingStrategy/Block.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/LineGroupingStrategy/Line.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/LineGroupingStrategy/LineGroupingStrategy.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/LineGroupingStrategy/MatrixOffsetSpacing.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/LineGroupingStrategy/StrictLineGrouping.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/LineGroupingStrategy/TextOverlapStrategy.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/PositionedTextElement.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/TextSegment/TextSegment.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/TextState.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/TransformationMatrix.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/Vector.php
prinsfrank/pdfparser/src/Document/CrossReference/CrossReferenceSourceParser.php
prinsfrank/pdfparser/src/Document/CrossReference/RawStream/ObjectPositionsFromRawStreamParser.php
prinsfrank/pdfparser/src/Document/CrossReference/Source/CrossReferenceSource.php
prinsfrank/pdfparser/src/Document/CrossReference/Source/RecoveredCrossReferenceSource.php
prinsfrank/pdfparser/src/Document/CrossReference/Source/Section/CrossReferenceSection.php
prinsfrank/pdfparser/src/Document/CrossReference/Source/Section/SubSection/CrossReferenceSubSection.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Array/CIDFontWidths.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Date/DateValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/TextString/TextStringValue.php
prinsfrank/pdfparser/src/Document/Dictionary/ResourceDictionaryChain.php
prinsfrank/pdfparser/src/Document/Document.php
prinsfrank/pdfparser/src/Document/Encoding/PDFDocEncoding.php
prinsfrank/pdfparser/src/Document/Font/FontWidths.php
prinsfrank/pdfparser/src/Document/Generic/Character/LiteralStringEscapeCharacter.php
prinsfrank/pdfparser/src/Document/Object/Decorator/Font.php
prinsfrank/pdfparser/src/Document/Object/Decorator/Page.php
b4ecfc8222-Jun-2026 Andreas Gohr <gohr@cosmocode.de>

Replace smalot/pdfparser with prinsfrank/pdfparser

Switch the PDF extractor from the cosmocode/pdfparser memory fork
(an LGPL smalot/pdfparser fork) to prinsfrank/pdfparser (MIT, built
from scratch,

Replace smalot/pdfparser with prinsfrank/pdfparser

Switch the PDF extractor from the cosmocode/pdfparser memory fork
(an LGPL smalot/pdfparser fork) to prinsfrank/pdfparser (MIT, built
from scratch, zero PHP dependencies beyond prinsfrank/glyph-lists).

PdfExtractor now calls parseFile($path)->getText() in the default
in-memory mode, which benchmarked both faster and far lighter than the
old fork (on a 12 MB/92-page file: 63s/49.5MB vs 68s/100MB), so the
previous setRetainImageContent() tuning is no longer needed.

Known limitation: prinsfrank/pdfparser <= v3.1.0 does not extract text
inside Form XObjects (page content painted with the Do operator, common
in Quartz/Firefox/Chrome PDFs such as the Tika sample), so
PdfExtractorTest::testExtractsText fails against stock v3.1.0.

show more ...


/plugin/totext/AGENTS.md
/plugin/totext/Extractor/PdfExtractor.php
/plugin/totext/composer.json
/plugin/totext/composer.lock
composer/autoload_namespaces.php
composer/autoload_psr4.php
composer/autoload_real.php
composer/autoload_static.php
composer/installed.json
composer/installed.php
prinsfrank/glyph-lists/LICENSE
prinsfrank/glyph-lists/LICENSE-BSD-3-CLAUSE
prinsfrank/glyph-lists/README.md
prinsfrank/glyph-lists/composer.json
prinsfrank/glyph-lists/src/AGlyphList.php
prinsfrank/pdfparser/.al-custom.php
prinsfrank/pdfparser/LICENSE
prinsfrank/pdfparser/README.md
prinsfrank/pdfparser/SECURITY.md
prinsfrank/pdfparser/UPGRADING.md
prinsfrank/pdfparser/composer.json
prinsfrank/pdfparser/docs/14.3-associated-files.md
prinsfrank/pdfparser/docs/7.11-file-specifications.md
prinsfrank/pdfparser/docs/images/banner_dark.png
prinsfrank/pdfparser/docs/images/banner_light.png
prinsfrank/pdfparser/src/Document/CMap/Registry/Adobe/Identity0.php
prinsfrank/pdfparser/src/Document/CMap/Registry/CMapResource.php
prinsfrank/pdfparser/src/Document/CMap/Registry/RegistryOrchestrator.php
prinsfrank/pdfparser/src/Document/CMap/ToUnicode/BFChar.php
prinsfrank/pdfparser/src/Document/CMap/ToUnicode/BFRange.php
prinsfrank/pdfparser/src/Document/CMap/ToUnicode/CodePoint.php
prinsfrank/pdfparser/src/Document/CMap/ToUnicode/CodeSpaceRange.php
prinsfrank/pdfparser/src/Document/CMap/ToUnicode/ToUnicodeCMap.php
prinsfrank/pdfparser/src/Document/CMap/ToUnicode/ToUnicodeCMapOperator.php
prinsfrank/pdfparser/src/Document/CMap/ToUnicode/ToUnicodeCMapParser.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/ContentStreamCommand.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/Object/CompatibilityOperator.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/Object/InlineImageOperator.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/Object/MarkedContentOperator.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/Object/TextObjectOperator.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/State/ClippingPathOperator.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/State/ColorOperator.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/State/GraphicsStateOperator.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/State/Interaction/InteractsWithTextState.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/State/Interaction/InteractsWithTransformationMatrix.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/State/Interaction/ProducesPositionedTextElements.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/State/PathConstructionOperator.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/State/PathPaintingOperator.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/State/TextPositioningOperator.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/State/TextShowingOperator.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/State/TextStateOperator.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/State/Type3FontOperator.php
prinsfrank/pdfparser/src/Document/ContentStream/Command/Operator/State/XObjectOperator.php
prinsfrank/pdfparser/src/Document/ContentStream/ContentStream.php
prinsfrank/pdfparser/src/Document/ContentStream/ContentStreamParser.php
prinsfrank/pdfparser/src/Document/ContentStream/Object/TextObject.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/LineGroupingStrategy/LineGroupingStrategy.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/LineGroupingStrategy/StrictLineGrouping.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/LineGroupingStrategy/TextOverlapStrategy.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/PositionedTextElement.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/TextState.php
prinsfrank/pdfparser/src/Document/ContentStream/PositionedText/TransformationMatrix.php
prinsfrank/pdfparser/src/Document/CrossReference/CrossReferenceSourceParser.php
prinsfrank/pdfparser/src/Document/CrossReference/CrossReferenceType.php
prinsfrank/pdfparser/src/Document/CrossReference/Source/CrossReferenceSource.php
prinsfrank/pdfparser/src/Document/CrossReference/Source/Section/CrossReferenceSection.php
prinsfrank/pdfparser/src/Document/CrossReference/Source/Section/SubSection/CrossReferenceSubSection.php
prinsfrank/pdfparser/src/Document/CrossReference/Source/Section/SubSection/Entry/CrossReferenceEntryCompressed.php
prinsfrank/pdfparser/src/Document/CrossReference/Source/Section/SubSection/Entry/CrossReferenceEntryFreeObject.php
prinsfrank/pdfparser/src/Document/CrossReference/Source/Section/SubSection/Entry/CrossReferenceEntryInUseObject.php
prinsfrank/pdfparser/src/Document/CrossReference/Stream/CrossReferenceStreamParser.php
prinsfrank/pdfparser/src/Document/CrossReference/Stream/CrossReferenceStreamType.php
prinsfrank/pdfparser/src/Document/CrossReference/Table/CrossReferenceTableInUseOrFree.php
prinsfrank/pdfparser/src/Document/CrossReference/Table/CrossReferenceTableParser.php
prinsfrank/pdfparser/src/Document/Dictionary/Dictionary.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryEntry/DictionaryEntry.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryEntry/DictionaryEntryFactory.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryFactory.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryKey/DictionaryKey.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryKey/DictionaryKeyInterface.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryKey/ExtendedDictionaryKey.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryParseContext/DictionaryParseContext.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryParseContext/NestingContext.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryParser.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Array/ArrayValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Array/CIDFontWidths.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Array/CrossReferenceStreamByteSizes.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Array/DictionaryArrayValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Array/DifferencesArrayValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Array/Item/ConsecutiveCIDWidth.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Array/Item/DifferenceRange.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Array/Item/RangeCIDWidth.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Boolean/BooleanValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Date/DateValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/DictionaryValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Float/FloatValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Integer/IntegerValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/AuthEventNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/BlendModeNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/BorderStyleNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/CFMNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/CIEColorSpaceNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/DeviceColorSpaceNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/DirectionNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/EncodingNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/EventNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/FilterNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/IntentNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/ListModeNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/NameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/NonFullScreenPageModeNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/NumberingStyleNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/PageLayoutNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/PageModeNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/PaperHandlingNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/RenderingIntentNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/SecurityHandlerNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/SpecialColorSpaceNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/SubtypeNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/TabsNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/ToUnicodeCMapNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/TransitionStyleNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/TrappedNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/TypeNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/ViewNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Name/VisibilityPolicyNameValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Rectangle/Rectangle.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Reference/ReferenceValue.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/Reference/ReferenceValueArray.php
prinsfrank/pdfparser/src/Document/Dictionary/DictionaryValue/TextString/TextStringValue.php
prinsfrank/pdfparser/src/Document/Dictionary/Normalization/NameValueNormalizer.php
prinsfrank/pdfparser/src/Document/Document.php
prinsfrank/pdfparser/src/Document/Encoding/Encoding.php
prinsfrank/pdfparser/src/Document/Encoding/MacRoman.php
prinsfrank/pdfparser/src/Document/Encoding/WinAnsi.php
prinsfrank/pdfparser/src/Document/Encryption/RC4.php
prinsfrank/pdfparser/src/Document/Filter/Decode/ASCII85Decode.php
prinsfrank/pdfparser/src/Document/Filter/Decode/ASCIIHexDecode.php
prinsfrank/pdfparser/src/Document/Filter/Decode/CCITTFaxDecode.php
prinsfrank/pdfparser/src/Document/Filter/Decode/FlateDecode.php
prinsfrank/pdfparser/src/Document/Filter/Decode/LZWFlatePredictorValue.php
prinsfrank/pdfparser/src/Document/Filter/Decode/PNGPredictorAlgorithm.php
prinsfrank/pdfparser/src/Document/Filter/Decode/TiffTag.php
prinsfrank/pdfparser/src/Document/Font/FontWidths.php
prinsfrank/pdfparser/src/Document/Generic/Character/DelimiterCharacter.php
prinsfrank/pdfparser/src/Document/Generic/Character/LiteralStringEscapeCharacter.php
prinsfrank/pdfparser/src/Document/Generic/Character/WhitespaceCharacter.php
prinsfrank/pdfparser/src/Document/Generic/Marker.php
prinsfrank/pdfparser/src/Document/Generic/Parsing/InfiniteBuffer.php
prinsfrank/pdfparser/src/Document/Generic/Parsing/RollingCharBuffer.php
prinsfrank/pdfparser/src/Document/Image/ColorSpace/ColorSpace.php
prinsfrank/pdfparser/src/Document/Image/ColorSpace/ColorSpaceFactory.php
prinsfrank/pdfparser/src/Document/Image/ColorSpace/Components.php
prinsfrank/pdfparser/src/Document/Image/ImageType.php
prinsfrank/pdfparser/src/Document/Image/RasterizedImage.php
prinsfrank/pdfparser/src/Document/Object/Decorator/Catalog.php
prinsfrank/pdfparser/src/Document/Object/Decorator/DecoratedObject.php
prinsfrank/pdfparser/src/Document/Object/Decorator/DecoratedObjectFactory.php
prinsfrank/pdfparser/src/Document/Object/Decorator/EmbeddedFile.php
prinsfrank/pdfparser/src/Document/Object/Decorator/EncryptDictionary.php
prinsfrank/pdfparser/src/Document/Object/Decorator/FileSpecification.php
prinsfrank/pdfparser/src/Document/Object/Decorator/Font.php
prinsfrank/pdfparser/src/Document/Object/Decorator/GenericObject.php
prinsfrank/pdfparser/src/Document/Object/Decorator/InformationDictionary.php
prinsfrank/pdfparser/src/Document/Object/Decorator/Page.php
prinsfrank/pdfparser/src/Document/Object/Decorator/Pages.php
prinsfrank/pdfparser/src/Document/Object/Decorator/XObject.php
prinsfrank/pdfparser/src/Document/Object/Item/CompressedObject/CompressedObject.php
prinsfrank/pdfparser/src/Document/Object/Item/CompressedObject/CompressedObjectByteOffsetParser.php
prinsfrank/pdfparser/src/Document/Object/Item/CompressedObject/CompressedObjectByteOffsets.php
prinsfrank/pdfparser/src/Document/Object/Item/CompressedObject/CompressedObjectContent/CompressedObjectContentParser.php
prinsfrank/pdfparser/src/Document/Object/Item/ObjectItem.php
prinsfrank/pdfparser/src/Document/Object/Item/UncompressedObject/UncompressedObject.php
prinsfrank/pdfparser/src/Document/Object/Item/UncompressedObject/UncompressedObjectParser.php
prinsfrank/pdfparser/src/Document/Security/EncryptionContext.php
prinsfrank/pdfparser/src/Document/Security/FileEncryptionKey.php
prinsfrank/pdfparser/src/Document/Security/SecurityAlgorithm.php
prinsfrank/pdfparser/src/Document/Security/StandardSecurity.php
prinsfrank/pdfparser/src/Document/Security/StandardSecurityHandlerRevision.php
prinsfrank/pdfparser/src/Document/Version/Version.php
prinsfrank/pdfparser/src/Document/Version/VersionParser.php
prinsfrank/pdfparser/src/Exception/AuthenticationFailedException.php
prinsfrank/pdfparser/src/Exception/InvalidArgumentException.php
prinsfrank/pdfparser/src/Exception/NotImplementedException.php
prinsfrank/pdfparser/src/Exception/ParseFailureException.php
prinsfrank/pdfparser/src/Exception/PdfParserException.php
prinsfrank/pdfparser/src/Exception/RuntimeException.php
prinsfrank/pdfparser/src/PdfParser.php
prinsfrank/pdfparser/src/Stream/AbstractStream.php
prinsfrank/pdfparser/src/Stream/FileStream.php
prinsfrank/pdfparser/src/Stream/InMemoryStream.php
prinsfrank/pdfparser/src/Stream/Stream.php
d8f4c70a18-Jun-2026 Andreas Gohr <gohr@cosmocode.de>

Switch to the cosmocode/pdfparser memory fork

Replace the upstream smalot/pdfparser dependency with our own fork
(cosmocode/pdfparser, dev-memory branch) for its lower-peak-memory
streaming parser.

Switch to the cosmocode/pdfparser memory fork

Replace the upstream smalot/pdfparser dependency with our own fork
(cosmocode/pdfparser, dev-memory branch) for its lower-peak-memory
streaming parser. The fork keeps the smalot/pdfparser package name, so
it is wired in as a vcs repository in composer.json and required as
dev-memory; the vendored copy and lock file are regenerated accordingly.

PdfExtractor is unchanged - the public API it uses
(Config::setRetainImageContent(), Parser::parseFile()) is identical.

show more ...


/plugin/totext/AGENTS.md
/plugin/totext/Extractor/AbstractZipXmlExtractor.php
/plugin/totext/Extractor/DocxExtractor.php
/plugin/totext/Extractor/ExtractorFactory.php
/plugin/totext/Extractor/ExtractorInterface.php
/plugin/totext/Extractor/ImageExtractor.php
/plugin/totext/Extractor/OdpExtractor.php
/plugin/totext/Extractor/OdsExtractor.php
/plugin/totext/Extractor/OdtExtractor.php
/plugin/totext/Extractor/PdfExtractor.php
/plugin/totext/Extractor/PptxExtractor.php
/plugin/totext/Extractor/TextExtractor.php
/plugin/totext/Extractor/XlsxExtractor.php
/plugin/totext/_test/DocxExtractorTest.php
/plugin/totext/_test/ExtractorFactoryTest.php
/plugin/totext/_test/ImageExtractorTest.php
/plugin/totext/_test/OdpExtractorTest.php
/plugin/totext/_test/OdsExtractorTest.php
/plugin/totext/_test/OdtExtractorTest.php
/plugin/totext/_test/PdfExtractorTest.php
/plugin/totext/_test/PptxExtractorTest.php
/plugin/totext/_test/Samples.php
/plugin/totext/_test/TextExtractorTest.php
/plugin/totext/_test/XlsxExtractorTest.php
/plugin/totext/_test/data/README.md
/plugin/totext/_test/data/download.sh
/plugin/totext/_test/data/tika-meta.jpg
/plugin/totext/_test/data/tika-meta.tiff
/plugin/totext/_test/data/tika-plain.jpg
/plugin/totext/_test/data/tika-sample.docx
/plugin/totext/_test/data/tika-sample.odp
/plugin/totext/_test/data/tika-sample.ods
/plugin/totext/_test/data/tika-sample.odt
/plugin/totext/_test/data/tika-sample.pdf
/plugin/totext/_test/data/tika-sample.pptx
/plugin/totext/_test/data/tika-sample.txt
/plugin/totext/_test/data/tika-sample.xlsx
/plugin/totext/_test/data/tika-various.docx
/plugin/totext/_test/data/tika-various.pptx
/plugin/totext/composer.json
/plugin/totext/composer.lock
composer/installed.json
composer/installed.php
smalot/pdfparser/README.md
smalot/pdfparser/src/Smalot/PdfParser/Config.php
smalot/pdfparser/src/Smalot/PdfParser/ContentSpool.php
smalot/pdfparser/src/Smalot/PdfParser/Document.php
smalot/pdfparser/src/Smalot/PdfParser/Exception/MemoryLimitException.php
smalot/pdfparser/src/Smalot/PdfParser/Font.php
smalot/pdfparser/src/Smalot/PdfParser/PDFObject.php
smalot/pdfparser/src/Smalot/PdfParser/Parser.php
smalot/pdfparser/src/Smalot/PdfParser/RawData/FilterHelper.php
smalot/pdfparser/src/Smalot/PdfParser/RawData/RawDataParser.php
smalot/pdfparser/src/Smalot/PdfParser/XObject/Form.php
ca76a2e617-Jun-2026 Andreas Gohr <gohr@cosmocode.de>

Initial implementation of the totext plugin

Extract plain text from various file formats using PHP only (no shell-outs,
no external binaries). Provides a CLI component (cli_plugin_totext) and a
help

Initial implementation of the totext plugin

Extract plain text from various file formats using PHP only (no shell-outs,
no external binaries). Provides a CLI component (cli_plugin_totext) and a
helper component (helper_plugin_totext).

Supported formats:
- OOXML: docx, xlsx, pptx
- OpenDocument: odt, ods, odp
- PDF (via bundled smalot/pdfparser)
- Plain-text family: txt, csv, md, markdown, log, text
- Image metadata (EXIF/IPTC): jpg, jpeg, tif, tiff

Includes a fixture-based test suite covering every extractor, the factory
routing, and the helper end to end.

show more ...


/plugin/totext/.gitattributes
/plugin/totext/AGENTS.md
/plugin/totext/Exception/ExtractionException.php
/plugin/totext/Exception/UnsupportedFormatException.php
/plugin/totext/Extractor/AbstractZipXmlExtractor.php
/plugin/totext/Extractor/DocxExtractor.php
/plugin/totext/Extractor/ExtractorFactory.php
/plugin/totext/Extractor/ExtractorInterface.php
/plugin/totext/Extractor/ImageExtractor.php
/plugin/totext/Extractor/OdpExtractor.php
/plugin/totext/Extractor/OdsExtractor.php
/plugin/totext/Extractor/OdtExtractor.php
/plugin/totext/Extractor/PdfExtractor.php
/plugin/totext/Extractor/PptxExtractor.php
/plugin/totext/Extractor/TextExtractor.php
/plugin/totext/Extractor/XlsxExtractor.php
/plugin/totext/LICENSE
/plugin/totext/README
/plugin/totext/_test/DocxExtractorTest.php
/plugin/totext/_test/ExtractorFactoryTest.php
/plugin/totext/_test/FixtureBuilder.php
/plugin/totext/_test/HelperTest.php
/plugin/totext/_test/ImageExtractorTest.php
/plugin/totext/_test/OdpExtractorTest.php
/plugin/totext/_test/OdsExtractorTest.php
/plugin/totext/_test/OdtExtractorTest.php
/plugin/totext/_test/PdfExtractorTest.php
/plugin/totext/_test/PptxExtractorTest.php
/plugin/totext/_test/TextExtractorTest.php
/plugin/totext/_test/XlsxExtractorTest.php
/plugin/totext/cli.php
/plugin/totext/composer.json
/plugin/totext/composer.lock
/plugin/totext/helper.php
/plugin/totext/plugin.info.txt
autoload.php
composer/ClassLoader.php
composer/InstalledVersions.php
composer/LICENSE
composer/autoload_classmap.php
composer/autoload_files.php
composer/autoload_namespaces.php
composer/autoload_psr4.php
composer/autoload_real.php
composer/autoload_static.php
composer/installed.json
composer/installed.php
composer/platform_check.php
smalot/pdfparser/LICENSE.txt
smalot/pdfparser/README.md
smalot/pdfparser/composer.json
smalot/pdfparser/src/Smalot/PdfParser/Config.php
smalot/pdfparser/src/Smalot/PdfParser/Document.php
smalot/pdfparser/src/Smalot/PdfParser/Element.php
smalot/pdfparser/src/Smalot/PdfParser/Element/ElementArray.php
smalot/pdfparser/src/Smalot/PdfParser/Element/ElementBoolean.php
smalot/pdfparser/src/Smalot/PdfParser/Element/ElementDate.php
smalot/pdfparser/src/Smalot/PdfParser/Element/ElementHexa.php
smalot/pdfparser/src/Smalot/PdfParser/Element/ElementMissing.php
smalot/pdfparser/src/Smalot/PdfParser/Element/ElementName.php
smalot/pdfparser/src/Smalot/PdfParser/Element/ElementNull.php
smalot/pdfparser/src/Smalot/PdfParser/Element/ElementNumeric.php
smalot/pdfparser/src/Smalot/PdfParser/Element/ElementString.php
smalot/pdfparser/src/Smalot/PdfParser/Element/ElementStruct.php
smalot/pdfparser/src/Smalot/PdfParser/Element/ElementXRef.php
smalot/pdfparser/src/Smalot/PdfParser/Encoding.php
smalot/pdfparser/src/Smalot/PdfParser/Encoding/AbstractEncoding.php
smalot/pdfparser/src/Smalot/PdfParser/Encoding/EncodingLocator.php
smalot/pdfparser/src/Smalot/PdfParser/Encoding/ISOLatin1Encoding.php
smalot/pdfparser/src/Smalot/PdfParser/Encoding/ISOLatin9Encoding.php
smalot/pdfparser/src/Smalot/PdfParser/Encoding/MacRomanEncoding.php
smalot/pdfparser/src/Smalot/PdfParser/Encoding/PDFDocEncoding.php
smalot/pdfparser/src/Smalot/PdfParser/Encoding/PostScriptGlyphs.php
smalot/pdfparser/src/Smalot/PdfParser/Encoding/StandardEncoding.php
smalot/pdfparser/src/Smalot/PdfParser/Encoding/WinAnsiEncoding.php
smalot/pdfparser/src/Smalot/PdfParser/Exception/EmptyPdfException.php
smalot/pdfparser/src/Smalot/PdfParser/Exception/EncodingNotFoundException.php
smalot/pdfparser/src/Smalot/PdfParser/Exception/InvalidDictionaryObjectException.php
smalot/pdfparser/src/Smalot/PdfParser/Exception/MissingCatalogException.php
smalot/pdfparser/src/Smalot/PdfParser/Exception/MissingPdfHeaderException.php
smalot/pdfparser/src/Smalot/PdfParser/Exception/NotImplementedException.php
smalot/pdfparser/src/Smalot/PdfParser/Font.php
smalot/pdfparser/src/Smalot/PdfParser/Font/FontCIDFontType0.php
smalot/pdfparser/src/Smalot/PdfParser/Font/FontCIDFontType2.php
smalot/pdfparser/src/Smalot/PdfParser/Font/FontTrueType.php
smalot/pdfparser/src/Smalot/PdfParser/Font/FontType0.php
smalot/pdfparser/src/Smalot/PdfParser/Font/FontType1.php
smalot/pdfparser/src/Smalot/PdfParser/Font/FontType3.php
smalot/pdfparser/src/Smalot/PdfParser/Header.php
smalot/pdfparser/src/Smalot/PdfParser/PDFObject.php
smalot/pdfparser/src/Smalot/PdfParser/Page.php
smalot/pdfparser/src/Smalot/PdfParser/Pages.php
smalot/pdfparser/src/Smalot/PdfParser/Parser.php
smalot/pdfparser/src/Smalot/PdfParser/RawData/FilterHelper.php
smalot/pdfparser/src/Smalot/PdfParser/RawData/RawDataParser.php
smalot/pdfparser/src/Smalot/PdfParser/XObject/Form.php
smalot/pdfparser/src/Smalot/PdfParser/XObject/Image.php
symfony/polyfill-mbstring/LICENSE
symfony/polyfill-mbstring/Mbstring.php
symfony/polyfill-mbstring/README.md
symfony/polyfill-mbstring/Resources/unidata/caseFolding.php
symfony/polyfill-mbstring/Resources/unidata/lowerCase.php
symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php
symfony/polyfill-mbstring/Resources/unidata/upperCase.php
symfony/polyfill-mbstring/bootstrap.php
symfony/polyfill-mbstring/bootstrap72.php
symfony/polyfill-mbstring/bootstrap80.php
symfony/polyfill-mbstring/composer.json