Commit Graph

806 Commits

Author SHA1 Message Date
Marius Volkhart d1c9a07860 Add the ability to edit HSLFPictureData contents
Pictures can now be edited by calling HSLFPictureData#setData(byte[]). The byte[] should contain the image data as an image viewer might read it.

To enable this functionality, a tighter coupling between the EscherBSERecords of the slideshow and the HSLFPictureData was required. This ensures that changes in image data size are accurately recorded in the records.

In the course of coupling the records and the HSLFPictureData, various scenarios arose where a mapping of records to pictures was non-trivial. Accordingly, the HSLFSlideShowImpl#matchPicturesAndRecords(...) function was added to perform a more sophisticated matching pass. This function is heavily exercised by org.apache.poi.hslf.usermodel.TestBugs.testFile[5] and PPTX2PNG.render[2], as well as the new TestPictures#testSlideshowWithIncorrectOffsets().

Closes #225

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1887017 13f79535-47bb-0310-9956-ffa450edef68
2021-02-28 23:16:14 +00:00
Dominik Stadler caf2d32393 Bug 65099: Fix incorrect handling of styles in XWPFStyle.getUsedStyleList
Closes github #216

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1886063 13f79535-47bb-0310-9956-ffa450edef68
2021-01-30 18:42:14 +00:00
PJ Fanning 4013ffa220 [bug-65096] XLSX Streaming XML not correctly reading multiple inline Strings
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885770 13f79535-47bb-0310-9956-ffa450edef68
2021-01-21 21:04:24 +00:00
Alain Béarez 825bebdbd1 Bug 65016 - Creating a chart throws exception
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885700 13f79535-47bb-0310-9956-ffa450edef68
2021-01-19 21:33:38 +00:00
Andreas Beeker 8f2c722fd3 Integration tests - try to fix Oracle/OpenJDK vs IBM-JDK error message differences on XXE files
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885625 13f79535-47bb-0310-9956-ffa450edef68
2021-01-17 21:20:05 +00:00
Andreas Beeker 8d0e84f257 integration tests: ignore hsmf/lots-of-recipients.msg because of concurrent test errors - also takes too long to process
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885603 13f79535-47bb-0310-9956-ffa450edef68
2021-01-17 15:51:41 +00:00
Andreas Beeker 44efecf42e integration tests: Fix handling of NullPointerExceptions for Java 16+ (again ...)
Refactor TestAllFiles to provide an API for mass testing

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885576 13f79535-47bb-0310-9956-ffa450edef68
2021-01-16 15:51:00 +00:00
Andreas Beeker 5e110d7216 integration tests: NullPointerExceptions contain now a description in Java 16+
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885549 13f79535-47bb-0310-9956-ffa450edef68
2021-01-16 09:55:42 +00:00
Andreas Beeker 309e657b0d #65046 - Simplify integration tests
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885538 13f79535-47bb-0310-9956-ffa450edef68
2021-01-15 23:50:42 +00:00
Andreas Beeker fb2a96a048 Sonar fixes
Fixed offset of compare picture in resize_compare.xlsx

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885280 13f79535-47bb-0310-9956-ffa450edef68
2021-01-08 22:56:05 +00:00
Andreas Beeker 2125c37d31 #65063 - WMF parsing failed on closed empty polygon
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885215 13f79535-47bb-0310-9956-ffa450edef68
2021-01-06 23:14:45 +00:00
Dominik Stadler b7e9cb48d0 Bug 64132: Fix regression introduced by changing factories
We need to return EscherBlipRecord for all types in the defined range of recordId,
not UnknownEscherRecord.

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885092 13f79535-47bb-0310-9956-ffa450edef68
2021-01-04 05:51:24 +00:00
Dominik Stadler e08a1785c3 ooxml-schema: trigger loading stress-documents as part of the normal unit-tests
The integration-tests are not executed for determining the parts of the schema
to include in the "lite" package and so we need to have a normal unit-test as well.
Add more documents which drag in some more parts from the ooxml-schema

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885057 13f79535-47bb-0310-9956-ffa450edef68
2021-01-03 11:49:59 +00:00
Dominik Stadler 622574f5f4 Bug 64450: Allow to parse a file where the relationship-id is an empty string
Also improve exception reporting by including more information and not
"hiding" the actual exception-cause in a log-statement.

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885056 13f79535-47bb-0310-9956-ffa450edef68
2021-01-03 11:49:51 +00:00
Dominik Stadler 685af351d1 Bug 64750: Do not use CTDataValidations.getCount(), instead only rely on getDataValidationArray
Field "count" seems to be optional according
to the schema, so by using only the array
Apache POI can read data validations from
workbooks that do not populate the
"count" field properly.

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885011 13f79535-47bb-0310-9956-ffa450edef68
2021-01-01 15:51:19 +00:00
Andreas Beeker e4b70720be workaround NullPointerException when font family (of bullets) can't be determined
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1884974 13f79535-47bb-0310-9956-ffa450edef68
2020-12-30 23:33:05 +00:00
Andreas Beeker 91eb4861b7 workaround "Width (0) and height (0) cannot be <= 0" error while rendering text with textures
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1884966 13f79535-47bb-0310-9956-ffa450edef68
2020-12-30 23:13:23 +00:00
Andreas Beeker f7c50cfbe3 add failing regression test files
fix ooxml-lite packaging
fix PP97 dual storage file handling in extractor

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1884962 13f79535-47bb-0310-9956-ffa450edef68
2020-12-30 22:56:36 +00:00
Dominik Stadler b231366fb6 Bug 64986: Support missing or blank match_type for function Match
Excel and LibreOffice use the default value in this case

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1884959 13f79535-47bb-0310-9956-ffa450edef68
2020-12-30 21:40:12 +00:00
Dominik Stadler 42c4e7d89a Add unfixed test for bug 64759 and make the ones fail which depend on manual opening of files in Microsoft Excel for verification
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1884957 13f79535-47bb-0310-9956-ffa450edef68
2020-12-30 21:40:01 +00:00
Dominik Stadler a7c1d84c5d Improve the speed of the styles-optimiser when there are many styles in a Workbook
Profiling showed that the call to isUserDefined() took most of the time,
so we now fetch this only once for each style and remember the result and
use it in the inner loop.

