Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
InlineShape Picture wird nicht gedruckt
zurück: Text zu lang um ihn von Excel nach Word zu kopieren weiter: Befehl für Haken gesucht Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Silberbaum
Im Profil kannst Du frei den Rang ändern


Verfasst am:
22. Apr 2010, 15:13
Rufname:

InlineShape Picture wird nicht gedruckt - InlineShape Picture wird nicht gedruckt

Nach oben
       Version: Office XP (2002)

Aloha!

Erst einmal ich bin neu, das ist mein erstes Posting in diesem Forum, habt bitte etwas Gnade mit mir.

Ich bin mit der Suche leider nicht fündig geworden und mein Problem ist offenbar auch zu speziell als das mir Google bisher weitergeholfen hätte. Daher nun folgende Problemschilderung:

Ich lasse über ein Makro in Word ein Bild als InlineShape einfügen. Sowie darüber einige Textdokumente. Das ganze ist ein automatisierter Formfiller, den man nur noch mit Daten füttern muss. Wie dem auch sei, die Generierung des Dokuments funktioniert genauso wie ich es möchte.
Im Anschluss wird das ganze an den Drucker geschickt und ausgedruckt und es sieht auch genauso aus wie es aussehen soll.

Nun wenn alles funktioniert wie ich es will, wo ist dann das Problem?
Lasse ich das Makro im Worddokument aus Excel heraus ausführen, wird das Dokument auch ganz normal generiert aber beim Druck fehlt das als InlineShape eingefügte Bild.

Wenn ich das Druckmakro für das so eben erzegute Dokument noch einmal von Hand anstoße, dann wird das Bild mitgedruckt.

Interessant ist auch: Wenn ich zwischen dem Aufrufen der beiden Makros für das Erstellen oder für das Drucken eine MsgBox schalte und diese wegdrucke wird vernünftig gedruckt.
Ich nahm nun an, das das Dokument vielleicht nicht schnell genug generiert werden kann, also habe ich es a) damit versucht das Dateigröße des Bildes zu schrumpfen, hat nicht funktioniert und b) eine kleine Schleife eingebaut die das Makro 15 Sekunden warten lässt bevor es nach der Erstellung druckt, auch das hat nicht funktioniert

Ich hoffe ihr habt eine Lösung dafür. Danke schon im Vorraus!

PS: Eventuell gehört es ja auf Grund der Excel-Problematik ja in das Excel VBA Forum, dann bitte einfach dahin verschrieben.

PSS (Edit1): (Für diejenigen die glauben das es an der Backgroundeinstellung beim Drucken liegt) -> Der Druck erfolgt mit Background = False
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
22. Apr 2010, 17:28
Rufname:
Wohnort: Leipzig


AW: InlineShape Picture wird nicht gedruckt - AW: InlineShape Picture wird nicht gedruckt

Nach oben
       Version: Office XP (2002)

Hallo Silberbaum,

zeig mal den Code, besonders die Stelle, die das InlineShape einfügt (direkt eingefügt oder verknüpft, d. h. mit Feldfunktion), möglichst bis zum Druckbefehl.

Wird die Datei vor dem Druck gespeichert oder danach oder gar nicht?
Falls vor dem Druck nicht gespeichert wird, könnte es helfen, vorher zu speichern und erst danach zu drucken.

Zeig auch mal den Druckbefehl.

Kontrollier auch mal die Optionen in Word bei Extras - Optionen - Drucken: Zeichnungsobjekte muss ein Häkchen haben, Platzhalter für Grafiken darf kein Häkchen haben usw.

Ach so, ganz wichtig: Wie sieht denn der Ausdruck sonst aus: Sind alle anderen eingefüllten Bestandteile vorhanden? Wird statt des Bilds ein Platzhalter oder sonstwas gedruckt?

Gruß
Lisa
Silberbaum
Im Profil kannst Du frei den Rang ändern


Verfasst am:
22. Apr 2010, 18:24
Rufname:

AW: InlineShape Picture wird nicht gedruckt - AW: InlineShape Picture wird nicht gedruckt

Nach oben
       Version: Office XP (2002)

Hallo erst einmal danke dafür, das schon wer geantwortet hat. Den Code gibts morgen.

Die Datei wird vorher nicht gespeichert, das probier ich morgen und geb natürlich auch Bescheid.

Die Haken habe ich auf meiner unendlichen Google Suche geprüft, da kann ich mit Sicherheit sagen das Zeichnungsobjekte gehakt und Platzhalter aussind.

Wie gesagt wenn ich das Makro direkt aus Word ausführe, wird auch das Bild mitgedruckt, nur wenn ich das Word Makro aus Excel ausführe wird es nicht gedruckt. Alle anderen Sachen werden gedruckt, das Bild wird gar nicht angezeigt, auch kein Platzhalter oder etwas anderes an der Stelle.
Silberbaum
Im Profil kannst Du frei den Rang ändern


