Cambiar el valor con nombre en los metadatos XMP|Python
Para cambiar el valor con nombre en los metadatos XMP del archivo EPS, deberá seguir varios pasos:
- Inicialice un flujo de entrada para el archivo EPS de entrada.
- Cree una instancia de PsDocument a partir del flujo de entrada creado anteriormente.
- Obtenga una instancia de XmpMetadata del PsDocument. Si el archivo EPS no contiene metadatos XMP, se creará uno nuevo, se completará con valores de los comentarios de metadatos PS y luego se lo devolverá.
- Ahora puede cambiar el valor con nombre de los archivos de metadatos de estructura.
- Inicialice un flujo de salida para el archivo EPS de salida.
- Guarde el archivo EPS con nuevos metadatos XMP.
Aquí hay un fragmento de código que muestra cómo cambiar el valor con nombre en metadatos XMP en un archivo EPS en Python:
1# The path to the documents directory.
2data_dir = Util.get_data_dir_working_with_xmp_metadata_in_eps()
3# Initialize a EPS file input stream
4ps_stream = open(data_dir + "add_named_value_input.eps", "rb",)
5# Create a PsDocument instance from the stream
6document = PsDocument(ps_stream)
7
8try:
9 # Get XMP metadata. If the EPS file doesn't contain XMP metadata we get a new one filled with values from PS metadata comments (%%Creator, %%CreateDate, %%Title etc)
10 xmp = document.get_xmp_metadata()
11
12 #Change the XMP metadata values
13
14 # Change the named value "stDim:unit" in "xmpTPg:MaxPageSize" structure.
15 xmp.set_named_value("xmpTPg:MaxPageSize", "stDim:unit", XmpValue("Inches"))
16
17 # Add the named value "stDim:newKey" in "xmpTPg:MaxPageSize" structure.
18 xmp.set_named_value("xmpTPg:MaxPageSize", "stDim:newKey", XmpValue("NewValue"))
19
20 # Save the EPS file with changed XMP metadata
21
22 # Create an ouput stream
23 with open(data_dir + "change_named_value_output.eps", "wb") as out_ps_stream:
24 # Save EPS file
25 document.save(out_ps_stream)
26
27finally:
28 ps_stream.close()
Puede descargar ejemplos y archivos de datos desde GitHub.