The attached sample-file took aprox. 1m30s on a decent machine, now it is down
to around 2s.

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1884917 13f79535-47bb-0310-9956-ffa450edef68
2020-12-29 19:29:22 +00:00
PJ Fanning 353293f244 [bug-65023] add col bugfix. Thanks to Paula Muldoon, This closes #212
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1884794 13f79535-47bb-0310-9956-ffa450edef68
2020-12-25 09:50:50 +00:00
Dominik Stadler 352f5a034c Fix bug 64238: Make LOOKUP functions deal with empty last arg correctly
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1882827 13f79535-47bb-0310-9956-ffa450edef68
2020-10-25 07:21:45 +00:00
Nick Burch 6cba0bd437 Test PPT file containing a XLSX via an OLE2 intermediate layer, from Apache Tika
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1882467 13f79535-47bb-0310-9956-ffa450edef68
2020-10-13 22:23:37 +00:00
Andreas Beeker 2a292cb42d #64773 - Visual signatures for .xlsx/.docx
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1882394 13f79535-47bb-0310-9956-ffa450edef68
2020-10-10 23:33:26 +00:00
Andreas Beeker 8acb3adab9 Add more render test images
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1881773 13f79535-47bb-0310-9956-ffa450edef68
2020-09-16 19:37:52 +00:00
Andreas Beeker b00ca445b2 #64693 - POI HwmfGraphics cannot read the embedded document title
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1881322 13f79535-47bb-0310-9956-ffa450edef68
2020-08-30 11:18:21 +00:00
Tim Allison ab2dc71a95 Bug 64667.xlsx prevent NPE loading styles table
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1880834 13f79535-47bb-0310-9956-ffa450edef68
2020-08-13 18:21:28 +00:00
PJ Fanning a8d90aba91 [github-187] Add length validation for Excel DataValidations that are list literals. Thanks to Leo Webb. This closes #187
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1880727 13f79535-47bb-0310-9956-ffa450edef68
2020-08-09 21:15:15 +00:00
PJ Fanning 26c2049147 [bug-64508] add guard for invalid v value
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1879905 13f79535-47bb-0310-9956-ffa450edef68
2020-07-15 20:56:59 +00:00
PJ Fanning be09639638 [github-185] Fix if function in array formulas with 2nd argument evaluating to error. Thanks to Miłosz Rembisz. This closes #185
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1879481 13f79535-47bb-0310-9956-ffa450edef68
2020-07-03 16:09:03 +00:00
PJ Fanning f99533c56e move docx added to wrong test dir
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1879229 13f79535-47bb-0310-9956-ffa450edef68
2020-06-26 10:41:15 +00:00
PJ Fanning 06cf5caa2d [bug-64561] XWPFSDTContent.getText() is empty for nested SDT elements
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1879223 13f79535-47bb-0310-9956-ffa450edef68
2020-06-26 10:15:53 +00:00
Andreas Beeker d559feb7de 64512 - Ole10Native aka embedded / object packager - handle UTF16 variants
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1878730 13f79535-47bb-0310-9956-ffa450edef68
2020-06-11 00:43:45 +00:00
PJ Fanning b7930fc65c [github-181] make Value function work with arrays. Thanks to Miłosz Rembisz. This closes #181
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1878541 13f79535-47bb-0310-9956-ffa450edef68
2020-06-06 09:30:30 +00:00
Alain Béarez 8cbc3703c3 Bug 63290: retrieve default run properties from paragraph
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1878147 13f79535-47bb-0310-9956-ffa450edef68
2020-05-27 01:18:15 +00:00
Dominik Stadler 3cad9e6851 Bug 64322: Optimize performance of reading ole2 files
Remember channel-size to no re-read it for every read-access,
but reset it if we extend the size of the file
profiling indicates Channel.size() sometimes has similar runtime
overhead as position() or read()!

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1877816 13f79535-47bb-0310-9956-ffa450edef68
2020-05-16 13:06:07 +00:00
Dominik Stadler d2ad752e1c Fix bug 64420: NPE in XSSFReader for files with macro-sheets
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1877814 13f79535-47bb-0310-9956-ffa450edef68
2020-05-16 13:05:53 +00:00
PJ Fanning af8137a6e4 [github-180] Add DateValue function. Thanks to Milosz Rembisz. This closes #180
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1877793 13f79535-47bb-0310-9956-ffa450edef68
2020-05-15 20:15:00 +00:00
Andreas Beeker 778f4f5d7d #55505 - CountryRecord not found
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1876805 13f79535-47bb-0310-9956-ffa450edef68
2020-04-21 22:13:59 +00:00
Tim Allison 5976721660 64261 -- fix handling of drop down list when items are selected
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1875956 13f79535-47bb-0310-9956-ffa450edef68
2020-03-31 18:16:09 +00:00
Dominik Stadler da2afc19e2 Bug 55966: Include content control text in word extraction also if it is part of a paragraph
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1875802 13f79535-47bb-0310-9956-ffa450edef68
2020-03-28 09:24:38 +00:00
Andreas Beeker 40f320bcf9 github-167 - HSMF enhancements
introduce NameIdChunks.GetPropertyTag:
which enables evaluating property ids from properties identified by name/id in property sets (simple version of IMAPIProp::GetIDsFromNames)