Verfasst am:
23. Apr 2010, 07:35
Rufname:

AW: InlineShape Picture wird nicht gedruckt - AW: InlineShape Picture wird nicht gedruckt

Nach oben
       Version: Office XP (2002)

Also, auch das vorherige Abspeichern des Dokuments hat keinen Effekt.

Ich poste mal den kompletten Code. In der Druckfunktion sieht man ja das ich zur Zeit probiert habe, von hinten durch die Brust ins Auge, aus dem Dokument vorher ein PDF zu erstellen, aber auch das hat nicht geholfen, im PDF fehlt das Bild ebenfalls wenn das Makro aus Excell gestartet wird.

Code:
Public Sub FuelleDokumentAus(ByVal PfadFormularEigenschaftsDatei As String, ByRef OptionsFelder() As String, Optional ByVal DruckAmEnde As Boolean = False)
    Dim Formularbild As String
    Dim Formulareinstellungen() As String
    Dim EinstellungsCounter As Integer
   
    EinstellungsCounter = -1
       
    'Leere das Dokument
    Selection.WholeStory
    Selection.Delete Unit:=wdCharacter, Count:=1
   
   
    Dim ZeilenBuffer As String
   
    'Öffne Definitionsdatei für das Formular
    Open PfadFormularEigenschaftsDatei For Input As #1
    Do While Not EOF(1)
        Line Input #1, ZeilenBuffer
        EinstellungsCounter = EinstellungsCounter + 1
        If EinstellungsCounter = 0 Then
            'Erste Zeile enthält den Pfad zum Formularbild
            Formularbild = ZeilenBuffer
        Else
            'Alle nachfolgenden Zeilen enthalten Formularfelddefinitionen (Position, Breite, Standardwert)
            ReDim Preserve Formulareinstellungen(EinstellungsCounter - 1)
            Formulareinstellungen(EinstellungsCounter - 1) = ZeilenBuffer
        End If
    Loop
    Close #1

    If EinstellungsCounter < 0 Then
        MsgBox ("Keine verwertbaren Daten gefunden!")
    ElseIf EinstellungsCounter < 1 Then
        MsgBox ("Keine Formularfelder gefunden!")
    Else
        'Falls irgendjemand was am Dokument verstellt hat, stelle die grundlegenden Seiteneinstellungen wieder her
        GrundEinstellungenDokument
        'Binde das Formularbild ein
        FormularbildEinbinden Formularbild
        'Gehe jede übergebenen Formularwert durch
        For Each Feld In OptionsFelder
            'Teile die die übergebene Option Formularfeldname:=Beispielwert -> Array("Formularfeldname","Beispielwert")
            Dim SplitFeld() As String
            SplitFeld = Split(Feld, ":=")
           
            Dim EigenschaftsZeile As String
            'Gehe die gefundenen Formulareigenschaften durch bis eine mit dem momentanen Formularfeldnamen gefunden wurde
            For Each FormularEinstellung In Formulareinstellungen
                If Left(Trim(FormularEinstellung), Len(SplitFeld(0))) = Trim(SplitFeld(0)) Then
                    EigenschaftsZeile = FormularEinstellung
                    Exit For
                End If
            Next
           
            'Wenn Formularfelddefinition gefunden wurde
            If EigenschaftsZeile <> "" Then
                'Teile die Eigenschaftszeile in ein Array
                Dim EigenschaftsFeld() As String
                EigenschaftsFeld = Split(EigenschaftsZeile, " ")
               
                Dim FuellWert As String
                If UBound(SplitFeld) > 0 Then
                    'Wenn Wert an Funktion übergeben wurde, nimm den Übergabewert
                    FuellWert = SplitFeld(1)
                ElseIf UBound(EigenschaftsFeld) > 3 Then
                    'Wenn kein Wert an die Funktion übergeben wurde, aber Standardwert vorhanden, nimm den Standardwert
                    FuellWert = EigenschaftsFeld(4)
                Else
                    'Wenn kein Standardwert angegeben ist und kein Wert an die Funktion übergeben wurde, ist der Standardwert "X"
                    FuellWert = "X"
                End If
               
                'Füge Formulartext ein
                FormularFeldAusfuellen MillimetersToPoints(CSng(EigenschaftsFeld(1))), MillimetersToPoints(CSng(EigenschaftsFeld(2))), MillimetersToPoints(CSng(EigenschaftsFeld(3))), FuellWert
            End If
        Next
       
        'Wenn gedruckt werden soll
        If DruckAmEnde = True Then
            'Testspeichern
            ThisDocument.Save
            'Druckfunktion
            PrintItOut
        End If
    End If
   
