mirror of https://github.com/apache/poi.git
Test that shows we handle word floating and fixed pictures properly
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1002123 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
7d9e12864a
commit
7033853c36
|
@ -985,7 +985,7 @@ public abstract class CHPAbstractType
|
|||
|
||||
/**
|
||||
*
|
||||
* @return the fSpec field value.
|
||||
* @return is the fSpec field value set? (Also known as sprmCFSpec)
|
||||
*/
|
||||
public boolean isFSpec()
|
||||
{
|
||||
|
|
|
@ -261,4 +261,45 @@ public final class TestPictures extends TestCase {
|
|||
assertEquals("10a8", picture.suggestFullFileName());
|
||||
assertEquals("image/unknown", picture.getMimeType());
|
||||
}
|
||||
|
||||
/**
|
||||
* In word you can have floating or fixed pictures.
|
||||
* Fixed have a \u0001 in place with an offset to the
|
||||
* picture data.
|
||||
* Floating have a \u0008 in place, which references a
|
||||
* \u0001 which has the offset. More than one can
|
||||
* reference the same \u0001
|
||||
*/
|
||||
public void testFloatingPictures() throws Exception {
|
||||
HWPFDocument doc = HWPFTestDataSamples.openSampleFile("FloatingPictures.doc");
|
||||
PicturesTable pictures = doc.getPicturesTable();
|
||||
|
||||
// There are 19 images in the picture, but some are
|
||||
// duplicate floating ones
|
||||
assertEquals(17, pictures.getAllPictures().size());
|
||||
|
||||
int plain8s = 0;
|
||||
int escher8s = 0;
|
||||
int image1s = 0;
|
||||
|
||||
Range r = doc.getRange();
|
||||
for(int np=0; np < r.numParagraphs(); np++) {
|
||||
Paragraph p = r.getParagraph(np);
|
||||
for(int nc=0; nc < p.numCharacterRuns(); nc++) {
|
||||
CharacterRun cr = p.getCharacterRun(nc);
|
||||
if(pictures.hasPicture(cr)) {
|
||||
image1s++;
|
||||
} else if(pictures.hasEscherPicture(cr)) {
|
||||
escher8s++;
|
||||
} else if(cr.text().startsWith("\u0008")) {
|
||||
plain8s++;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Total is 20, as the 4 escher 8s all reference
|
||||
// the same regular image
|
||||
assertEquals(16, image1s);
|
||||
assertEquals(4, escher8s);
|
||||
assertEquals(0, plain8s);
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue