PDF Dateien umbennen mit Infos aus einer XML Datei
Hallo,
ich würde gerne PDF Dateien umbennen mit Infos, die ein Script (vorzugsweise VB, weil einfach auf Windows) aus einer XML ausliesst.
Das Script verarbeitet nur Einträge der Publisher ID 5
Liesst dann TAG Airfield aus und benennt aus der Plate ID zB 267575
dann
267575.pdf in AD_2_EDXU_Huettenbusch_1_05JUL18.pdf
um
Also aus Plate ID Wert wird stattdessen der OriginalFilename für die PDF verwendet.
und das in einem vorgegebenen Verzeichnis .
XML und PDFs liegen im gleichen Subdir.
Geht so etwas?
Liebe Grüsse
Stefan
<?xml version="1.0" encoding="utf-8"?>
<AirfieldPlateIndex Produced="20180719110240">
<Publishers>
<Publisher ID="5" Name="DFS" />
<Publisher ID="1" Name="Civil AIP" />
<Publisher ID="3" Name="UK VFR Flight Guide" />
<Publisher ID="6" Name="Pooley's" />
<Publisher ID="12" Name="Military AIP" />
<Publisher ID="7" Name="Skyguide" />
<Publisher ID="4" Name="AvioPortolano" />
<Publisher ID="15" Name="KSAB" />
</Publishers>
<Airfield ICAO="EDXU" ValidityTime="20180719110234">
<Plate ID="267575" Publisher="5" Name="Approach Chart" OriginalFilename="AD_2_EDXU_Huettenbusch_1_05JUL18.pdf" Category="" Size="87308" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20180705000000" Type="4" Withdrawn="False">
<GeoReferencing>
</GeoReferencing>
</Plate>
<Plate ID="267576" Publisher="5" Name="Aerodrome Chart" OriginalFilename="AD_2_EDXU_Huettenbusch_2_05JUL18.pdf" Category="" Size="435432" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20180705000000" Type="1" Withdrawn="False" />
</Airfield>
<Airfield ICAO="EDXE" ValidityTime="20180719110234">
<Plate ID="267573" Publisher="5" Name="Approach Chart" OriginalFilename="AD_2_EDXE_Rheine-Eschendorf_1_05JUL18.pdf" Category="" Size="200936" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20180705000000" Type="4" Withdrawn="False">
<GeoReferencing>
</GeoReferencing>
</Plate>
<Plate ID="267574" Publisher="5" Name="Aerodrome Chart" OriginalFilename="AD_2_EDXE_Rheine-Eschendorf_2_05JUL18.pdf" Category="" Size="89815" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20180705000000" Type="1" Withdrawn="False" />
</Airfield>
<Airfield ICAO="EDUF" ValidityTime="20180719110234">
<Plate ID="267568" Publisher="5" Name="Approach Chart" OriginalFilename="AD_2_EDUF_Falkenberg-Loennewitz_1_05JUL18.pdf" Category="" Size="141188" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20180705000000" Type="4" Withdrawn="False">
<GeoReferencing>
</GeoReferencing>
</Plate>
<Plate ID="267569" Publisher="5" Name="Aerodrome Chart" OriginalFilename="AD_2_EDUF_Falkenberg-Loennewitz_2_05JUL18.pdf" Category="" Size="467408" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20180705000000" Type="1" Withdrawn="False">
<GeoReferencing>
</GeoReferencing>
</Plate>
</Airfield>
<Airfield ICAO="EDTZ" ValidityTime="20180719110234">
<Plate ID="267566" Publisher="5" Name="Approach Chart" OriginalFilename="AD_2_EDTZ_Konstanz_1_05JUL18.pdf" Category="" Size="324509" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20180705000000" Type="4" Withdrawn="False">
<GeoReferencing>
</GeoReferencing>
</Plate>
<Plate ID="267567" Publisher="5" Name="Aerodrome Chart" OriginalFilename="AD_2_EDTZ_Konstanz_2_08AUG13.pdf" Category="" Size="90309" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20130808000000" Type="1" Withdrawn="False">
<GeoReferencing>
</GeoReferencing>
</Plate>
</Airfield>
</AirfieldPlateIndex>
ich würde gerne PDF Dateien umbennen mit Infos, die ein Script (vorzugsweise VB, weil einfach auf Windows) aus einer XML ausliesst.
Das Script verarbeitet nur Einträge der Publisher ID 5
Liesst dann TAG Airfield aus und benennt aus der Plate ID zB 267575
dann
267575.pdf in AD_2_EDXU_Huettenbusch_1_05JUL18.pdf
um
Also aus Plate ID Wert wird stattdessen der OriginalFilename für die PDF verwendet.
und das in einem vorgegebenen Verzeichnis .
XML und PDFs liegen im gleichen Subdir.
Geht so etwas?
Liebe Grüsse
Stefan
<?xml version="1.0" encoding="utf-8"?>
<AirfieldPlateIndex Produced="20180719110240">
<Publishers>
<Publisher ID="5" Name="DFS" />
<Publisher ID="1" Name="Civil AIP" />
<Publisher ID="3" Name="UK VFR Flight Guide" />
<Publisher ID="6" Name="Pooley's" />
<Publisher ID="12" Name="Military AIP" />
<Publisher ID="7" Name="Skyguide" />
<Publisher ID="4" Name="AvioPortolano" />
<Publisher ID="15" Name="KSAB" />
</Publishers>
<Airfield ICAO="EDXU" ValidityTime="20180719110234">
<Plate ID="267575" Publisher="5" Name="Approach Chart" OriginalFilename="AD_2_EDXU_Huettenbusch_1_05JUL18.pdf" Category="" Size="87308" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20180705000000" Type="4" Withdrawn="False">
<GeoReferencing>
</GeoReferencing>
</Plate>
<Plate ID="267576" Publisher="5" Name="Aerodrome Chart" OriginalFilename="AD_2_EDXU_Huettenbusch_2_05JUL18.pdf" Category="" Size="435432" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20180705000000" Type="1" Withdrawn="False" />
</Airfield>
<Airfield ICAO="EDXE" ValidityTime="20180719110234">
<Plate ID="267573" Publisher="5" Name="Approach Chart" OriginalFilename="AD_2_EDXE_Rheine-Eschendorf_1_05JUL18.pdf" Category="" Size="200936" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20180705000000" Type="4" Withdrawn="False">
<GeoReferencing>
</GeoReferencing>
</Plate>
<Plate ID="267574" Publisher="5" Name="Aerodrome Chart" OriginalFilename="AD_2_EDXE_Rheine-Eschendorf_2_05JUL18.pdf" Category="" Size="89815" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20180705000000" Type="1" Withdrawn="False" />
</Airfield>
<Airfield ICAO="EDUF" ValidityTime="20180719110234">
<Plate ID="267568" Publisher="5" Name="Approach Chart" OriginalFilename="AD_2_EDUF_Falkenberg-Loennewitz_1_05JUL18.pdf" Category="" Size="141188" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20180705000000" Type="4" Withdrawn="False">
<GeoReferencing>
</GeoReferencing>
</Plate>
<Plate ID="267569" Publisher="5" Name="Aerodrome Chart" OriginalFilename="AD_2_EDUF_Falkenberg-Loennewitz_2_05JUL18.pdf" Category="" Size="467408" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20180705000000" Type="1" Withdrawn="False">
<GeoReferencing>
</GeoReferencing>
</Plate>
</Airfield>
<Airfield ICAO="EDTZ" ValidityTime="20180719110234">
<Plate ID="267566" Publisher="5" Name="Approach Chart" OriginalFilename="AD_2_EDTZ_Konstanz_1_05JUL18.pdf" Category="" Size="324509" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20180705000000" Type="4" Withdrawn="False">
<GeoReferencing>
</GeoReferencing>
</Plate>
<Plate ID="267567" Publisher="5" Name="Aerodrome Chart" OriginalFilename="AD_2_EDTZ_Konstanz_2_08AUG13.pdf" Category="" Size="90309" ProductCode="ebe980f7-fac0-4ada-889b-4115ef2d4394" EffectiveDate="20130808000000" Type="1" Withdrawn="False">
<GeoReferencing>
</GeoReferencing>
</Plate>
</Airfield>
</AirfieldPlateIndex>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 380745
Url: https://administrator.de/forum/pdf-dateien-umbennen-mit-infos-aus-einer-xml-datei-380745.html
Ausgedruckt am: 21.04.2025 um 04:04 Uhr
5 Kommentare
Neuester Kommentar
Servus Stefan,
(Kommentare siehe Quellcode)
Grüße Uwe
p.s. fürs nächste mal => Bitte nutze Code-Tags für deinen Quellcode:
Geht so etwas?
klar, auch wenn ich das inzwischen mit einem PS-Einzeiler abfackeln würde ... aber auch mit dem althergebrachten VBS ist das kein Problem, wenn auch etwas mehr Tipparbeit, guckst du:(Kommentare siehe Quellcode)
'Variablen
Dim ORDNER, XMLPATH, fso, xmldoc, nodes, node, strID, strOrigName, strPDFPathOld, strPDFPathNew
' Ordner mit den Dateien
ORDNER = "D:\Platten"
' Pfad der XML Datei im Ordner
XMLPATH = ORDNER & "\daten.xml"
' Objekte erstellen
Set fso = CreateObject("Scripting.Filesystemobject")
Set xmldoc = CreateObject("msxml2.domdocument.6.0")
' XMLDoc Eigenschaften setzen und Dokument laden
xmlDoc.async = False
xmldoc.load XMLPATH
' Nodes selektieren
Set nodes = xmldoc.selectNodes("/AirfieldPlateIndex/Airfield/Plate[@Publisher='5']")
' Wenn passende Nodes vorhanden ...
If Not nodes Is Nothing Then
' Für jeden Node ...
For Each node In nodes
' ID auslesen
strID = node.attributes.getNamedItem("ID").text
' OriginalPfad auslesen
strOrigName = node.attributes.getNamedItem("OriginalFilename").text
' Pfade zusammensetzen für aktuelles PDF und neuer Name
strPDFPathOld = ORDNER & "\" & strID & ".pdf"
strPDFPathNew = ORDNER & "\" & strOrigName
' Wenn PDF mit der ID existiert, benenne es um
If fso.FileExists(strPDFPathOld) Then fso.MoveFile strPDFPathOld,strPDFPathNew
Next
End If
' Ende
MsgBox "Fertig"
p.s. fürs nächste mal => Bitte nutze Code-Tags für deinen Quellcode:
<code> Quellcode </code>
. Merci.
Nöp.
Oder über die Kommandozeile dann ausführen mit
Also das ist jetzt doch schon etwas peinlich muss ich gestehen, hier mit VBS anzukommen und dann noch nicht mal diese Basics zu beherrschen.
Geht das auch für Script Kiddies wie mich?
Wie starte ich das?
Pfade anpassen, Text als *.vbs speichern, Doppelklick drauf, fertig.Wie starte ich das?
Oder über die Kommandozeile dann ausführen mit
cscript //Nologo "c:\script.vbs"
Also das ist jetzt doch schon etwas peinlich muss ich gestehen, hier mit VBS anzukommen und dann noch nicht mal diese Basics zu beherrschen.
Kein Problem. Zum Unterstützen sind wir da
.
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen, und Lösungen markieren. Merci.
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen, und Lösungen markieren. Merci.