Форум программистов и сисадминов CyberForum.ru
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум Форум программистов > Форум Delphi
Восстановить пароль Регистрация

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

надо бы сделать програмку расчёта, которая генерировала отчёт в ворде в виде набора текста и формул, содежащих дроби, корни, степени, пределы и т.д. (объект MathType). к примеру:
x=(a+b)/c=(1+2)/3=1.
здесь a,b,c - переменные величины, т.е. цифры расчитываются/задаются ранее и подставляются в формулу.
имею давольно большой опыт примитивного программирования, но был бы признателен за подробный ответ
Старый 15.09.2009, 23:57   #2
Jora
Новичок
 
Аватар для Jora
 
Регистрация: 15.09.2009
Сообщений: 8
Репутация: 3 (3)
Доброго времени суток! Я сам уже пару месяцев ищу ответ на этот вопрос, но так ничего и не нашел... Единственное что пришло в голову - использовать LaTeX (там формулы записываются в текстовом виде) и затем конвертировать в формат Ворда. Но это тоже проблематично т.к. язык не учил этот, а учить ради такой задачки как-то лень... Может найдутся тут добрые люди...
Да, кстати, для Вас, limbir, я бы рекомендовал использовать "шаблон" документа, в котором в определенных местах стоят "маркеры", например "Значение001", "Значение002" и т.д., потом этот "маркер" легко заменить нужным текстом. Вобщем предлагаю развивать эту тему - она будет полезна многим, вылаживайте свои идеи, а я завтра выложу парочку примерчиков на замену текста, это не много, но все же лучше чем ничего...
Другие темы раздела Форум программистов Delphi. Программирование в среде Delphi, Kylix, вопросы использования языка программирования Delphi (Object Pascal). Помощь в решении задач.
'Найти объект' или 'Место хранения файла' Delphi
На форме имеется TListView который содержит список путей и названий файлов. Нужно реализовать функцию, которая будет открывать директорию в которой хранится выбранный из списка пользователем файл и выделять его, аналогично тому как это происходит в windows при нажатии кнопки 'Найти объект' в...
Delphi Delphi получает указание сервер из браузера
Всем привет! Я столкнулся с проблемой, допустим я создал веб станицу в delphi проекте, подключаюсь через браузер на 127.0.0.1:80 и вижу ну к примеру Hello word итд. Вот вопрос как сделать так чтобы я мог через браузер выдавать команды серверу, например запустить процедуру или файл! Как сделать так...
Старый 16.09.2009, 04:16  [ТС]   #3
limbir
Новичок
 
Регистрация: 11.09.2009
Сообщений: 9
Репутация: 1 (1)
Jora, спасибо за советы! с LaTeXом пытался разобраться, но как то не пошла у меня с ним дружба) да и по экспорту в ворд и латеха ничего найти не смог. По поводу шаблонов с маркерами мысль хорошая, но в mathtype маркер не поставить. Вчера наткнулся на книжку, много полезного для себя оттуда узнал, называется "ПРОГРАММИРОВАНИЕ ДОКУМЕНТОВ И ПРИЛОЖЕНИЙ MS OFFICE в DELPHI" Корнякова В. Н. Так же есть его статьи на сайтах www.kornjakov.ru либо www.kv.by, там практически вся полезная информация из книги. Только работе с объектами OLE посвящено всего пара страниц (и ни слова про MathType), прочёл их вскользь, сегодня попробую разобраться поподробнее. Попробовал написать автору, мож ответит. Как только заработает прога, создающая и редактирующая формулы обязательно всё сюда выложу.
Старый 16.09.2009, 07:17  [ТС]   #4
limbir
Новичок
 
Регистрация: 11.09.2009
Сообщений: 9
Репутация: 1 (1)
получилось создать объект 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, 07:17
Google
Объявления
Как создать объект MathType (формулу) в MS Word? / Delphi

Старый 16.09.2009, 20:12   #5
Jora
Новичок
 
Аватар для Jora
 
Регистрация: 15.09.2009
Сообщений: 8
Репутация: 3 (3)
я тоже так пробовал, но дальше дело не пошло...

Добавлено через 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
Новичок
 
Аватар для Jora
 
Регистрация: 15.09.2009
Сообщений: 8
Репутация: 3 (3)
вот еще что нашел: http://www.softsoft.ru/education/mathematics/14463.htm
может нужно еще и в таком направлении поработать?
Старый 17.09.2009, 04:28  [ТС]   #7
limbir
Новичок
 
Регистрация: 11.09.2009
Сообщений: 9
Репутация: 1 (1)
Цитата Сообщение от Jora Посмотреть сообщение
Красным выделена формула. При конвертировании документа обратно в .doc она принимает нормальный вид.
Вот как конвертировать в .doc я бы и хотел узнать

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

Цитата Сообщение от limbir Посмотреть сообщение
а есть полная бесплатная версия?)
Полной версии пока что не нашел, но еще не сдаюсь))
Старый 17.09.2009, 08:27  [ТС]   #9
limbir
Новичок
 
Регистрация: 11.09.2009
Сообщений: 9
Репутация: 1 (1)
Jora, для конвертирования в .rtf мне необходима только эта программка и файл *.tex, так? или надо устанавливать дополнительно какой то компилятор?
и вот ещё проблемка: устанавливал LaTeX Wid, LeD, но ни один у меня вывести какой нибудь результат не смог, пишут ошибки. чую чего то всё таки не хватает. можешь подсказать чего?)
Старый 17.09.2009, 18:55   #10
Jora
Новичок
 
Аватар для Jora
 
Регистрация: 15.09.2009
Сообщений: 8
Репутация: 3 (3)
Как создать объект 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
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Автор
VBA Как программно редактировать формулу Equation или Mathtype
как в vba можно програмно редактировать формулу equation или mathtype? например, программно вывести 2 в степени2=4
хач
MS Office Word Word + MathType.
Работаю в Word + MathType. На русском языке достать документацию по MathType не удалось. Поэтому вопрос. Как в MathType или в Word сохранить часто набираемые формулы? Заранее благодарен за подсказку в любой форме.
НеПрограмист
MS Office Word Как вставить в MathType, интегрированный в Word, ячейку, связанную с документом Excel?
Уважаемые знатоки, суть вопроса отражена в заголовке. В Word'е оформляется отчет с массой расчетов, которые выполняются в Excel'е. В Word ячейки внедряются, связываются и обновляются, но в MathType, интегрированный в Word - никак не хотят. Как возможно решить эту проблему? Всем - спасибо большое!
Andr66
MS Office Word MathType открывает другую формулу.
У меня документ Word 2007 в котором много формул набраных в MathType, с какого то момента , пытаясь отредактировать ранее введённую формулу, MathType св своём редакторе стал открывать совершенно другую формулу!!! Что это может быть, документ большей, 150 стр. и еще надо набрать не менее, как же...
Spokoinui
MS Office Word Взаимодействие MathType 6.Х и Word 2007-10
При сохранении документа в форматах Word 2007 или 2010 нарушается форматирование объектов MathType 6.0-6.7: после объекта появляется смешение шрифта вниз на несколько пунктов (тем больше, чем больше размер объекта). Это очень неудобно при последующей правке текста. В Word 2003 & MathType 5.X...
Андрей Иванович
Опции темы

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

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