Andrew, I am using this two methods to put header in my document, the problem is that the header appear in all pages. It must appear only in the first page. I using XStyle but doesn't modify anything.
public void setHeader(String p_jlsHF, String p_jlsImagePath,XTextDocument m_xTextDocument) { try { XTextCursor m_xTextCursor = m_xTextDocument.getText().createTextCursor(); final String f_jlsPrefix = p_jlsHF.equals("H") ? "Header" : "Footer"; //m_xTextCursor é classe membro que especifica o XTextCursor do XTextDocument atual XPropertySet xPageProps = (XPropertySet)UnoRuntime. queryInterface(XPropertySet.class, m_xTextCursor); String jlsPageStyleName = (String)xPageProps. getPropertyValue("PageStyleName"); XStyleFamiliesSupplier xSupplier = (XStyleFamiliesSupplier)UnoRuntime. queryInterface(XStyleFamiliesSupplier.class, m_xTextDocument); //Usa a interface StyleFamiliesSupplier para obter a interface XNameAccess // da familia de estilos atual XNameAccess xFamilies = (XNameAccess)UnoRuntime. queryInterface(XNameAccess.class, xSupplier.getStyleFamilies()); //acessa a familia 'PageStyles' XNameContainer xFamily = (XNameContainer)UnoRuntime. queryInterface(XNameContainer.class, xFamilies.getByName("PageStyles")); //obter o estilo para a familia PageStyles XStyle xStyle = (XStyle)UnoRuntime.queryInterface(XStyle.class, xFamily.getByName(jlsPageStyleName)); /*XStyle xStyle = (XStyle) UnoRuntime.queryInterface( XStyle.class, xFamily.getByName("First Page")); XPropertySet xStyleProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xStyle); xStyleProps.setPropertyValue("FollowStyle", "Right Page");*/ //obter a propriedade do TextCursor Sabe XPropertySet xStyleProps = (XPropertySet)UnoRuntime. queryInterface(XPropertySet.class, xStyle); //O cabeçalho/rodapé deve existir xStyleProps.setPropertyValue(f_jlsPrefix + "IsOn", new Boolean(true)); //obter cabeçalho/rodapé XText xText = (XText)UnoRuntime.queryInterface(XText.class, xStyleProps. getPropertyValue(f_jlsPrefix + "Text")); XTextCursor xTextCursor = xText.createTextCursor(); getFachadaOpenOffice().inserirCabecalho(m_xTextDocument, xText.getStart()); xTextCursor.gotoEnd(false); //p_jlsText é o parâmetro a ser inserido no cabeçalho/rodapé //xText.insertString(xTextCursor, p_jlsText, false); } catch (UnknownPropertyException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (PropertyVetoException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (WrappedTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchElementException e) { // TODO Auto-generated catch block e.printStackTrace(); } public void inserirCabecalho(XComponent document, XTextRange bookmark) { try { String imageUrl= ""; String imageName = getDiretorioBase() + "imagens//" + getCabecalhoDocumento(); Image image = null; File imageFile = new File(imageName); try { imageUrl = ("file:///" + imageFile.getCanonicalPath()).replace('\\', '/'); image = ImageIO.read(imageFile); } catch (java.io.IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } short hOrientation = HoriOrientation.LEFT; // Escolher HoriOrientation short vOrientation = VertOrientation.TOP; // Escolher VertOrientation int imageWidth; int imageHeight; int enlargement = 18; // depende do tamanho da imagem if (image != null) { imageWidth = (image.getWidth(null) * enlargement); imageHeight = (image.getHeight(null) * enlargement ); image.flush(); } else { imageWidth = 100; imageHeight = 100; System.out.println("Something is wrong with the image."); } TextContentAnchorType oTCAT = null; // Choose among TextContentAnchorType elements WrapTextMode oWTM = null; // Choose among WrapTextMode elements // Create graphic object XMultiServiceFactory xWriterFactory = (XMultiServiceFactory) UnoRuntime. queryInterface(XMultiServiceFactory.class, document); Object graphicObject = xWriterFactory.createInstance("com.sun.star.text.GraphicObject"); // set propriedades XPropertySet xPropSet = (XPropertySet) UnoRuntime. queryInterface(XPropertySet.class, graphicObject); xPropSet.setPropertyValue("GraphicURL", imageUrl); xPropSet.setPropertyValue("HoriOrient", new Short(hOrientation)); xPropSet.setPropertyValue("VertOrient", new Short(vOrientation)); xPropSet.setPropertyValue("Width", new Integer(imageWidth)); xPropSet.setPropertyValue("Height", new Integer(imageHeight)); xPropSet.setPropertyValue("AnchorType", oTCAT); xPropSet.setPropertyValue("TextWrap", oWTM); XStyleFamiliesSupplier xSupplier = (XStyleFamiliesSupplier)UnoRuntime. queryInterface(XStyleFamiliesSupplier.class, document); XNameAccess xFamilies = (XNameAccess)UnoRuntime. queryInterface(XNameAccess.class, xSupplier.getStyleFamilies()); XNameContainer xFamily = (XNameContainer)UnoRuntime. queryInterface(XNameContainer.class, xFamilies.getByName("PageStyles")); XStyle xStyle = (XStyle) UnoRuntime.queryInterface( XStyle.class, xFamily.getByName("First Page")); XPropertySet xStyleProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xStyle); xStyleProps.setPropertyValue("FollowStyle", "Right Page"); // Inserir objeto gráfico XTextContent xGraphicObjectTextContent = (XTextContent) UnoRuntime. queryInterface(XTextContent.class, graphicObject); bookmark.getText().insertTextContent(bookmark, xGraphicObjectTextContent, false); } catch (com.sun.star.uno.Exception e) { e.printStackTrace(); } catch (com.sun.star.uno.RuntimeException e) { e.printStackTrace(); } } Andrew Douglas Pitonyak wrote: > > aloizio wrote: >> I don't understand styles well enough yet. Have you some example code? I >> have been working with OpenOffice API for three months. >> > First, you need to know how to do this using the GUI. In other words, > you must understand how styles work. After you understand styles and how > to use them, then, and only then, should you attempt to code it using > the API. If you do not understand how styles work, then understanding > how to manipulate them from the API will not help. > > I recommend that you start with the documentation project and/or the > user's guide to first learn how to use styles. > > -- > Andrew Pitonyak > My Macro Document: http://www.pitonyak.org/AndrewMacro.odt > My Book: http://www.hentzenwerke.com/catalog/oome.htm > Info: http://www.pitonyak.org/oo.php > See Also: http://documentation.openoffice.org/HOW_TO/index.html > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- View this message in context: http://www.nabble.com/How-can-I-insert-a-header-only-in-the-first-page-tf2570760.html#a7220018 Sent from the openoffice - api dev mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]