Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Kopfzeilen in Word-XML Dateien bearbeiten... (https://www.delphipraxis.net/129017-kopfzeilen-word-xml-dateien-bearbeiten.html)

derdaniel 11. Feb 2009 06:17


Kopfzeilen in Word-XML Dateien bearbeiten...
 
Guten morgen liebe DP,

Der Titel sagts schon, ich möchte gern die Kopfzeilen von Word-Dokumenten bearbeiten.
Genauergesagt, ein Bild und etwas Text (Anschrift) in der Kopfzeile austauschen.

Hab mich durch einige tut's gelesen und mir die Beispiele hier aus der dp angesehen,
aber ich komme einfach nicht mit dem "Format" (hat Word überhaupt eins?) klar...

Ich hab einfach keine Idee wie ich überhaupt an das entsprechende "Node?" herankomme.
Hab's mit TXMLDocument versucht, öffnen, und dann durchhangeln aber wie überhaupt?
Weiß net mal den Namen von dem Ding, "Kopfzeile" evtl.???

Hab "nur" ne TurboDelphi-Explorer, Komponenten fallen also ziemlich flach.

Danke schonmal für eure Antworten, Zurechtweisungen, Auslachen oder was auch immer..




-derDaniel

Grolle 11. Feb 2009 07:24

Re: Kopfzeilen in Word-XML Dateien bearbeiten...
 
Hallo,

die Anschrift könntest du einfach mit Platzhaltern suche und ersetzen (StringReplace). Allerdings kann ich dir nicht sagen, wie Word die Images in die Datei streamt. Wenn du es mit TXMLDocument probieren willst, schau dir die Datei mal vorher im Firefox an. Der stellt sowas ganz gut dar. Da findest du dann die Namen der Tags, die du willst.

Viele Grüße ....

derdaniel 11. Feb 2009 08:01

Re: Kopfzeilen in Word-XML Dateien bearbeiten...
 
Erstmal danke @Grolle
Nach zwei Anläufen hats Firefox tatsächlich gepackt die Datei so
anzuzeigen das man ne Struktur erahnen kann, poste mal den Teil
um den es demnach geht, bin allerdings hoffnungslos überfordert,
in dem chaos was neues einzusetzen, geschweige denn das Bild zu finden
(hängt weiter hinten in der Datei, aber wo ist der Verweis, wie tauscht man es aus...?)

Sollte ich nich doch besser Word per OLE direkt ansteuern !?
Hat jemand Erfahrung damit (Manipulation Kopf/Fußzeile, Bilder einsetzen) ?

XML-Code:
<pkg:part pkg:name="/word/header1.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml">
<pkg:xmlData>
<w:hdr>
<w:tbl>
<w:tblPr>
<w:tblW w:w="9211" w:type="dxa"/>
<w:tblInd w:w="-42" w:type="dxa"/>
<w:tblCellMar>
<w:left w:w="70" w:type="dxa"/>
<w:right w:w="70" w:type="dxa"/>
</w:tblCellMar>
<w:tblLook w:val="0000"/>
</w:tblPr>
<w:tblGrid>
<w:gridCol w:w="2992"/>
<w:gridCol w:w="6219"/>
</w:tblGrid>
<w:tr w:rsidR="0001067C" w:rsidTr="00354F38">
<w:trPr>
<w:cantSplit/>
<w:trHeight w:val="1248"/>
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="2992" w:type="dxa"/>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p w:rsidR="0001067C" w:rsidRDefault="00A76DE6" w:rsidP="00354F38">
<w:pPr>
<w:pStyle w:val="Kopfzeile"/>
<w:rPr>
<w:rFonts w:cs="Tahoma"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:cs="Tahoma"/>
<w:noProof/>
</w:rPr>
<w:pict>
<v:rect id="_x0000_s2074" style="position:absolute;margin-left:-68.65pt;margin-top:53.05pt;width:70.3pt;height:9pt;z-index:1" fillcolor="#c9d32e" stroked="f"/>
</w:pict>
</w:r>
<w:r w:rsidR="00BB79C9">
<w:rPr>
<w:rFonts w:cs="Tahoma"/>
</w:rPr>
<w:t>findmich</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="6219" w:type="dxa"/>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p w:rsidR="0001067C" w:rsidRPr="00420566" w:rsidRDefault="00A76DE6" w:rsidP="00354F38">
<w:pPr>
<w:pStyle w:val="Kopfzeile"/>
<w:jc w:val="right"/>
<w:rPr>
<w:rFonts w:cs="Tahoma"/>
<w:b/>
<w:sz w:val="20"/>
</w:rPr>
</w:pPr>
<w:r w:rsidRPr="00A76DE6">
<w:rPr>
<w:szCs w:val="22"/>
</w:rPr>
<w:pict>
<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype>
<v:shape id="_x0000_i1025" type="#_x0000_t75" style="width:2in;height:61.5pt">
<v:imagedata r:id="rId1" o:title="Logo ohne Schriftzug" croptop="-1732f" cropbottom="11102f"/>
</v:shape>
</w:pict>
</w:r>
</w:p>
</w:tc>
</w:tr>
</w:tbl>
<w:p w:rsidR="0001067C" w:rsidRPr="0052380B" w:rsidRDefault="0001067C" w:rsidP="005E1663">
<w:pPr>
<w:pStyle w:val="Kopfzeile"/>
</w:pPr>
</w:p>
</w:hdr>
</pkg:xmlData>
</pkg:part>

Grolle 11. Feb 2009 08:12

Re: Kopfzeilen in Word-XML Dateien bearbeiten...
 
Hallo,

der Tag für ein Image sollte z. B. so aussehen: <w:binData w:name="wordml://02000001.jpg"> (Word 2003). Danach kommt dann ein ganzer Haufen Zeichen (Binärdata). Du kannst das ganze natürlich auch per OLE machen. Da kannst du dann mit Textmarken arbeiten und für Images die Zwischenablage nutzen.

Viele Grüße ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz