Создание Word документов

blackeye

Client
Регистрация
28.12.2012
Сообщения
197
Благодарностей
119
Баллы
43
Друзья, а может кто-нибудь подскажет. Вот я забираю текст из документа .docx, ну т.е. читаю все его содержимое и кладу в переменную, но теряются все переносы строк(все пробелы остаются как надо), и получается почти сплошной текст.
Как мне получить текст, так сказать отформатированный, т.е. со всеми переносами из .docx документа.
Вот пример кода, чтобы было понятней о чем я говорю:
Код:
var doc = Novacode.DocX.Load(project.Directory+"\\123.docx");
var text = doc.Text.ToString();
return text;
Женя, ну как, удалось решить? Мне тоже понадобилось получать из docx текст с форматированием. Есть возможность вообще?
 

evgen_po

Client
Регистрация
27.08.2013
Сообщения
841
Благодарностей
514
Баллы
93
Женя, ну как, удалось решить? Мне тоже понадобилось получать из docx текст с форматированием. Есть возможность вообще?
Неа, я так колупался ради интереса с этими кодами.. Задачи толком не стояло, потому не решена((
Radzhab или LexxWork - не подскажете... как решить подобное?
 
  • Спасибо
Реакции: blackeye

blackeye

Client
Регистрация
28.12.2012
Сообщения
197
Благодарностей
119
Баллы
43
ясно, спасибо!
ждем экспертов:-)
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
779
Баллы
113
все приколы документа включая переносы по словам появляются только при просмотре документа в офисе. Если хотите переносы по словам вы должны длину текста разделить на ширину текстового поля и, вычислив эти точки разрыва двигаться в левую сторону к первому пробелу или знаку пунктуации. Потом опять повторять первое с оставшимся текстом... как-то так.
 
  • Спасибо
Реакции: blackeye

TRS

Client
Регистрация
05.03.2013
Сообщения
32
Благодарностей
4
Баллы
8

mig-z

Client
Регистрация
05.12.2014
Сообщения
271
Благодарностей
66
Баллы
28
Было бы здорово увидеть реализацию следующую реализацию:
Есть условные обозначения :Название: :Дата: :Заголовок: и пр, в тексте док.
А мы их заменяем на данные из переменных. Например :Название: будет Название документа и так далее.
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 415
Благодарностей
936
Баллы
113
Народ, а спалите для чего кроме аля "доров" это нужно? :-)
 

mig-z

Client
Регистрация
05.12.2014
Сообщения
271
Благодарностей
66
Баллы
28
Составление договоров.
 

markzmanz

Client
Регистрация
22.05.2015
Сообщения
63
Благодарностей
4
Баллы
8
Выдает
У меня работает
У меня такая же проблема. В готовом файле только Zennoposter word tutorial.
Также была ошибка с кавычкой в конце, я добавил, проект начал выполняться и создается вот такой файл. Остаток скрипта не проводится.
 

markzmanz

Client
Регистрация
22.05.2015
Сообщения
63
Благодарностей
4
Баллы
8
Было бы здорово увидеть реализацию следующую реализацию:
Есть условные обозначения :Название: :Дата: :Заголовок: и пр, в тексте док.
А мы их заменяем на данные из переменных. Например :Название: будет Название документа и так далее.
С таким никто не продвинулся? Мои знания zenno полного новичка, но стоит именно такая важная задача для составления проекта для заполнения автоматизации договоров. Это вообще реально сделать с помощью зенно или только спец. софтом?
 

markzmanz

Client
Регистрация
22.05.2015
Сообщения
63
Благодарностей
4
Баллы
8
Это очень сложно или просто такое только за деньги показывают?
 

gennady01071

Client
Регистрация
08.10.2014
Сообщения
12
Благодарностей
1
Баллы
3
в вашей статье много всего интересного, но не могу найти ничего для себя или я не врубаюсь, вроде все делаю как там написан. не могли бы вы мне помочь с моим вопросом. есть ли разница работы с .docX и .doc ?? помогите пзж, уже вторые сутки на ветер. сижу разбираюсь...
HELP mE!!!
 

gennady01071

Client
Регистрация
08.10.2014
Сообщения
12
Благодарностей
1
Баллы
3
нашел такой код на чтение вроде бы, в тесте показывает "ок" по факту не работает, посмотрите кто понимает и смыслит в этом больше чем я
Код:
const string FILE_NAME = @"C:\123.doc";
try
{
  Stream s = File.OpenRead(FILE_NAME);
}
catch(Exception e)
{
    //System.Diagnostics.Debugger.Break();
    Console.WriteLine(e.Message);
}
 