End Sub

Public Sub PrintItOut()
            'Unterdrücke Abfragen wegen Seitenrand
            Application.DisplayAlerts = wdAlertsNone
           
            'Erstelle PDF
            PDF_Erstellen ThisDocument.Path, "Test.pdf"
           
            'Wähle Drucker, der eigentlich sowieso ausgewählt sein sollte, für den Fall der Fälle
            Set wn = CreateObject("WScript.Network")
            drucker = "145-F2 HP Color LaserJet 4650 PS - Normal A4"
            wn.SetDefaultPrinter (drucker)
           
            'Drucke das Dokument
            Set oShellApp = CreateObject("Shell.Application")
            oShellApp.ShellExecute ThisDocument.Path & "\Test.pdf", "", "", "print", 0
           
            'waittime = 2 'sekunden
            't1 = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + waittime)
            'While (TimeSerial(Hour(Now()), Minute(Now()), Second(Now())) < t1)
            'Wend
            'ActivePrinter = "145-F2 HP Color LaserJet 4650 PS - Normal A4"
            'ThisDocument.PrintOut Background:=False, Range:=wdPrintAllDocument, Item:= _
                wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
                ManualDuplexPrint:=False, Collate:=True, PrintToFile:= _
                False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
                PrintZoomPaperHeight:=0
           
            'Lasse Abfragen wieder zu
            Application.DisplayAlerts = wdAlertsAll
End Sub

Private Sub GrundEinstellungenDokument()
    With ThisDocument.PageSetup
        .Orientation = wdOrientPortrait
        .TopMargin = CentimetersToPoints(0)
        .BottomMargin = CentimetersToPoints(0)
        .LeftMargin = CentimetersToPoints(0)
        .RightMargin = CentimetersToPoints(0)
        .Gutter = CentimetersToPoints(0)
        .PageWidth = CentimetersToPoints(21)
        .PageHeight = CentimetersToPoints(29.7)
    End With
End Sub

Private Sub FormularbildEinbinden(ByVal FormBildPfad As String)
    Dim FormBild As InlineShape
    Set FormBild = ThisDocument.InlineShapes.AddPicture(FormBildPfad, False, True)
    FormBild.PictureFormat.Brightness = 0.5
    FormBild.PictureFormat.Contrast = 0.5
    FormBild.PictureFormat.ColorType = msoPictureAutomatic
    FormBild.PictureFormat.CropLeft = 0#
    FormBild.PictureFormat.CropRight = 0#
    FormBild.PictureFormat.CropTop = 0#
    FormBild.PictureFormat.CropBottom = 0#
    'FormBild.Left = 0#
    'FormBild.Top = 0#
    FormBild.Height = CentimetersToPoints(29.7)
    FormBild.Width = CentimetersToPoints(21)
End Sub

Private Sub FormularFeldAusfuellen(ByVal Links As Single, ByVal Oben As Single, ByVal Breite As Single, ByVal Wert As String)
    Dim FormText As Shape
    Set FormText = ThisDocument.Shapes.AddTextbox(msoTextOrientationHorizontal, Links, Oben, Breite, MillimetersToPoints(3.75))
   
    FormText.TextFrame.TextRange.Text = Wert
    FormText.TextFrame.TextRange.Font.Size = 10
    FormText.TextFrame.TextRange.Font.Name = "Arial"
   
    FormText.Fill.Visible = msoFalse
    FormText.Fill.Solid
    FormText.Fill.Transparency = 1
    FormText.Line.Weight = 0.75
    FormText.Line.DashStyle = msoLineSolid
    FormText.Line.Style = msoLineSingle
    FormText.Line.Transparency = 1
    FormText.Line.Visible = msoFalse
    FormText.LockAspectRatio = msoFalse
   
   
    FormText.TextFrame.MarginLeft = 0#
    FormText.TextFrame.MarginRight = 0#
    FormText.TextFrame.MarginTop = 0#
    FormText.TextFrame.MarginBottom = 0#
   
    FormText.WrapFormat.AllowOverlap = True
    FormText.WrapFormat.Side = wdWrapBoth
   
    FormText.WrapFormat.DistanceTop = CentimetersToPoints(0)
    FormText.WrapFormat.DistanceBottom = CentimetersToPoints(0)
    FormText.WrapFormat.DistanceLeft = CentimetersToPoints(0.32)
    FormText.WrapFormat.DistanceRight = CentimetersToPoints(0.32)
    FormText.WrapFormat.Type = 3
   
    FormText.TextFrame.AutoSize = False
    FormText.TextFrame.WordWrap = False

End Sub


