Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

27 Октябрь 2020, 01:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: « 1 2 3 4 5 6 »   Вниз
  Печать  
Автор Тема: Сохранение без форматирования  (Прочитано 5228 раз)
0 Пользователей и 1 Гость смотрят эту тему.
McAaron
Форумчанин
***
Offline Offline

Сообщений: 410


« Ответ #15: 31 Июль 2020, 02:34 »

Приветствую всех. Нужна помощь.
Дело в следующем.
Работаю инженером, пишу технические тексты (руководства, инструкции и т.п.). Пользуюсь Writer. Пересел с Word, так как функционал в Writer более подходящий для меня. Использую стили, содержания, списки (нумерацию многоуровневую), перекрестные ссылки, вставка рисунков и таблиц. Проблема в том, что никто не может редактировать мои документы, у них все разваливается. Даже порой заказчики ругаются (их PDF не устраивает). Сейчас предстоит писать большой документ (страниц 150-200), начальник говорит: "Давай без автоматизации". А я не готов ручками править нумерацию пунктов, рисунков и таблиц и т.п.

Вот мысль появилась. Может есть какая-нибудь возможность сохранять документ как бы без форматирования. Чтобы внешне был как оригинал, но вместо автоматической нумерации обычные цифры, которые можно по отдельности редактировать обычным способом, вместо ссылок – конечный текст?
Буду благодарен предложениям и идеям.
Я сам давно и много имею дело с пояснительными записками по гостам 2, 19, 32 и прочим, включая разные отчеты.
Выработал для себя следующие правила, которые зафиксировал в шаблонеах:
1) Не плодить стили в документе. Никаких -- все только в шаблонах. Почти все, что требуют госты в отношении оформления, реализуется штатным набором стилей, измененным под требования. Исключение составляют заголовки -- они бывют на одном уровне нумерованные и ненумерованные, а также должны/не должны собираться в оглавление. Здесь нужно стили создавать и вносить их в перечень сборки оглавления. Соответственно, это в шаблонах.
2) правлю стили перечней, как этого требуют госты, поскольку штатные никуда не годятся.
3) сохраняю документ в odt и в .doc и оба отправляю -- ворд оффтопика нормально работает и с .doc и с .odt, если нет "наворотов". А гост наворотов не требует.

Если уговорить зарегистрировать, или как это там в мсо называется, шаблоны .dot, соответсвующие моим .ott,  то можно в большинстве случаев избежать проблем при возврате правленого документа.
Можно также отправлять версию с включенным отслеживанием правок -- это позволяет потом быстро очистить документ от мусора, занесенного туда куриными лапами. В любом случае нужно возвращенный документ приводить к своим стандартам оформления и не лениться это делать, иначе через три-четыре цикла развалится вообще все.

Если интересно, раскажу, как бороться с формулами и рисунками.
Записан
economist
Форумчанин
***
Offline Offline

Сообщений: 1 292


« Ответ #16: 31 Июль 2020, 11:43 »

А с полями и ссылками что-нибудь аналогичное? Не встречали? Хотя бы слышали?

Если нужно "разавтоматизировать" форматирование стилями, то у Питоньяка где-то в его 2-х книжках есть примеры как считать имя текущего стиля, его параметры, сбросить его на Базовый/Основной и применить параметры, будет аналог ручного форматирования. Какой-то готовой кнопки/метода Basic для этого, думаю, нет.

Что касается Полей - некоторые Поля при копировании/вставке - становятся простым текстом с прежним форматированием (теряют связь с Полем). Написать макрос копирования/вставки (Ctrl+C Ctrl+V) несложно.

Вот пример таких полей:

Поле пользователя (Ctrl+F2 - Переменные - Поле пользователя), в API это TextFields.User - хорошо подходит для повторения в разных местах текста одного и того же, скажем, названия ГОСТа. Все его копии - связанные клоны.

У него, однако, есть минусы:
 - рвет неразрывный пробел (негодно для ФИО с инициалами, адресов с ул. итп)
 - не правится в защищенном Разделе
 - диалог с окошком для правки - коряв и узок

Поэтому  авторы OpenOffice|LibreOffice сделали второй вид полей для правки первого вида полей:
Поле ввода (Ctrl+F2 - Переменные - [выбрать Поле пользователя и ввести подсказку] - Поле ввода), в API это TextFields.InputUser.

Его плюсы:
 - не рвет неразрывный пробел/мягкий перенос
 - правится в защищенном Разделе
 - правится или в компактном (LO6+) диалоге с заголовком и большим полем для правки, или прямо в тексте при "втором медленном клике" (весьма неочевидном!)
 - при копировании/вставке - такое поле вставляется как текст с форматированием, т.е больше оно не меняет Поле пользователя. Вот это то, что вам, видимо, нужно.  

 
 