AttachmentChunks.getAttachData:
use new ByteChunkDeferred instead of ByteChunk which enables delayed reading of attachments to avoid all attachments are completely read into memory when parsing which may cause OutOfMemoryErrors on e-mails with big attachments.

POIFSChunkParser:
support reading multi valued chunks (e.g. required when reading the Keywords ("categories") property)

add MAPIProperty.RECEIVED_BY_SMTP_ADDRESS

add unit tests

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1874990 13f79535-47bb-0310-9956-ffa450edef68
2020-03-08 23:26:53 +00:00
Dominik Stadler a7d96dcb73 Bug 58896 and 52834: Cache Sheet.getMergedRegions() as it seems to sometimes be the culprit for autosize taking a very long time.
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1874973 13f79535-47bb-0310-9956-ffa450edef68
2020-03-08 11:17:34 +00:00
Tim Allison 636cc83665 Bug 64130 -- handle empty worksheet names in OldSheetRecord more robustly.
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1873863 13f79535-47bb-0310-9956-ffa450edef68
2020-02-10 17:38:29 +00:00
Andreas Beeker 33fd0b22d6 Regression findings - fix missing moveto exception
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1873515 13f79535-47bb-0310-9956-ffa450edef68
2020-02-02 22:53:09 +00:00
Andreas Beeker f7fe4b0d59 #63955 - HMEFContentsExtractor fails to extract content from winmail.dat
added example file - optimized junit tests

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1872480 13f79535-47bb-0310-9956-ffa450edef68
2020-01-08 00:49:39 +00:00
Dominik Stadler 4aa8334e3b Fix some additional file-handle-leaks reported by unit-tests via an enhanced version of the file-leak-detector
Also add a test for Bug 64045

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1872287 13f79535-47bb-0310-9956-ffa450edef68
2020-01-03 13:11:41 +00:00
Dominik Stadler 9f35db4f51 Bug 63940: Avoid endless loop/out of memory on string-replace with empty search string
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1872145 13f79535-47bb-0310-9956-ffa450edef68
2019-12-31 16:52:55 +00:00
Dominik Stadler 821e164041 Bug 63700: Make D* functions work with numeric result column
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1872136 13f79535-47bb-0310-9956-ffa450edef68
2019-12-31 10:41:43 +00:00