Получить метаданные XMP из файла EPS с помощью Java
Чтобы извлечь метаданные XMP из файла EPS, необходимо выполнить несколько шагов:
- Инициализируйте входной поток для входного файла EPS.
- Создайте экземпляр PsDocument из созданного ранее входного потока.
- Получите экземпляр XmpMetadata из PsDocument. Если данный файл EPS не содержит метаданных XMP, используется новый. будет создан, заполнен значениями из комментариев метаданных PS и возвращен вам.
- Теперь вы можете просматривать значения полей метаданных.
В следующем фрагменте кода показано, как извлечь метаданные XMP из файла EPS на Java:
1// Get XMP metadata from EPS document.
2
3// Create PsDocument instance from file
4PsDocument document = new PsDocument(getDataDir() + "get_input.eps");
5
6// 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)
7XmpMetadata xmp = document.getXmpMetadata();
8
9// Get "CreatorTool" value
10if (xmp.containsKey("xmp:CreatorTool"))
11 System.out.println("CreatorTool: " + xmp.get("xmp:CreatorTool").toStringValue());
12
13// Get "CreateDate" value
14if (xmp.containsKey("xmp:CreateDate"))
15 System.out.println("CreateDate: " + xmp.get("xmp:CreateDate").toStringValue());
16
17// Get a width of a thumbnail image if exists
18if (xmp.containsKey("xmp:Thumbnails") && xmp.get("xmp:Thumbnails").isArray()) {
19 XmpValue val = xmp.get("xmp:Thumbnails").toArray()[0];
20 if (val.isNamedValues() && val.toDictionary().containsKey("xmpGImg:width"))
21 System.out.println("Thumbnail Width: " + val.toDictionary().get("xmpGImg:width").toInteger());
22}
23
24// Get "format" value
25if (xmp.containsKey("dc:format"))
26 System.out.println("Format: " + xmp.get("dc:format").toStringValue());
27
28// Get "DocumentID" value
29if (xmp.containsKey("xmpMM:DocumentID"))
30 System.out.println("DocumentID: " + xmp.get("xmpMM:DocumentID").toStringValue());Вы можете загрузить примеры и файлы данных с сайта GitHub.