Форум программистов, компьютерный форум CyberForum.ru Форум программистов | Компьютерный форум | Форум web-программистов | Форум по электронике и бытовой технике | Форум о софте | Научный форум | Карьера и бизнес
CyberForum.ru - форум программистов и сисадминов > >
Восстановить пароль Регистрация

Ответ Создать новую тему
 
14.09.2009, 07:44   #1
limbir
Новичок
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 9
Как создать объект MathType (формулу) в MS Word? / Delphi

надо бы сделать програмку расчёта, которая генерировала отчёт в ворде в виде набора текста и формул, содежащих дроби, корни, степени, пределы и т.д. (объект MathType). к примеру:
x=(a+b)/c=(1+2)/3=1.
здесь a,b,c - переменные величины, т.е. цифры расчитываются/задаются ранее и подставляются в формулу.
имею давольно большой опыт примитивного программирования, но был бы признателен за подробный ответ
14.09.2009, 07:44
AdAgent
Объявления
15.09.2009, 23:57   #2
Jora
Новичок
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
Как создать объект MathType (формулу) в MS Word?

Доброго времени суток! Я сам уже пару месяцев ищу ответ на этот вопрос, но так ничего и не нашел... Единственное что пришло в голову - использовать LaTeX (там формулы записываются в текстовом виде) и затем конвертировать в формат Ворда. Но это тоже проблематично т.к. язык не учил этот, а учить ради такой задачки как-то лень... Может найдутся тут добрые люди...
Да, кстати, для Вас, limbir, я бы рекомендовал использовать "шаблон" документа, в котором в определенных местах стоят "маркеры", например "Значение001", "Значение002" и т.д., потом этот "маркер" легко заменить нужным текстом. Вобщем предлагаю развивать эту тему - она будет полезна многим, вылаживайте свои идеи, а я завтра выложу парочку примерчиков на замену текста, это не много, но все же лучше чем ничего...
Другие темы раздела
'Найти объект' или 'Место хранения файла' Delphi
На форме имеется TListView который содержит список путей и названий файлов. Нужно реализовать функцию, которая будет открывать директорию в которой хранится выбранный из списка пользователем файл и выделять его, аналогично тому как это происходит в windows при нажатии кнопки 'Найти объект' в...
Delphi Delphi получает указание сервер из браузера
Всем привет! Я столкнулся с проблемой, допустим я создал веб станицу в delphi проекте, подключаюсь через браузер на 127.0.0.1:80 и вижу ну к примеру Hello word итд. Вот вопрос как сделать так чтобы я мог через браузер выдавать команды серверу, например запустить процедуру или файл! Как сделать так...
16.09.2009, 04:16  [ТС]   #3
limbir
Новичок
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 9
Как создать объект MathType (формулу) в MS Word?

Jora, спасибо за советы! с LaTeXом пытался разобраться, но как то не пошла у меня с ним дружба) да и по экспорту в ворд и латеха ничего найти не смог. По поводу шаблонов с маркерами мысль хорошая, но в mathtype маркер не поставить. Вчера наткнулся на книжку, много полезного для себя оттуда узнал, называется "ПРОГРАММИРОВАНИЕ ДОКУМЕНТОВ И ПРИЛОЖЕНИЙ MS OFFICE в DELPHI" Корнякова В. Н. Так же есть его статьи на сайтах www.kornjakov.ru либо www.kv.by, там практически вся полезная информация из книги. Только работе с объектами OLE посвящено всего пара страниц (и ни слова про MathType), прочёл их вскользь, сегодня попробую разобраться поподробнее. Попробовал написать автору, мож ответит. Как только заработает прога, создающая и редактирующая формулы обязательно всё сюда выложу.
16.09.2009, 07:17  [ТС]   #4
limbir
Новичок
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 9
Как создать объект MathType (формулу) в MS Word?

получилось создать объект 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 что нибудь написать. Только пока никак не получается(.
16.09.2009, 20:12   #5
Jora
Новичок
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
Как создать объект MathType (формулу) в MS Word?

я тоже так пробовал, но дальше дело не пошло...

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

Код Code
1
2
3
4
5
6
7
8
9
10
\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
16.09.2009, 23:25   #6
Jora
Новичок
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
Как создать объект MathType (формулу) в MS Word?

вот еще что нашел: http://www.softsoft.ru/education/mathematics/14463.htm
может нужно еще и в таком направлении поработать?
17.09.2009, 04:28  [ТС]   #7
limbir
Новичок
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 9
Как создать объект MathType (формулу) в MS Word?

Цитата Сообщение от Jora Посмотреть сообщение
Красным выделена формула. При конвертировании документа обратно в .doc она принимает нормальный вид.
Вот как конвертировать в .doc я бы и хотел узнать

Цитата Сообщение от Jora Посмотреть сообщение
вот еще что нашел: http://www.softsoft.ru/education/mathematics/14463.htm
хм, очень интересно
а есть полная бесплатная версия?)
17.09.2009, 07:16   #8
Jora
Новичок
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
Как создать объект MathType (формулу) в MS Word?

