Benutzer mit den meisten Antworten
Word Bild als Link einfügen an einer bestimmten Stelle

Frage
-
Hi Forum,
ich habe zwar die Mögichkeit ein Bild in ein Word Dokument zu laden und auch anzuzeigen.
Das Ganze geht über eine Textmarke.
Aber wie kann ich so was machen wenn ich das Bild nicht links sondern zB in der Mitte haben möchte und dabei
auch noch nur eine bestimmte Größe möchte.
Kann ich irgendwie einen Rahmen machen der das max. Bild darstellt und in diesen Rahmen das Bild laden
und die Größe entsprechend dem Rahmen begrenzen ?
Gruß Roland
Antworten
-
Hi Roland,
Ein InlineShape ist - wie der Name schon sagt - eine Form, die innerhalb einer Zeile einfegügt werden kann und verhält sich daher genauso wie ein Textzeichen. Das ist nicht, was Du brauchst, denn Du möchtest das Bild ja frei plazieren können.
Du brauchst also ein Shape-Objekt. Das ist ein Objekt, das zwar immer an ein Range verankert ist, dennoch aber frei plazierbar bleibt (auf der Seite, die den Anker enthält).
Du könntest dazu z.B. folgenden Code verwenden:
using System; using Word = Microsoft.Office.Interop.Word; namespace PlacePictureInWordDocument { class Program { static void Main(string[] args) { Word.Application app = new Word.Application(); app.Visible = true; app.Documents.Add(); Word.Shape shp = app.ActiveDocument.Shapes.AddPicture( @"C:\Users\Public\Pictures\Sample Pictures\Koala.jpg", true, true, 120, 120, 200, 150); float DISTANCE_TO_DOCUMENT_TEXT = app.InchesToPoints(0.1f); shp.WrapFormat.Type = Word.WdWrapType.wdWrapSquare; shp.WrapFormat.Side = Word.WdWrapSideType.wdWrapBoth; shp.WrapFormat.DistanceBottom = DISTANCE_TO_DOCUMENT_TEXT; shp.WrapFormat.DistanceLeft = DISTANCE_TO_DOCUMENT_TEXT; shp.WrapFormat.DistanceRight = DISTANCE_TO_DOCUMENT_TEXT; shp.WrapFormat.DistanceTop = DISTANCE_TO_DOCUMENT_TEXT; } } }
Gruß
Marcel- Als Antwort vorgeschlagen Tom Lambert (Koopakiller)Moderator Donnerstag, 26. Dezember 2013 12:22
- Als Antwort markiert Ciprian Bogdan Samstag, 28. Dezember 2013 11:42
Alle Antworten
-
Hi Roland,
Möchtest Du das oben Beschriebene durch Code ausführen ?
Danke und Gruß,
Ciprian
Ciprian Bogdan, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
-
Hi Roland,
Leider kann ich nicht ganz verstehen was Du mit "meinem Program" meinst.
Hast du ein Programm selbst entwickelt, oder ist die Rede über Microsoft Office Word ?
Danke,
Ciprian
Ciprian Bogdan, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
-
Hi Ciprian,
aus c# heraus
// Bild einfügen object ymBild = "ymBild"; WordApp.Selection.GoTo(ref missing, ref missing, ref missing, ref ymBild); string fileNameY = "C:\\temp\\foto3.bmp"; WordApp.Selection.InlineShapes.AddPicture(fileNameY, ref missing, ref missing, ref missing);
Das Bild möchte ich jetzt möglichst frei in Word plaziere. So das ich um das Bild herum auch noch Text einfügen kann.
Gruß Roland
-
Hi Roland,
Ein InlineShape ist - wie der Name schon sagt - eine Form, die innerhalb einer Zeile einfegügt werden kann und verhält sich daher genauso wie ein Textzeichen. Das ist nicht, was Du brauchst, denn Du möchtest das Bild ja frei plazieren können.
Du brauchst also ein Shape-Objekt. Das ist ein Objekt, das zwar immer an ein Range verankert ist, dennoch aber frei plazierbar bleibt (auf der Seite, die den Anker enthält).
Du könntest dazu z.B. folgenden Code verwenden:
using System; using Word = Microsoft.Office.Interop.Word; namespace PlacePictureInWordDocument { class Program { static void Main(string[] args) { Word.Application app = new Word.Application(); app.Visible = true; app.Documents.Add(); Word.Shape shp = app.ActiveDocument.Shapes.AddPicture( @"C:\Users\Public\Pictures\Sample Pictures\Koala.jpg", true, true, 120, 120, 200, 150); float DISTANCE_TO_DOCUMENT_TEXT = app.InchesToPoints(0.1f); shp.WrapFormat.Type = Word.WdWrapType.wdWrapSquare; shp.WrapFormat.Side = Word.WdWrapSideType.wdWrapBoth; shp.WrapFormat.DistanceBottom = DISTANCE_TO_DOCUMENT_TEXT; shp.WrapFormat.DistanceLeft = DISTANCE_TO_DOCUMENT_TEXT; shp.WrapFormat.DistanceRight = DISTANCE_TO_DOCUMENT_TEXT; shp.WrapFormat.DistanceTop = DISTANCE_TO_DOCUMENT_TEXT; } } }
Gruß
Marcel- Als Antwort vorgeschlagen Tom Lambert (Koopakiller)Moderator Donnerstag, 26. Dezember 2013 12:22
- Als Antwort markiert Ciprian Bogdan Samstag, 28. Dezember 2013 11:42