Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.05;
Скачать: CL | DM;

Вниз

Delphi, Word и MSPVIEW.EXE   Найти похожие ветки 

 
john_mag ©   (2005-11-16 12:06) [0]

Доброго времени суток, мастера! Ситуация у меня сложилась не простая...Стоит следующая задача:нужно из doc файла взять две страницы и поместить их на одной в новом документе. После штудирования COM технологий родилась только единственная мысль - отправить эти две страницы на печать в файл через MS Dicument Image, сохраняя в формате PRN. Далее в MS Dicument Image PRN конвертировать в jpg или tiff и вставить в Word как рисунок!Это назыается хождение в магазин напротив через соседнюю деревню. Вопрос в следующем: можно ли и как из Delphi запустить MS Dicument Image он же MSPVIEW.EXE в фоновом режиме, дабы скрыть процесс от глаз юзера и этой прогой конвертировать PRN  в JPG? Любые бесплатные советы будут полезны!


 
pohil   (2005-11-17 23:04) [1]

Ну если все же остановился на своем варианте:

>> хождение в магазин напротив через соседнюю деревню

Тогда просто ShowWindow юзай.


 
john_mag ©   (2005-11-24 08:27) [2]

> pohil   (17.11.05 23:04) [1]
если ты что-нибудь посоветуешь я буду очень рад 8-)))


 
umbra ©   (2005-11-24 10:54) [3]

а не проще ли создать новый документ, сделать в нем шрифт поменьше, скопировать из первого две страницы и вставить во второй?


 
john_mag ©   (2005-11-24 11:01) [4]

> umbra ©   (24.11.05 10:54) [3]

а не проще ли создать новый документ, сделать в нем шрифт поменьше, скопировать из первого две страницы и вставить во второй?

Дело в том, что никто не знает как скопировать две страницы.... Если у тебя есть что-то... то тебе поставят памятник! 8-))


 
Ботвин Дмитрий   (2005-11-24 11:29) [5]

john_mag ©   (16.11.05 12:06)

Самый простой способ сделать через OLE. И как сказал уменьшить размер
шрифта и/или межстрочное расстояние перенести тескт с двух страниц на одну. Как работать с вордом через оле примеров полно, например на
www.delphiword.narod.ru


 
john_mag ©   (2005-11-24 12:09) [6]

>Ботвин Дмитрий   (24.11.05 11:29) [5]
Самый простой способ сделать через OLE

Согласен! Примеров работы с OLE много... Я и работаю через макросы! Дело то не в этом! Объясните мне дураку(на примере желательно) как полностью скопировать нужную страницу с коллонтитулами, с номером страницы и.... Ну ни где нету ничего подобного!
ps: www.delphiword.narod.ru - сейчас от сайта толку никакого, тк он пустой.


 
Попов Виталий   (2005-11-24 12:25) [7]

В Ворде есть возможность подогнать текст до нужного количества страниц, т.е. сначала нужно создать новый документ, скопировать в него эти две страницы а потом подогнать до одной. По поводу скопировать, то надо подумать, наверняка такая возможность существует, может копировать не постранично, а "пофрагментно"?


 
john_mag ©   (2005-11-24 12:33) [8]

Был печальный опыт... Надежда была на BookMarks : ставил две закладки одна на n странице, а вторая на n+1 странице и копировал то, что между ними. результат - скопирован только текст и ничего более... номер страницы и колонтитул за бортом.


 
Ботвин Дмитрий   (2005-11-24 13:05) [9]

john_mag ©   (24.11.05 12:09) [6]

> как полностью скопировать нужную страницу с коллонтитулами, с номером страницы и....

Через оле есть возможность доступа к колонтитулам, а вот про номер страницы я чё-то не понял? Какой в нем в твоем случае смысл если всё разместиться на одной странице? :-)))


 
john_mag ©   (2005-11-24 13:45) [10]

>Ботвин Дмитрий   (24.11.05 13:05) [9]
а вот про номер страницы я чё-то не понял? Какой в нем в твоем случае смысл если всё разместиться на одной странице? :-)))

написал один препод умную методичку и отдал её в РИО в тираж. Они печатают на формате А4. То-бишь две страницы на одной и перегибают пополам. Препод отдает файл такой: 1 страница, 2 страница и тд. а если печатать 2 страницы на одной, то нам уже нужны 1 и 100, 2 и 99, 3 и 98 страницы и тд. Далее препод отдает студентам методичку и говорит: откройте на странице № 55 , а где эта сраница? Вот в чем смысл номеров страниц!


 
umbra ©   (2005-11-24 13:53) [11]

колонтитулы старого документа, если они есть, надо присвоить новому (например, Documents(1).Sections(1).Footers(wdHeaderFooterPrimary) - это нижний колонтитул). Затем, надо выделить все в документе (Selection.WholeStory) и проверить номер страницы в конце выделения (Selection.Information(wdActiveEndPageNumber)). Затем уменьшать выделение кусками (Selection.End := Selection.End - 25) и проверять номер страницы. Так определяем конец второй страницы и копируем выделение, которое затем вставляем в новый документ и подгоняем под одну страницу.


 
umbra ©   (2005-11-24 13:54) [12]

колонтитулы старого документа, если они есть, надо присвоить новому (например, Documents(1).Sections(1).Footers(wdHeaderFooterPrimary) - это нижний колонтитул). Затем, надо выделить все в документе (Selection.WholeStory) и проверить номер страницы в конце выделения (Selection.Information(wdActiveEndPageNumber)). Затем уменьшать выделение кусками (Selection.End := Selection.End - 25) и проверять номер страницы. Так определяем конец второй страницы и копируем выделение, которое затем вставляем в новый документ и подгоняем под одну страницу.


 
ANB ©   (2005-11-24 15:38) [13]


> john_mag ©   (24.11.05 13:45) [10]

Намного проще поставить принтер с двухсторонней печатью. Он умеет делать брошюры. Просто сгибаешь пополам - и книжка готова.



Страницы: 1 вся ветка

Текущий архив: 2006.02.05;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.03 c
8-1124966742
Irinka
2005-08-25 14:45
2006.02.05
Как проигрывать звуковые файлы


2-1137774738
untitled
2006-01-20 19:32
2006.02.05
string в array of char


3-1133879911
Sergey_Masloff
2005-12-06 17:38
2006.02.05
NVL для NUMERIC в FireBird


2-1137650850
Nan
2006-01-19 09:07
2006.02.05
Авто инициализация переменной целого типа


1-1135773311
fishka
2005-12-28 15:35
2006.02.05
TidDecodeMIME - неверно декодирует?