Цитата Сообщение от limbir Посмотреть сообщение
Вот как конвертировать в .doc я бы и хотел узнать
В .doc не пробовал, а в .rtf этой программой - http://sourceforge.net/projects/latex2rtf/files/, она распространяется бесплатно и довольно неплохо конвертирует.

Цитата Сообщение от limbir Посмотреть сообщение
а есть полная бесплатная версия?)
Полной версии пока что не нашел, но еще не сдаюсь))
17.09.2009, 08:27  [ТС]   #9
limbir
Новичок
1 / 1 / 0
Регистрация: 11.09.2009
Сообщений: 9
Как создать объект MathType (формулу) в MS Word?

Jora, для конвертирования в .rtf мне необходима только эта программка и файл *.tex, так? или надо устанавливать дополнительно какой то компилятор?
и вот ещё проблемка: устанавливал LaTeX Wid, LeD, но ни один у меня вывести какой нибудь результат не смог, пишут ошибки. чую чего то всё таки не хватает. можешь подсказать чего?)
17.09.2009, 18:55   #10
Jora
Новичок
3 / 3 / 0
Регистрация: 15.09.2009
Сообщений: 8
Как создать объект MathType (формулу) в MS Word? / Delphi

дело в том - что я сам пока разбираюсь, начинаю с нуля, подсказать пока нечего, но для конвертирования в .rtf достаточно только той программы и теха (проверял сам). вот код, который я конвертировал с успехом:
Код Code
1
2
3
4
5
6
7
8
9
10
11
\documentclass[12pt]{article}
\usepackage{weird,queer,amssymb,amsmath}
\begin{document}
поехали!
 
\LaTeX
 
\begin{equation}
\sqrt{c}=b\cdot m
\end{equation}
\end{document}
Проблема которую я пока не понял как решить - под корнем стоит ",а" вместо "а". Времени не хватает... Но думаю надо работать именно в этом направлении.
17.09.2009, 18:55
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Автор Дата
Delphi Как преобразовать формулу введенную в Edit типа String в решаемую формулу
название не совсем корректное, но САБЖ вот в чем: в Edit вводится целевая функция (f=-x1^2-x2^2), из которой нужно найти частные производные. нахождение производных я реализовал, но проблема в том что производная записана в типе String, а ее нужно в дальнейшем подставить в основную формулу. ...
Delphi Centrik 11.06.2013 18:58
Delphi Как программно создать объект на другой форме?
Добрый вечер! Есть код, который должен создать компонент Lbl на другой форме(form4,lbl на ней объявлен), но код выдает ошибку: procedure TForm3.btn4Click(Sender: TObject); const colsv=34; colsb=12; begin Form4.Lbl.Create(self); Form4.Lbl.Font.Size:=14; Form4.Lbl.Caption:='Êîìïîíåíò...
Delphi для начинающих Talkoflights 15.05.2013 09:05
Delphi Как создать рекурсивную формулу?
Приветствую) очень нужна помощь. Задача такая - возвести число в степень (например х в степени к) с использованием рекурсивной формулы. В общем задача выглядит так: Посчитать значения выражения: (-1)^k*(х*(sin(x)^k))/k . Никак не могу с этим справится, помогите, пожалуйста, если не сложно)
Delphi для начинающих lugaru 22.05.2012 01:11
VBA Как программно редактировать формулу Equation или Mathtype
как в vba можно програмно редактировать формулу equation или mathtype? например, программно вывести 2 в степени2=4
VBA хач 21.02.2012 16:57
Delphi Как динамически создать объект класса TDCOMConnection?
Новичок-с в этом деле. Делаю так: DCOMConnection1:=TDCOMConnection.Create(nil); DCOMConnection1.ServerGUID=''КАКОЙ-ТО GUID'' DCOMConnection1.ServerName=''КАКОЙ-ТО NAME'' DCOMConnection1.Connected:=true; //вот на этом месте ругается - говорит не вызван CoInitialize. Какие строки надо...
Delphi gray-82 19.12.2011 10:19
MS Word Как вставить в MathType, интегрированный в Word, ячейку, связанную с документом Excel?
Уважаемые знатоки, суть вопроса отражена в заголовке. В Word'е оформляется отчет с массой расчетов, которые выполняются в Excel'е. В Word ячейки внедряются, связываются и обновляются, но в MathType, интегрированный в Word - никак не хотят. Как возможно решить эту проблему? Всем - спасибо большое!
MS Office Word Andr66 09.05.2011 13:24
MS Word MathType открывает другую формулу.
У меня документ Word 2007 в котором много формул набраных в MathType, с какого то момента , пытаясь отредактировать ранее введённую формулу, MathType св своём редакторе стал открывать совершенно другую формулу!!! Что это может быть, документ большей, 150 стр. и еще надо набрать не менее, как же...
MS Office Word Spokoinui 30.04.2011 08:57
Delphi Как программно создать объект?
Проблема в следующем: Есть текстовый файл с какими-то строчками (не суть важно с какими, важно то, что мы не знаем их числа). Надо: для каждой прочитанной строчки создать какой-нибудь объект, обладающий рядом свойств. Например как на рабочем столе для имен файлов создаются ярлыки со свойствами:...
Delphi arf_so 31.01.2010 13:14
Опции темы

Текущее время: 15:24. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.