Acrobat автоматическое добавление ссылок в *.pdf InvokeMember(addLink) по выбранным словам - C#

Узнай цену своей работы

Формулировка задачи:

Пытаюсь найти работу программистом C# ... и прочее рядом. Пока нет успеха. Решил сдать экзамен 70-483, чтобы вписать его номер в резюме(может поможет? ). Нашёл книгу в pdf формате. Она на английском. Читать могу, но всё же не всё схватываю точно. Приходится переводить некоторые слова. И они с первого раза не запоминаются. Встречаются в тексте дальше. И опять их искать. Для этого решил в этой книге отметить все слова что перевожу в Автоматическом режиме. Чтобы это слово по всей книге было отмечено ссылкой на внешний файл. Нажал на него и открываешь заготовленный перевод, или произношение его. Или ссылку в www. написал программку. Не совершенство. Но это единственное что есть. https://cloud.mail.ru/public/cb188862fcd4%2FHTML_DOC.rar https://cloud.mail.ru/public/cb188862fcd4%2FHTML_DOC.rar это ссылка на весь каталог. Как есть. объяснения как пользоваться: Это старт программы. Здесь вводятся ссылки на pdf файл и 2 ссылки на ЛОКАЛЬНЫЕ файлы компьютера. в моём примере это перевод слова "await" и ссылка для примера на mp3 файл, как будто это его произношение. После переходите на второй экран и там выбирается стартовая(24) страница и стоповая(26 в примере. 25 это уже после срабатывания). По умолчанию до конца файла. radioBatton по умолчанию стоит на "File". Жмёте кнопку "Find + Link". На этом этапе происходит поиск слова (в примере await) и вставка бланков памяти в файл, для дальнейшего редактирования. Можно увидеть после сохранения их в таком виде: Но они НЕ РАБОЧИЕ. Это просто резервирование пространства в файле для правильного БИНАРНОГО редактирования. Это так как выглядит файл после прохождения по нему и бронирования пространства для переделывания. Жмёте следующую кнопку "Underline". Она открывает тот самый НЕ рабочий файл и переделывает Внешний вид ссылок с "квадратных" в "подчёркнутый" вид. И так же заменяет болванки в файле <</JS(z1x2y3)/S/JavaScript>> <</JS(c3b2a1)/S/JavaScript>> <</Names(aaaaaaa .... <</JS(//// .... на правильную информацию: <</F 28742 0 R/S/Launch>> <</F 28741 0 R/S/Launch>> <</F(../../../English/dictionary/A/await/await.htm)/Type/Filespec/UF <</F(../../../English/words_voices/_K/Kalimba.mp3)/Type/File ... После этого происходит сохранение изменений в новый файл по правилу: "старое имя" + "_tmp_" + "искомое слово" его можно будет найти рядом В моём примере это выглядит так: Exam Ref 70-483.pdf пересохраняется в: Exam Ref 70-483.pdf_tmp_await.pdf Выглядит результат так: Как можете увидеть, ссылка стала выглядеть как и обычная HTML ссылка. Это всё про "File". Про radioButton "URI": Идея и действия все те же самые. Но внутри файл выглядит чуть по другому. У него там другие спецификации: <</S/URI/URI(../../../English/words_voices/_K/Kalimba.mp3)>> <</S/URI/URI(../../../English/dictionary/A/await/await.htm)>> То есть видно что спецификация PDF изменяется с: /Type/Filespec/UF на /S/URI/URI Так же можете в ЭТОМ случае давать ссылки на WWW. <</S/URI/URI(https://www.google.com/?gws_rd=ssl)>> <</S/URI/URI(http://ya.ru/)>> будут открываться эти ссылки. Это есть в примерах в архиве, в ссылке вверху. Там же лежит весь проект в исходном виде. Если разархивировать весь архив как есть. То можно сразу пойти в каталог: HTML_DOC\Program\CS\Exam70-483 и тут попробовать с примерами: File URI WWW там же и оригинал, без переделок. Программировал и пользовался такими функциями в C#: InvokeMember("getPageNumWords" для выборки всех слов на странице InvokeMember("getPageNthWord" охватывающий слово("await") прямоугольник InvokeMember("addLink" добавление Link используя движок Adobe InvokeMember("setAction" резервирование памяти в файле для переделывания. BinaryReader binaryReader + BinaryWriter bw для редактирования файла в БИНАРНОМ режиме. В текстовом НЕЛЬЗЯ этого делать. В Reference добавлял ссылку на Adobe Пробовал запускать на Android. С полным копированием путей. Но не удачно. Запускал под: Adobe Acrobat - работают только ссылки WWW EBookDroid - тоже работают ссылки на WWW. либо там не сходятся пути. Буду пробовать сделать их полностью Абсолютными. Но нет веры в успех. Почему WWW ссылки срабатывают, на локальную файловую систему нет? Всего хорошего. Кто будет пробовать? программный код не Совершенен. Я просто шёл к цели для получения результата в 2-ух видах File + URI. Работает. Можно и посовершенствовать. Хотелось чтобы работало под Android. Это так удобно всё иметь на нём. Со всеми ссылками и архивами. Вся библиотека в кармане. А дома на стационарном компьютере переделывать/готовить, потом перезаливать.

Решение задачи: «Acrobat автоматическое добавление ссылок в *.pdf InvokeMember(addLink) по выбранным словам»

textual
Листинг программы
private List<string> fontsExcuded;
//private SortedList<string, DocumentFont> ThisPdfDocFonts;
private List<pfdFonts> ThisPdfDocFonts;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5