Ajouter des métadonnées XMP à l'aide de Python
Pour ajouter des métadonnées XMP à un fichier EPS à l’aide de Python, vous devez suivre ces étapes :
- Initialisez un flux d’entrée pour le fichier EPS d’entrée.
- Créez une instance de PsDocument à partir du flux d’entrée précédemment créé.
- Obtenez une instance de XmpMetadata à partir du PsDocument. Si le fichier EPS ne contient pas de métadonnées XMP, un nouveau sera créé et rempli avec les valeurs des commentaires de métadonnées PS, puis vous sera renvoyé.
- Vous pouvez maintenant afficher les valeurs des champs de métadonnées.
- Initialisez un flux de sortie pour le fichier EPS de sortie.
- Enregistrez le fichier EPS avec les nouvelles métadonnées XMP.
L’extrait de code suivant montre comment ajouter des métadonnées XMP au fichier EPS en Python :
1# The path to the documents directory.
2data_dir = Util.get_data_dir_working_with_xmp_metadata_in_eps()
3# Initialize EPS file input stream
4ps_stream = open(data_dir + "add_input.eps", "rb",)
5# Create PsDocument instance from stream
6document = PsDocument(ps_stream)
7
8try:
9 # Get XMP metadata. If EPS file doesn't contain XMP metadata we get new one filled with values from PS metadata comments (%%Creator, %%CreateDate, %%Title etc)
10 xmp = document.get_xmp_metadata()
11
12 # Check metadata values extracted from PS metadata comments and set up in new XMP metadata
13
14 # Get "CreatorTool" value
15 if xmp.contains("xmp:CreatorTool"):
16 print("CreatorTool: " + xmp.get_value("xmp:CreatorTool").to_string_value())
17
18 # Get "CreateDate" value
19 if xmp.contains("xmp:CreateDate"):
20 print("CreateDate: " + xmp.get_value("xmp:CreateDate").to_string_value())
21
22 # Get "format" value
23 if xmp.contains("dc:format"):
24 print("Format: " + xmp.get_value("dc:format").to_string_value())
25
26 # Get "title" value
27 if xmp.contains("dc:title"):
28 print("Title: " + xmp.get_value("dc:title").to_array()[0].to_string_value())
29
30 # Get "creator" value
31 if xmp.contains("dc:creator"):
32 print("Creator: " + xmp.get_value("dc:creator").to_array()[0].to_string_value())
33
34 # Get "MetadataDate" value
35 if xmp.contains("xmp:MetadataDate"):
36 print("MetadataDate: " + xmp.get_value("xmp:MetadataDate").to_string_value())
37
38 # Save EPS file with new XMP metadata
39
40 # Create ouput stream
41 with open(data_dir + "add_output.eps", "wb") as out_ps_stream:
42 # Save EPS file
43 document.save(out_ps_stream)
44
45finally:
46 ps_stream.close()
Vous pouvez télécharger des exemples et des fichiers de données à partir de GitHub.