« Последнее редактирование: 31 Июль 2020, 11:49 от economist » Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 043


« Ответ #17: 31 Июль 2020, 15:17 »

Начал вчера ночью реализацию ConvertNumbersToText из VBA. Будет в 7.1 - и тогда заработают макросы типа

Код:
Option VBASupport 1

Sub NumbersToText
  ActiveDocument.Content.ListFormat.ConvertNumbersToText
End Sub

Сразу наткнулся на вещи, которые невозможно идеально сохранить при переделке списка в простой текст.
Например, выравнивание номера (по правому краю или по центру позиции номера) в связке со следующим пробелом (или "ничем").
Или проблемы при использовании выравнивания абзаца по ширине и пробелом между номером и текстом.
Или позиция табуляции после номера, большая, чем отступ остальной части абзаца.

Многие вещи в списках реализованы специальным образом, так, что это не реализуется вне списка.
Но в целом, для массового случая, будет более-менее.

Пока не планирую нормально работать с маркерами-картинками. Посмотрим, как на выходных настроение будет.
Записан

С уважением,
Михаил Каганский
McAaron
Форумчанин
***
Offline Offline

Сообщений: 410


« Ответ #18: 31 Июль 2020, 15:26 »

Начал вчера ночью реализацию ConvertNumbersToText из VBA. Будет в 7.1 - и тогда заработают макросы типа

Код:
Option VBASupport 1

Sub NumbersToText
  ActiveDocument.Content.ListFormat.ConvertNumbersToText
End Sub

Сразу наткнулся на вещи, которые невозможно идеально сохранить при переделке списка в простой текст.
Например, выравнивание номера (по правому краю или по центру позиции номера) в связке со следующим пробелом (или "ничем").
Так выравнивание нумерации влево или по центру не нужно вообще, потому что в принципе бессмысленно. Нужно, чтобы только вправо -- чтобы единицы были под единицами, десятки под десятками и далее по порядку, даже если между ними куча строк.
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 043


« Ответ #19: 31 Июль 2020, 15:30 »

Как иногда достают "специалисты" с самомнением до неба, у которых на всё есть своё единственно правильное мнение, и которые при этом не умеют читать то, на что отвечают (например, на проблему человека в том, что его документы вызывают трудности у заказчика, отвечают советами, как восстановить документ, возвращённый автору)...
Записан

С уважением,
Михаил Каганский
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 043


« Ответ #20: 31 Июль 2020, 16:22 »

А с полями и ссылками что-нибудь аналогичное? Не встречали? Хотя бы слышали?

Для замены полей можно воспользоваться этим:

Код:
Sub FieldsToText
  fields = ThisComponent.getTextFields.CreateEnumeration
  Dim map()
  While fields.hasMoreElements
    field = fields.nextElement
    ReDim Preserve map(LBound(map) To UBound(map) + 1)
    map(UBound(map)) = Array(field, field.getPresentation(false))
  Wend
  For i = LBound(map) To UBound(map)
    map(i)(0).getAnchor.setString(map(i)(1))
  Next i
End Sub

Сначала оно собирает все поля и их тексты, а вторым проходом заменяет. Это нужно для того, чтобы не нарушить значение какого-нибудь поля изменением предыдущего поля, от которого оно зависит (и нельзя просто делать это в обратном порядке - от конца документа к началу - потому что некоторые поля, например, User Field, имеют глобальную видимость).

Но, наверное, будет плохо работать с полями типа оглавлений.

Upd: точнее, не будет работать совсем Улыбка
« Последнее редактирование: 31 Июль 2020, 16:56 от mikekaganski » Записан

С уважением,
Михаил Каганский
economist
Форумчанин
***
Offline Offline

Сообщений: 1 292


« Ответ #21: 31 Июль 2020, 16:31 »

mikekaganski - очень полезный код, спасибо. Я только сейчас понял как он мне нужен ;-)
 
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 043


« Ответ #22: 31 Июль 2020, 16:47 »

А с полями и ссылками что-нибудь аналогичное? Не встречали? Хотя бы слышали?

Насчёт ссылок не вполне понятно, о чём речь. Вы хотите разорвать ссылки, например, когда вставили изображение связью, а не внедрением? Тогда нужно воспользоваться диалогом Правка|Ссылки на внешние файлы. Там есть соответствующая кнопка.

Или Вы хотите, чтобы гиперссылки, которые можно нажать в тексте, превратились в просто текст?
Записан

С уважением,
Михаил Каганский
RageGuy
Участник
**
Offline Offline

Сообщений: 34


« Ответ #23: 31 Июль 2020, 22:16 »

