[Java] Insérer une image, graphique, etc sous Writer

Vos meilleures macros et portions de code sont publiées dans cette section.
Aucun support sur une question de programmation ici !

Modérateur : Vilains modOOs

Règles du forum
Aucune question dans cette section !
Celle-ci rassemble les meilleures macros et portions de code. Vous pouvez en revanche commenter ou argumenter le code exposé. Vous pouvez même remercier l'auteur (cela fait toujours plaisir) en indiquant par exemple dans quel cadre ou contexte vous en avez eu l'utilité.
Si vous avez à poster quelque chose, faites-le depuis la section Macros et API et demandez à un modérateur de l'y déplacer.
error
Membre OOrganisé
Membre OOrganisé
Messages : 83
Inscription : 22 août 2006 09:10
Localisation : Suisse

[Java] Insérer une image, graphique, etc sous Writer

Message par error »

[JAVA] Insertion d'une image, graphique,etc dans un document Writer

Je trouve que cette partie est assez mal expliquée dans le Developer's Guide. Je la met donc ici afin que d'autres personnes ne rame pas autant que moi pour la comprendre.
(Merci aux personnes qui m'ont aidées.)

Code : Tout sélectionner

try
{
		
	XTextDocument xTextDocument = (XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, xComponent);			
	
	//Créé un TextRange au début du document
	XTextRange xStart = xTextDocument.getText().getStart();	        
	XTextCursor xCursor = xStart.getText().createTextCursorByRange(xStart);
	        
	XText xText = xCursor.getText();
	XTextContent xImage = null;
			
	XMultiServiceFactory xMSF = (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xComponent); 
	xImage = (XTextContent) UnoRuntime.queryInterface(XTextContent.class,xMSF.createInstance("com.sun.star.text.TextGraphicObject"));
	
	//Définit les propriétés de l'insertion
	XPropertySet xProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xImage);
	xProps.setPropertyValue("AnchorType",com.sun.star.text.TextContentAnchorType.AT_PAGE);//Détermine l'ancrage à la page
	xProps.setPropertyValue("GraphicURL", CorpsURL);//Détermine l'URL concernant l'image (Format: file:///C:/temp/image.gif)
	xProps.setPropertyValue("Print", true);//Détermine si l'objet sera imprimé aussi lors de l'impression du doc.
	xProps.setPropertyValue("Width", (int)17000 );//Largeur de l'image
	xProps.setPropertyValue("Height", (int)11000);//Hauteur de l'image
	xProps.setPropertyValue("VertOrient", new Short(VertOrientation.CENTER));//Alignement vertical
	xProps.setPropertyValue("TextWrap", com.sun.star.text.WrapTextMode.THROUGHT);//Sans adaptation du texte pour l'image
	xProps.setPropertyValue("Opaque", false);  //En arrière plan
	
	// Insère le graphique là où se trouve le curseur
	xText.insertTextContent(xCursor, xImage, false);
}
catch (Exception e) 
{
	System.out.println("Failed to insert Graphic");
	e.printStackTrace();
}	
WinXP SP3 || OOo 2.4.1