Как я могу изменить файлы.xfdl? (Обновление № 1)

.XFDL расширение файла идентифицирует XFDL Отформатированные файлы документов. Они относятся к документу на основе XML и стандартному форматированию шаблонов. Этот формат точно такой же, как формат файла XML, однако, содержит уровень шифрования для использования в защищенной связи.

Я знаю, как просматривать файлы XFDL, используя средство просмотра файлов, которое я нашел здесь. Я также могу изменить и сохранить эти файлы, выполнив Файл: Сохранить / Сохранить как. Я хотел бы, однако, изменить эти файлы на лету. Какие-либо предложения? Это вообще возможно?

Обновление № 1: теперь я успешно расшифровал и разархивировал .xfdl в файл XML, который я затем могу редактировать. Теперь я ищу способ перекодировать измененный XML-файл обратно в base64-gzip (используя Ruby или командную строку).

3 ответа

Решение

Если кодировка base64, то это решение, на которое я наткнулся в веб- ссылке:

"Декодирование файлов XDFL, сохраненных с 'encoding=base64'. Файлы, сохраненные с:

application/vnd.xfdl;content-encoding="base64-gzip"

простые gzip-файлы в кодировке base64 Их можно легко восстановить в XML, сначала расшифровав, а затем распаковав. Это можно сделать следующим образом в Ubuntu:

sudo apt-get install uudeview uudeview -i yourform.xfdl gunzip -S "" < UNKNOWN.001 > yourform-unpacked.xfdl 

Первая команда установит uudeview, пакет, который может декодировать base64, среди других. Вы можете пропустить этот шаг после его установки.

Предполагая, что ваша форма сохранена как "yourform.xfdl", команда uudeview будет декодировать содержимое как "UNKNOWN.001", так как файл xfdl не содержит имени файла. Параметр '-i' делает uudeview неинтерактивным, удалите этот параметр для большего контроля.

Последняя команда заархивирует декодированный файл в файл с именем 'yourform-unpacked.xfdl'. "

Другое возможное решение - здесь

Примечание: блок в кавычках не работает для длинных строк кода

Единственный ответ, который я могу придумать прямо сейчас, - прочитать руководство для uudeview.

Как бы я ни хотел вам помочь, я не эксперт в этой области, поэтому вам придется подождать, пока кто-нибудь более знающий придет сюда и поможет вам.

Тем временем я могу дать вам ссылки на некоторые документы, которые могут вам помочь:

Извините, если это вам не поможет.

Вам не нужно выходить из Ruby, чтобы сделать это, вы можете использовать модуль Base64 в Ruby для кодирования документа следующим образом:

irb(main):005:0> require 'base64'
=> true

irb(main):007:0> Base64.encode64("Hello World")
=> "SGVsbG8gV29ybGQ=\n"

irb(main):008:0> Base64.decode64("SGVsbG8gV29ybGQ=\n")
=> "Hello World"

И вы можете вызвать gzip/gunzip, используя систему Kernel#:

system("gzip foo.something")
system("gunzip foo.something.gz")
Другие вопросы по тегам