dannko

Client
Регистрация
12.08.2013
Сообщения
134
Благодарностей
31
Баллы
28
Понекропощу чуть)

Может, кто знает шо это за ошибка?
 

gs517

Client
Регистрация
18.05.2013
Сообщения
138
Благодарностей
15
Баллы
18
А как отредактировать уже существующий файл?
Допустим добавить в конец некий текст
 
Регистрация
15.05.2016
Сообщения
45
Благодарностей
5
Баллы
8
Блин, жаль что на самые острые вопросы никто и не отвечает. И по поводу открытия doc файлов: если нельзя прочесть их так, чтобы переносы строк сохранились, может можно тогда по иному пути пойти - открыть ворд, скопировать всё содержимое и вставить в переменную.
Для этого нужны знания C#, умение взаимодействовать с другими программами. Вот может быть из знающих подскажут, как такое реализовать?
 

Alex_a

Client
Регистрация
04.10.2016
Сообщения
16
Благодарностей
1
Баллы
3
знающие С# подскажите как залинковать картинку, через Hyperlink
вот на подобном примере.
//Добавляем картинку из файла
var img = document.AddImage(project.Directory+"\\"+project.Variables["pics_name"].Value);
var p2 = document.InsertParagraph();
var pic = img.CreatePicture();
p2.AppendPicture(pic);
 

Saulius S.

Client
Регистрация
19.08.2016
Сообщения
44
Благодарностей
7
Баллы
8
Я тоже ненашол как с помощью C# или средствами зеннопостера взять корректно текст из вордовского документа, но нашол решение через этот сайт https://www.idrsolutions.com/online-word-to-html5-converter/ который в онлайн режиме очень неплохо конвертирует документ, который потом можно взять например через тот же DOM
 
  • Спасибо
Реакции: Radzhab

MST

Client
Регистрация
15.09.2017
Сообщения
31
Благодарностей
2
Баллы
8
Тоже требуется читать текст из Word со всеми форматами. Кто-нибудь нашел решение?
 
  • Спасибо
Реакции: Radzhab

DmKa

Client
Регистрация
24.09.2017
Сообщения
116
Благодарностей
16
Баллы
18
p.Append(project.Variables["path"].Value); // Текст который мы добавляем

Если переменная path однострочная то работает. Если многострочная то нет.
Что следует поправить в коде ?
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 498
Благодарностей
1 246
Баллы
113
p.Append(project.Variables["path"].Value); // Текст который мы добавляем

Если переменная path однострочная то работает. Если многострочная то нет.
Что следует поправить в коде ?
Хм. Убрать перенос строки
 

DmKa

Client
Регистрация
24.09.2017
Сообщения
116
Благодарностей
16
Баллы
18
Убрать перенос строки
Хм.......А зачем мне такой вородовский документ тогда ? :-)

Задача: Создается/формируется документ на 4000-7000 знаков. Его надо сохранить в пдф или вордовском формате.
Соответственно на основе вашего шаблона я и пробую создать .docx

Или я не улавливаю глубокого смысла создания документа docx с одну строку? :-)
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 023
Баллы
113
p.Append(project.Variables["path"].Value); // Текст который мы добавляем

Если переменная path однострочная то работает. Если многострочная то нет.
Что следует поправить в коде ?
Попробуй переносы строк заменить на \n или \r\n, чтоб текст получился в одну строку.
 

DmKa

Client
Регистрация
24.09.2017
Сообщения
116
Благодарностей
16
Баллы
18
чтоб текст получился в одну строку.
Изивините за мой тупизм, но мне не нужен документ docx где текст будет в одну строку. В чем смысл ТАКОГО документа я даже и представить не могу :-)

ЗЫ А так же придется из текста удалять кавычки, скобки и тд? Реально не понимаю зачем формировать подобный документ не имеющего прямого предназначения
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 023
Баллы
113
Изивините за мой тупизм, но мне не нужен документ docx где текст будет в одну строку
В одну строку текст будет только в переменной! \n или \r\n - это и есть перенос строки, точнее код эти символы будет воспринимать именно так.
 

DmKa

Client
Регистрация
24.09.2017
Сообщения
116
Благодарностей
16
Баллы
18
Победил.

Использовал для очистки текста пример приведенный тут - http://zennolab.com/discussion/threads/ubrat-perenosy.14649/#post-88603

Операция со списком - Объединить элементы списка - Разделитель указанный в списке
==

Вопрос. А каким кодом можно отрегулировать междустрочный интервал? И можно ли сделать Выравнивание по ширине?
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)