Извините, не было возможности ответить. Начну с конца...
К сожалению с макросами очень плохо дружу. И то, применял считанные разы в Worde, Excel. Во Writer пока не понятно. Надо разбираться.
Насчёт ссылок не вполне понятно, о чём речь.
Поясню. И по поводу полей тоже. Использую поля (в основном) в названии (подписи) к изображениям, таблицам, формулам. Так же использую поля в оформлении рамок по ГОСТ 2.104 (кстати, мои рамки некорректно отображаются в .docx и совсем не дружат с .doc). Перекрестные ссылки - это в первую очередь ссылки на изображение, таблицу, формулу. Могу "поизвращаться", используя поля и ссылки на них, в ссылках на списки сокращений и нормативной документации в конце документа. А, да, еще много ссылок на пункты (заголовки, абзацы) внутри документа.
В первую очередь это все для облегчения своей работы. Во вторую — документ в PDF-формате приобретает интерактивность.
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 043


« Ответ #24: 31 Июль 2020, 22:25 »

Перекрестные ссылки - это в первую очередь ссылки на изображение, таблицу, формулу. Могу "поизвращаться", используя поля и ссылки на них, в ссылках на списки сокращений и нормативной документации в конце документа. А, да, еще много ссылок на пункты (заголовки, абзацы) внутри документа.
В первую очередь это все для облегчения своей работы. Во вторую — документ в PDF-формате приобретает интерактивность.

И что же вы хотите сделать с этими перекрёстными ссылками?
Записан

С уважением,
Михаил Каганский
RageGuy
Участник
**
Offline Offline

Сообщений: 34


« Ответ #25: 31 Июль 2020, 22:37 »

1) Не плодить стили в документе. Никаких -- все только в шаблонах.
Так же и у меня – все в шаблоне.
2) правлю стили перечней
Сразу же сделал свои, да.
3) сохраняю документ в odt и в .doc и оба отправляю -- ворд оффтопика нормально работает и с .doc и с .odt, если нет "наворотов".
Да вопрос с редактированием в Word остро не стоит. Как уже заметили, установить бесплатный Libre нет проблем. Да, согласен, если без наворотов, то нормально открывается и редактируется. Вот только с рамками некрасиво получается (писал выше).
Можно также отправлять версию с включенным отслеживанием правок -- это позволяет потом быстро очистить документ от мусора
Спасибо за идею. Я раньше пользовался этим режимом для правки в явном виде, когда видно, что стираю, что добавляю. А в скрытом виде как-то не догадался.
Если интересно, раскажу, как бороться с формулами и рисунками.
Да вопросы по рисункам есть, порой руки опускаются (видимо не понимаю логики). В Word вроде все гладко было. А по формулам еще не возникали проблемы.
Записан
RageGuy
Участник
**
Offline Offline

Сообщений: 34


« Ответ #26: 31 Июль 2020, 22:40 »

И что же вы хотите сделать с этими перекрёстными ссылками?
По подобию с нумерацией. Сделать их редактируемым простым текстом. Как если бы я скопировал ссылку и вставил "как текст".
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 043


« Ответ #27: 31 Июль 2020, 22:43 »

Перекрёстные ссылки, которые Вы упомянули - частный случай полей. Проверьте, будет ли достаточно макроса, приведённого в ответе #20. Если нет, нужен пример документа, чтобы на нём тестировать.
Записан

С уважением,
Михаил Каганский
RageGuy
Участник
**
Offline Offline

Сообщений: 34


« Ответ #28: 31 Июль 2020, 23:05 »

Что касается Полей - некоторые Поля при копировании/вставке - становятся простым текстом с прежним форматированием (теряют связь с Полем). Написать макрос копирования/вставки (Ctrl+C Ctrl+V) несложно.
Собственно economist об этом же.
Вот пример таких полей:
Надо вчитываться. Смотреть. Спасибо за ориентировки.
Начал вчера ночью реализацию
Ничего не понял, но было интересно Улыбка. Этот способ не связан с описываемым в Вашей ссылке? Тяжело осознавать, что ты в чем-то нуб:)
Для замены полей можно воспользоваться этим:
Спасибо, mikekaganski, буду пробовать
Upd: точнее, не будет работать совсем
Оглавление можно не трогать Улыбка Хотя если кому понадобится добавить заголовок, то в оглавлении его не увидит. Стили-то не знаем... Оглавление у нас исполняют традиционно в скрытой таблице.
Записан
RageGuy
Участник
**
Offline Offline

Сообщений: 34


« Ответ #29: 31 Июль 2020, 23:17 »

Проверьте, будет ли достаточно макроса
Боюсь, смогу сделать это только в будние на работе. В выходные не до этого будет. Спасибо, mikekaganski.
Записан
Страниц: « 1 2 3 4 5 6 »   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!