Форум программистов, компьютерный форум CyberForum.ru

Как создать объект MathType (формулу) в MS Word? - Delphi

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 59, средняя оценка - 4.64
limbir
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 10
14.09.2009, 07:44     Как создать объект MathType (формулу) в MS Word? #1
надо бы сделать програмку расчёта, которая генерировала отчёт в ворде в виде набора текста и формул, содежащих дроби, корни, степени, пределы и т.д. (объект MathType). к примеру:
x=(a+b)/c=(1+2)/3=1.
здесь a,b,c - переменные величины, т.е. цифры расчитываются/задаются ранее и подставляются в формулу.
имею давольно большой опыт примитивного программирования, но был бы признателен за подробный ответ
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2009, 07:44     Как создать объект MathType (формулу) в MS Word?
Посмотрите здесь:

Delphi Создать объект
Как создать закладку для шаблона Word для Delphi Delphi БД
OLE объект MS Word 2000: нет строки состояния, не доступны предварительный просмотр и печать с диалогом выбора принтера. Delphi
Delphi Как программно создать объект?
Delphi Как динамически создать объект класса TDCOMConnection?
Как создать рекурсивную формулу? Delphi
Как программно создать объект на другой форме? Delphi
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jora
 Аватар для Jora
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
15.09.2009, 23:57     Как создать объект MathType (формулу) в MS Word? #2
Доброго времени суток! Я сам уже пару месяцев ищу ответ на этот вопрос, но так ничего и не нашел... Единственное что пришло в голову - использовать LaTeX (там формулы записываются в текстовом виде) и затем конвертировать в формат Ворда. Но это тоже проблематично т.к. язык не учил этот, а учить ради такой задачки как-то лень... Может найдутся тут добрые люди...
Да, кстати, для Вас, limbir, я бы рекомендовал использовать "шаблон" документа, в котором в определенных местах стоят "маркеры", например "Значение001", "Значение002" и т.д., потом этот "маркер" легко заменить нужным текстом. Вобщем предлагаю развивать эту тему - она будет полезна многим, вылаживайте свои идеи, а я завтра выложу парочку примерчиков на замену текста, это не много, но все же лучше чем ничего...
limbir
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 10
16.09.2009, 04:16  [ТС]     Как создать объект MathType (формулу) в MS Word? #3
Jora, спасибо за советы! с LaTeXом пытался разобраться, но как то не пошла у меня с ним дружба) да и по экспорту в ворд и латеха ничего найти не смог. По поводу шаблонов с маркерами мысль хорошая, но в mathtype маркер не поставить. Вчера наткнулся на книжку, много полезного для себя оттуда узнал, называется "ПРОГРАММИРОВАНИЕ ДОКУМЕНТОВ И ПРИЛОЖЕНИЙ MS OFFICE в DELPHI" Корнякова В. Н. Так же есть его статьи на сайтах www.kornjakov.ru либо www.kv.by, там практически вся полезная информация из книги. Только работе с объектами OLE посвящено всего пара страниц (и ни слова про MathType), прочёл их вскользь, сегодня попробую разобраться поподробнее. Попробовал написать автору, мож ответит. Как только заработает прога, создающая и редактирующая формулы обязательно всё сюда выложу.
limbir
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 10
16.09.2009, 07:17  [ТС]     Как создать объект MathType (формулу) в MS Word? #4
получилось создать объект Equation (MathType) в Word'е:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComObj;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
W: variant;

implementation

procedure TForm1.Button1Click(Sender: TObject);
begin
W:=CreateOleObject('Word.Application');
W.Visible:=Visible;
W.Documents.Add;
W.ActiveDocument.Shapes.AddOleObject(ClassType:='Equation.3');
//у меня установлен MathType, он и запускается
end;
end.
Теперь, я полагаю, можно в открывшемся активном MathType что нибудь написать. Только пока никак не получается(.
Jora
 Аватар для Jora
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
16.09.2009, 20:12     Как создать объект MathType (формулу) в MS Word? #5
я тоже так пробовал, но дальше дело не пошло...

Добавлено через 37 минут
Вот так выглядит документ LaTeX:

Код
\documentclass{article}
\usepackage{latexsym}

\begin{document}

\[
[COLOR="Red"]a=\frac{b}{c}[/COLOR]
\]

\end{document}
Красным выделена формула. При конвертировании документа обратно в .doc она принимает нормальный вид. Файл .tex набирается в обычном блокноте, т.е. можно без всяких
Цитата Сообщение от limbir Посмотреть сообщение
ComObj
отредактировать файл, что значительно уменьшает затраты системных ресурсов имхо, единственное что меня смущает - сам язык LaTeX... Очень долго все переписывать прийдется...
А вот и процедура для замены в текстовом файле:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
procedure TForm1.Button1Click(Sender: TObject);
var
 f, f1 : textfile;
 s : string;
begin
 {$i-}
 AssignFile(f, 1.tex);
 reset(f);
 AssignFile(f1, 'temp.tex');
 rewrite(f1);
 {$i+}
 if IOResult=0 then
  begin
   while not eof(f) do
    begin
     readln(f, s);
     s:=AnsiReplaceStr(s, Edit1.Text, Edit2.Text);
     writeln(f1, s);
    end;
   closefile(f);
   closefile(f1);
   erase(f);
   rename(f1, 1.tex);
  end else Label1.Caption:='Ошибка при открытии файла. Код ошибки '+FloatToStr(IOResult);
end;
Без особых наворотов, но зато интуитивно понятно. Жду встречных предложений.

Добавлено через 20 минут
Вот неплохая книга по LaTeX http://itbookz.ru/graphic/latex/81-n...eme-latex.html
Jora
 Аватар для Jora
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
16.09.2009, 23:25     Как создать объект MathType (формулу) в MS Word? #6
вот еще что нашел: http://www.softsoft.ru/education/mathematics/14463.htm
может нужно еще и в таком направлении поработать?
limbir
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 10
17.09.2009, 04:28  [ТС]     Как создать объект MathType (формулу) в MS Word? #7
Цитата Сообщение от Jora Посмотреть сообщение
Красным выделена формула. При конвертировании документа обратно в .doc она принимает нормальный вид.
Вот как конвертировать в .doc я бы и хотел узнать

Цитата Сообщение от Jora Посмотреть сообщение
хм, очень интересно
а есть полная бесплатная версия?)
Jora
 Аватар для Jora
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
17.09.2009, 07:16     Как создать объект MathType (формулу) в MS Word? #8
Цитата Сообщение от limbir Посмотреть сообщение
Вот как конвертировать в .doc я бы и хотел узнать
В .doc не пробовал, а в .rtf этой программой - http://sourceforge.net/projects/latex2rtf/files/, она распространяется бесплатно и довольно неплохо конвертирует.

