nepixl
Goto Top

VB: Bild aus Panel (Background) in Datei speichern in Verbindung mit PrintLine

Mahlzeit werte Admins,

sitze mal wieder vor einem VB Problemchen.
Aktuell möchte ich meine in der Form eingegebene Daten in eine Textfile (bzw *.doc(x)) file ausgeben. Jedoch wird in der Doc File die zugehörige Zeichnung vom Auftraggeber erwartet.

Derzeit übergebe ich meine Daten wie folgt:

 SaveFileDialog1.Filter = "doc(*.doc)| *.doc"  
        SaveFileDialog1.ShowDialog()
        If SaveFileDialog1.FileName <> "" Then  
            FileOpen(1, SaveFileDialog1.FileName, OpenMode.Output)
            PrintLine(1, "")  
            PrintLine(1, "Text" & Textbox.Text)  
            PrintLine(1, "Text2" & Textbox.Text2)  
            PrintLine(1, "")  
            FileClose(1)
        End If

Das klappt soweit auch ganz gut (Leider mit Formatierungsabfragen seitens Word).
Jedoch soll nun auch ein Bild in genau diese File geschrieben werden. Habe es hier mal probiert jedoch gescheitert:
PrintLine(1, Panel1.BackgroundImage) + Spielereien
Jedoch schmiert er mir dann ab.

Das besagte Bild ist der Hintergrund eines Panels.
Habt Ihr mir hierzu einen Tipp oder einen Vorschlag wie man es so einfach wie möglich umsetzen kann? Wäre euch sehr verbunden! face-smile
Gearbeitet wird mit VB 2010 Express.

Da ich mich Stück für Stück in die Programmierwelt einarbeite, bitte ich um Verständnis wenn ich total Müll produziere mit meinem Code. face-smile

Ich danke im Voraus
Viele Grüße
PixL

Content-ID: 340371

Url: https://administrator.de/contentid/340371

Ausgedruckt am: 24.11.2024 um 03:11 Uhr

eisbein
eisbein 12.06.2017 aktualisiert um 12:20:45 Uhr
Goto Top
Hallo!

Du hast da meines Erachtens mindestens 2 Denkfehler:

1) Du willst ein File einfach als .doc speichern und erwartest dann, dass es sich wie ein Word-Dokument verhält.

2) Panel1.BackgroundImage ist vom Typ Bitmap. Wie soll das (für Word lesbar) in die Datei geschrieben werden?

Mach dich erst mal schlau, wie man Word einbindet um ein Dokument erstellt.

Gruß
Eisbein
nepixl
nepixl 12.06.2017 um 12:27:26 Uhr
Goto Top
Hallo Eisbein,

Stimme ich Dir voll und ganz zu. Nur weiß ich mir momentan nicht anders zu helfen.
Ich belese mich mal in die von Dir vorgeschlagenen Themen.

Danke Dir!

Grüße
PixL
133417
Lösung 133417 12.06.2017 aktualisiert um 13:41:40 Uhr
Goto Top
Hi.
Normalerweise macht man das über das über das Einbinden der Outlook.Interop Assemblies, du kannst es aber auch über das COM-Objekt machen. Hier ein Beispiel:
Dim doc As Object
With CreateObject("Word.Application")  
       .Visible = True
       doc = .Documents.Add()
       doc.Range.Text = "BlaBla1" & vbNewLine & "BlaBla2"  
       doc.InlineShapes.AddPicture("D:\Bilder\fettesbild.jpg", False)  
End With
Damit kannst du das Word-Objektmodell ganz wie in VBA ansprechen. Du kannst also fast exakt die VBA-Doku zur Rate ziehen.

Gruß
nepixl
nepixl 12.06.2017 um 12:32:26 Uhr
Goto Top
Hallo BibersBaum,

sehr geil! Dankeschön! face-smile

Viele Grüße
PixL
133417
133417 12.06.2017 um 12:33:19 Uhr
Goto Top
Bidde.
nepixl
nepixl 12.06.2017 um 12:48:43 Uhr
Goto Top
Hallo nochmal,

Gibt es auch die Möglichkeit (oder ein Denkanstoß) um die Bildfile irgendwie aus dem "Programm" zu holen?
Wenn ich einen fixen Pfad eingeben muss, wäre es vermutlich suboptimal da die Bilder auf einem neuem/anderem System nicht zu finden sind.

Ich probiere solange etwas .. face-smile

Danke schonmal!
Gruß
PixL
133417
133417 12.06.2017 aktualisiert um 12:50:54 Uhr
Goto Top
Gibt es auch die Möglichkeit (oder ein Denkanstoß) um die Bildfile irgendwie aus dem "Programm" zu holen?
Speichere es aus deinem Programm ins Dateisystem (z.B. in den Tempordner) und dann lädst du es über die definierte Pfad-Variable rein, wo ist das Problem ???
Ab und zu mal die Hirnrinde massieren hilft face-wink.
nepixl
nepixl 12.06.2017 um 12:52:23 Uhr
Goto Top
Zitat von @133417:
...wo ist das Problem ???
Ab und zu mal die Hirnrinde massieren hilft face-wink.

MONTAG! Hmpf, .. natürlich! *kopfditsch*

Danke Dir! face-smile
eisbein
eisbein 12.06.2017 um 13:36:21 Uhr
Goto Top
Hallo!

inlineshapes.addpicture

Nun, wenn man sich die Beschreibung liest, könnte es da noch einen anderen Weg geben. face-wink

doc.InlineShapes.AddPicture("D:\Bilder\fettesbild.jpg", TRUE, True)   
True , um das verknüpfte Bild mit dem Dokument zu speichern. Der Standardwert ist False .

Gruß
eisbein
133417
133417 12.06.2017 aktualisiert um 13:44:15 Uhr
Goto Top
Zitat von @eisbein:

Hallo!

inlineshapes.addpicture

Nun, wenn man sich die Beschreibung liest, könnte es da noch einen anderen Weg geben. face-wink

> doc.InlineShapes.AddPicture("D:\Bilder\fettesbild.jpg", TRUE, True)   
> 
True , um das verknüpfte Bild mit dem Dokument zu speichern. Der Standardwert ist False .
Meine Zeile oben stellt also ein Szenario dar bei dem das Bild im Dokument also keine Abhängigkeiten ins Dateisystem hat also eingebettet wird, ob das eben gewünscht ist muss er selbst entscheiden. Doku kann er ja hoffentlich lesen face-wink.