Hier das Testmakro aus Excel:
Code:
Public Sub TestStart()
    Dim OptionFelder() As String
    For i = 2 To 3
        ReDim Preserve OptionFelder(i - 2)
        OptionFelder(i - 2) = ThisWorkbook.Worksheets(1).Range("A" & i).Value & ":=" & ThisWorkbook.Worksheets(1).Range("B" & i).Value
    Next
   
    Dim WordApp As Object
    Dim WordDoc As Object
   
    Set WordApp = CreateObject("Word.Application")
    WordApp.Visible = True
    Set WordDoc = WordApp.documents.Open("C:\Pfad\Grunddokument_mit_Marko.doc")
    'WordApp.WindowState = 1
   
    WordApp.Run "m_Erzeugung.FuelleDokumentAus", ThisWorkbook.Worksheets(1).Range("A1").Value, OptionFelder, True
    'WordApp.Quit False
    MsgBox ("Done.")
End Sub
Silberbaum
Im Profil kannst Du frei den Rang ändern


Verfasst am:
23. Apr 2010, 10:19
Rufname:


AW: InlineShape Picture wird nicht gedruckt - AW: InlineShape Picture wird nicht gedruckt

Nach oben
       Version: Office XP (2002)

Also nach etwas weiterem rumprobieren. habe ich nun die Lösung gefunden und sie ist ziemlich banal.

Das Bild selbst das wird jetzt als Shape eingebunden (so hatte ich es am anfang, da hat mir der drucker aber nur nen schickes rotes kreuz gegeben) und das Bild ist jetzt nur noch 1/3 so groß in der Datei größe und hat nur noch die Hälfte der DPI Anzahl. Lag wohl daran das Word nicht so schnell arbeiten konnte.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Word Formate: erstelltes Inhaltsverzeichnis wird nicht richtig gedruckt 0 matze63 94 09. Nov 2013, 14:02
matze63 erstelltes Inhaltsverzeichnis wird nicht richtig gedruckt
Keine neuen Beiträge Word VBA Programmierung (Makros): InlineShape ansprechen 4 Achiim 289 29. Mai 2013, 16:21
Achiim InlineShape ansprechen
Keine neuen Beiträge Word VBA Programmierung (Makros): Löschen eines Bildes ohne Angabe von "Picture XYZ" 3 Immi1988 202 10. Sep 2012, 06:36
Immi1988 Löschen eines Bildes ohne Angabe von "Picture XYZ"
Keine neuen Beiträge Word VBA Programmierung (Makros): Picture "in front of text" funktioniert nicht 2 Lealo 199 06. Jun 2012, 08:05
Lealo Picture "in front of text" funktioniert nicht
Keine neuen Beiträge Word VBA Programmierung (Makros): Seriendruck - Datensatz als "gedruckt" vermerken? 0 mcbo 291 03. März 2011, 15:28
mcbo Seriendruck - Datensatz als "gedruckt" vermerken?
Keine neuen Beiträge Word Gestaltungselemente: Vom Internet Bild einfügen in Microsoft Office Picture Manag 1 marcelsamira 1407 13. Jan 2011, 13:00
Bengy Vom Internet Bild einfügen in Microsoft Office Picture Manag
Keine neuen Beiträge Word VBA Programmierung (Makros): Problem mit InlineShape in Office 2007/2010 2 Thomas12345678901 1199 10. Dez 2010, 10:44
Gast Problem mit InlineShape in Office 2007/2010
Keine neuen Beiträge Word Gestaltungselemente: Briefkopf in Word 2003, ohne daß er mit gedruckt wird? 2 dumdidum 1306 05. Nov 2010, 13:13
dumdidum Briefkopf in Word 2003, ohne daß er mit gedruckt wird?
Keine neuen Beiträge Word Gestaltungselemente: hilfslinien sollen nicht gedruckt werden 0 bierbauch 705 05. Apr 2010, 13:16
bierbauch hilfslinien sollen nicht gedruckt werden
Keine neuen Beiträge Word Gestaltungselemente: Wie mache ich ein Feld das nicht gedruckt wird? 3 thocmaar 389 07. März 2010, 11:40
thocmaar Wie mache ich ein Feld das nicht gedruckt wird?
Keine neuen Beiträge Word VBA Programmierung (Makros): Makro Insert Picture Problem 0 dax_fritz 599 02. Dez 2008, 09:45
dax_fritz Makro Insert Picture Problem
Keine neuen Beiträge Word VBA Programmierung (Makros): "Zuletzt gedruckt"-Eigenschaft auf 0 setzen 0 *Knut* 1406 04. Sep 2008, 08:44
*Knut* "Zuletzt gedruckt"-Eigenschaft auf 0 setzen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML Forum