Hi, > I found that if page is more than 2, it will has problem. Would you pls > help try a 3 page exist odt sample for this issue?
are you sure? the following code gives me a new 6 pages document with string:
Page # 1
Page # 2
Page # 3
Page # 4
Page # 5
public class TextfieldProblem {
public static void setTextfield(final XComponent component) {
final XMultiServiceFactory serviceFactory =
UnoRuntime.queryInterface(
XMultiServiceFactory.class, component);
final XTextDocument xDoc = UnoRuntime.queryInterface(
XTextDocument.class, component);
try {
final XText xText = xDoc.getText();
final XTextCursor xTextCursor =
xText.createTextCursor();
xTextCursor.gotoRange(xText.getStart(), false);
for (int i = 0; i < 5; i++) {
xText.insertString(xTextCursor, "Page # ",
false);
xText.insertTextContent(xTextCursor,
TextfieldProblem.createTextfield(serviceFactory), false);
TextfieldProblem.insertPageBreak(xText,
xTextCursor);
}
} catch (final IllegalArgumentException e) {
e.printStackTrace();
} catch (final UnknownPropertyException e) {
e.printStackTrace();
} catch (final PropertyVetoException e) {
e.printStackTrace();
} catch (final WrappedTargetException e) {
e.printStackTrace();
}
TextfieldProblem.getTextfield(xDoc);
}
private static XTextField createTextfield(
final XMultiServiceFactory serviceFactory) {
XTextField pageNumberFiled = null;
try {
pageNumberFiled = UnoRuntime
.queryInterface(
XTextField.class,
serviceFactory
.createInstance("com.sun.star.text.textfield.PageNumber"));
final XPropertySet props = UnoRuntime.queryInterface(
XPropertySet.class, pageNumberFiled);
props.setPropertyValue("NumberingType", new Short(
com.sun.star.style.NumberingType.ARABIC));
props.setPropertyValue("SubType",
com.sun.star.text.PageNumberType.CURRENT);
} catch (final Exception e) {
e.printStackTrace();
}
return pageNumberFiled;
}
private static void insertPageBreak(final XText xText,
final XTextCursor xTextCursor) throws
UnknownPropertyException,
PropertyVetoException, IllegalArgumentException,
WrappedTargetException {
final XPropertySet xCursorProps = UnoRuntime.queryInterface(
XPropertySet.class, xTextCursor);
xCursorProps.setPropertyValue("BreakType",
BreakType.PAGE_AFTER);
xText.insertControlCharacter(xTextCursor,
ControlCharacter.PARAGRAPH_BREAK, false);
xTextCursor.gotoEnd(false);
}
public static void getTextfield(final XComponent xComponent) {
final XTextDocument document = UnoRuntime.queryInterface(
XTextDocument.class, xComponent);
final String documentString = document.getText().getString();
System.out.println(documentString);
}
}
Regards
Oliver
--
GnuPG key 0xCFD04A45: 8822 057F 4956 46D3 352C 1A06 4E2C AB40 CFD0 4A45
signature.asc
Description: OpenPGP digital signature
