Форум: "WinAPI";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
Вниз
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.011 c