Цитата Сообщение от limbir Посмотреть сообщение
а есть полная бесплатная версия?)
Полной версии пока что не нашел, но еще не сдаюсь))
limbir
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 10
17.09.2009, 08:27  [ТС]     Как создать объект MathType (формулу) в MS Word? #9
Jora, для конвертирования в .rtf мне необходима только эта программка и файл *.tex, так? или надо устанавливать дополнительно какой то компилятор?
и вот ещё проблемка: устанавливал LaTeX Wid, LeD, но ни один у меня вывести какой нибудь результат не смог, пишут ошибки. чую чего то всё таки не хватает. можешь подсказать чего?)
Jora
 Аватар для Jora
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
17.09.2009, 18:55     Как создать объект MathType (формулу) в MS Word? #10
дело в том - что я сам пока разбираюсь, начинаю с нуля, подсказать пока нечего, но для конвертирования в .rtf достаточно только той программы и теха (проверял сам). вот код, который я конвертировал с успехом:
Код
\documentclass[12pt]{article}
\usepackage{weird,queer,amssymb,amsmath}
\begin{document}
поехали!

\LaTeX

\begin{equation}
\sqrt{c}=b\cdot m
\end{equation}
\end{document}
Проблема которую я пока не понял как решить - под корнем стоит ",а" вместо "а". Времени не хватает... Но думаю надо работать именно в этом направлении.
limbir
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 10
18.09.2009, 04:19  [ТС]     Как создать объект MathType (формулу) в MS Word? #11
Jora, в ЛаТеХ2РТФ на закладке Расширенные поставь галочку напротив использовать ';' вместо ',' и проблемка решена)
в целом мне нравиться что получается, ещё б ту прогу полную найти, очень там удобно из готовых формул ЛаТеХные исходники получать.
Jora
 Аватар для Jora
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
18.09.2009, 07:44     Как создать объект MathType (формулу) в MS Word? #12
Спасибо за подсказку. А вот и тебе подарочек! У MathType есть функция транслирования на латех!!! включается таким образом: Preferences>Translators... дальше галочку ставь на "Translation to other language (text)"
Теперь при копировании из окна MathType в блокнот - получаешь транслированный на латех код!!!
Теперь стоит вопрос: у тебя работает конвертирование формул с \frac ? У меня что-то не получается...

Добавлено через 9 минут
Все, работает!) Теперь надо заняться составлением документа... 50 страниц текста Ворда перевести на латех... Вот поэтому и не хотелось его использовать...

Добавлено через 2 минуты
нашел еще бочину....
попробуй отконвертировать такую формулу:
Код
\[
\sqrt {{a^2} + {b^2}}
\]
limbir
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 10
18.09.2009, 09:23  [ТС]     Как создать объект MathType (формулу) в MS Word? #13
Jora, спасибо, действительно подарочек, порадовал очень сильно!)
не знаю даже в чем у тебя может быть проблема, и \фрак работает нормально и корень суммы квадратов у меня тоже получился. ты напиши что у тебя получается
Jora
 Аватар для Jora
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
18.09.2009, 19:50     Как создать объект MathType (формулу) в MS Word? #14
Вот что получается у меня (скрин в аттаче). Если коротко - во-первых индексы квадратов стоят внизу, во-вторых - они ооочень маленькие...
Миниатюры
Как создать объект MathType (формулу) в MS Word?  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2009, 10:44     Как создать объект MathType (формулу) в MS Word?
Еще ссылки по теме:

Как преобразовать формулу введенную в Edit типа String в решаемую формулу Delphi
Delphi Создать объект-Таблица
Как создать несколько отдельных таблиц в Word-е? Delphi
Как создать "общий" объект Delphi
Как извлечь объект-excel встроенный в Word? Lazarus

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Jora
 Аватар для Jora
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
19.09.2009, 10:44     Как создать объект MathType (формулу) в MS Word? #15
Все, разобрался, проблема была в том, что я указал в программе язык, а нужно было только кодировку указать. Теперь можно работать! Удачи всем!
Yandex
Объявления
19.09.2009, 10:44     Как создать объект MathType (формулу) в MS Word?
Ответ Создать тему
Опции темы

Текущее время: 17:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru