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]

Reply via email to