For listing the contents of StyleTextPropAtom entries
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353766 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f08fb90153
commit
426df87c2e
117
src/scratchpad/src/org/apache/poi/hslf/dev/TextStyleListing.java
Normal file
117
src/scratchpad/src/org/apache/poi/hslf/dev/TextStyleListing.java
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
|
||||||
|
/* ====================================================================
|
||||||
|
Copyright 2002-2004 Apache Software Foundation
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
==================================================================== */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
package org.apache.poi.hslf.dev;
|
||||||
|
|
||||||
|
import org.apache.poi.hslf.*;
|
||||||
|
import org.apache.poi.hslf.model.*;
|
||||||
|
import org.apache.poi.hslf.record.*;
|
||||||
|
import org.apache.poi.hslf.record.StyleTextPropAtom.*;
|
||||||
|
import org.apache.poi.hslf.usermodel.*;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Uses record level code to locate StyleTextPropAtom entries.
|
||||||
|
* Having found them, it shows the contents
|
||||||
|
*/
|
||||||
|
public class TextStyleListing {
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
if(args.length < 1) {
|
||||||
|
System.err.println("Need to give a filename");
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
HSLFSlideShow ss = new HSLFSlideShow(args[0]);
|
||||||
|
|
||||||
|
// Find the documents, and then their SLWT
|
||||||
|
Record[] records = ss.getRecords();
|
||||||
|
for(int i=0; i<records.length; i++) {
|
||||||
|
if(records[i].getRecordType() == 1000l) {
|
||||||
|
Record docRecord = records[i];
|
||||||
|
Record[] docChildren = docRecord.getChildRecords();
|
||||||
|
for(int j=0; j<docChildren.length; j++) {
|
||||||
|
if(docChildren[j] instanceof SlideListWithText) {
|
||||||
|
Record[] slwtChildren = docChildren[j].getChildRecords();
|
||||||
|
|
||||||
|
int lastTextLen = -1;
|
||||||
|
for(int k=0; k<slwtChildren.length; k++) {
|
||||||
|
if(slwtChildren[k] instanceof TextCharsAtom) {
|
||||||
|
lastTextLen = ((TextCharsAtom)slwtChildren[k]).getText().length();
|
||||||
|
}
|
||||||
|
if(slwtChildren[k] instanceof TextBytesAtom) {
|
||||||
|
lastTextLen = ((TextBytesAtom)slwtChildren[k]).getText().length();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(slwtChildren[k] instanceof StyleTextPropAtom) {
|
||||||
|
StyleTextPropAtom stpa = (StyleTextPropAtom)slwtChildren[k];
|
||||||
|
stpa.setParentTextSize(lastTextLen);
|
||||||
|
showStyleTextPropAtom(stpa);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void showStyleTextPropAtom(StyleTextPropAtom stpa) {
|
||||||
|
System.out.println("\nFound a StyleTextPropAtom");
|
||||||
|
|
||||||
|
LinkedList paragraphStyles = stpa.getParagraphStyles();
|
||||||
|
System.out.println("Contains " + paragraphStyles.size() + " paragraph styles:");
|
||||||
|
for(int i=0; i<paragraphStyles.size(); i++) {
|
||||||
|
TextPropCollection tpc = (TextPropCollection)paragraphStyles.get(i);
|
||||||
|
System.out.println(" In paragraph styling " + i + ":");
|
||||||
|
System.out.println(" Characters covered is " + tpc.getCharactersCovered());
|
||||||
|
showTextProps(tpc);
|
||||||
|
}
|
||||||
|
|
||||||
|
LinkedList charStyles = stpa.getCharacterStyles();
|
||||||
|
System.out.println("Contains " + charStyles.size() + " character styles:");
|
||||||
|
for(int i=0; i<charStyles.size(); i++) {
|
||||||
|
TextPropCollection tpc = (TextPropCollection)charStyles.get(i);
|
||||||
|
System.out.println(" In character styling " + i + ":");
|
||||||
|
System.out.println(" Characters covered is " + tpc.getCharactersCovered());
|
||||||
|
showTextProps(tpc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void showTextProps(TextPropCollection tpc) {
|
||||||
|
LinkedList textProps = tpc.getTextPropList();
|
||||||
|
System.out.println(" Contains " + textProps.size() + " TextProps");
|
||||||
|
for(int i=0; i<textProps.size(); i++) {
|
||||||
|
TextProp tp = (TextProp)textProps.get(i);
|
||||||
|
System.out.println(" " + i + " - " + tp.getName());
|
||||||
|
System.out.println(" = " + tp.getValue());
|
||||||
|
System.out.println(" @ " + tp.getMask());
|
||||||
|
|
||||||
|
if(tp instanceof BitMaskTextProp) {
|
||||||
|
BitMaskTextProp bmtp = (BitMaskTextProp)tp;
|
||||||
|
String[] subPropNames = bmtp.getSubPropNames();
|
||||||
|
boolean[] subPropMatches = bmtp.getSubPropMatches();
|
||||||
|
for(int j=0; j<subPropNames.length; j++) {
|
||||||
|
System.out.println(" -> " + j + " - " + subPropNames[j]);
|
||||||
|
System.out.println(" " + j + " = " + subPropMatches[j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user