Как пометить/пометить объект в файле Ai и сохранить его в формате pdf?

#pdf #tags #adobe-illustrator

Вопрос:

У меня есть файл AI, и я пометил некоторые произведения искусства с помощью AITagSuite

(Теги фактически хранятся в виде строковых записей в словаре объектов искусства)

Я хочу преобразовать файл ai в pdf без потери тегов. когда я преобразую файл ai в pdf, я не могу получить доступ к тегам.

Есть идеи, как пометить/пометить объект в файле Ai и сохранить его в формате pdf?

Я также подумал об использовании некоторых других библиотек, которые могут получить файл AI в качестве входных данных и преобразовать его в pdf с тегами, есть идеи?

Заранее благодарю вас

Комментарии:

1. Я не знаю о других библиотеках, но, насколько я могу судить, в Illustrator до сих пор нет такой функции. Надеюсь, когда-нибудь это будет добавлено. Возможно, существует двухэтапный обходной путь с помощью сценариев Acrobat. Вы можете создать txt-файл из Illustrator с описанием объектов (на основе цветов, размеров, например, и т. Д.), А затем передать txt-файл в скрипт Acrobat, который будет искать объекты в PDF-файле и добавлять теги.

2. Спасибо тебе, Юрий. Не могли бы вы, пожалуйста, рассказать мне, как создать txt-файл из AI и как подать скрипт Acrobat? где я могу прочитать об этом? еще раз спасибо

3. Под «txt-файлом» я подразумеваю некоторый список. Вы можете перебрать все объекты в файле AI, перебрать все теги каждого объекта и составить список объектов ([позиция, цвет, тег], [позиция, цвет, тег], [позиция, цвет, тег] — например) и сохранить список на диске в txt-файле (или JSON). Эта часть довольно проста. Я могу показать вам, как это можно сделать, если вы опубликуете образец своего файла искусственного интеллекта. Но следующая часть-чтение списка Acrobat и поиск объектов с заданными свойствами в файле PDF-выходит за рамки моих нынешних знаний. Я не могу помочь тебе в этом вопросе.

4. Спасибо тебе, Юрий. Что касается второго шага, как вы думаете, можно ли идентифицировать объект по [положению, цвету, тегу] ? что делать, если у меня есть несколько уровней в задании искусственного интеллекта?

5. Я думаю, это зависит от того, как выглядит ваш ИИ. Но в большинстве случаев четыре цифры массива geometricBounds() (координаты[y1, x1, y2, x2], я уверен, что у Acrobat есть что-то похожее) цвет (одна [серая], три [RGB] или четыре [CMYK] цифры) позволяют очень легко идентифицировать объект. Не имеет значения, к какому слою относится объект. Единственная возможная ошибка может возникнуть, если у вас есть несколько объектов одинакового размера и цвета в одном и том же положении. Я не готов сейчас погружаться в мрачные воды сценариев Акробатов. Я могу попробовать написать иллюстраторскую часть задания, если вы хотите.

Ответ №1:

Вот пример того, как вы можете сохранить в Illustrator свойства помеченных элементов пути в файле, похожем на JSON, и прочитать их обратно из этого файла:

 var items = app.activeDocument.pathItems;  // add tags to a couple of pathItems var tag = items[0].tags.add(); tag.name = 'tag1'; tag.value = '123';  var tag = items[1].tags.add(); tag.name = 'tag2'; tag.value = '456';  // put all tagged pathItems into the array 'tagged_items' // and add to each of the items its properties: // 'tags': Array of object: [{name:value},{name:value},...] // 'color': Array of Numbers and Sting, for example: [10,0,25,15,'CMYKColor'] or [56.9845,'GrayColor'] // 'geometricBounds': Array of Numbers: [y1,x1,y2,x2]  var tagged_items = [];  var i = items.length; while (i--) {  var item = items[i];  if (item.tags.length == 0) continue; // skip if the pathItem has no tags   var tags = []; // make an array of tags  for (var t=0; tlt;item.tags.length; t  ) {  var key = item.tags[t].name;  var value = item.tags[t].value;  var tag = {};  tag[key] = value;  tags.push(tag);  }   var fillColor = []; // make an array of fillColor properties  for (var c in item.fillColor) fillColor.push(item.fillColor[c]);   // put the item into the array of tagged items  tagged_items.push (  {  'tags': tags,  'fillColor': fillColor,  'geometricBounds': item.geometricBounds,  }  );  }  // save the array in JSON-like file var file = File('d:/tagged_items.json'); file.open('w'); file.write(tagged_items.toSource()); file.close();  // read the array from the file and show the properties var file = File('d:/tagged_items.json'); var tagged_items = $.evalFile(file); for (var i in tagged_items) alert('pahtItem '   i   ':n'   props(tagged_items[i]));   // ---------------------------------------------------------------------------- // returns a string with all properties of a given object function props(obj) {   msg = '';  for (var p in obj) msg  = p   ': '   obj[p].toSource()   'n';  return msg; }  

Если вам удастся прочитать файл, подобный JSON, с помощью Acrobat и сравнить его свойства со свойствами объектов в файле PDF, у вас есть шансы выполнить свою миссию.

Это всего лишь пример. Он плохо справляется с группами, точечными цветами и т. Д. И т. Д.