Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2009, 19:49   #1
Diego__
Форумчанин
 
Регистрация: 12.08.2009
Сообщений: 118
По умолчанию Отличия Fields в 2003 и 2007 Word-aх

Создаю новый документ Documents->Add() ...
Задаю размеры страниц
Код:
m_Document->GetSections()->GetLast()->GetPageSetup()->PutPageWidth(...);
m_Document->GetSections()->GetLast()->GetPageSetup()->PutPageHeight(...);
Добавляю изображения
Код:
Word::InlineShapePtr inlineImage = GetRange()->GetInlineShapes()->AddPicture(imagePath.GetString());
Word::ShapePtr shapePtr = inlineImage->ConvertToShape();
...
Добавляю Field
Код:
CComVariant fieldIncludeText(Word::wdFieldIncludeText);
_variant_t xmlShapePath(fileName);

Word::FieldPtr field = m_Document->Fields->Add(range, &fieldIncludeText, &xmlShapePath);
          
field->Update();
field->Unlink();
В добавляемом файле пустой документ с 1 WordArt-ом. (файл в прикреплении). Беру последний шейп (WordArt из прикрепления)и корректирую его

Код:
CComVariant count(m_Document->Shapes->Count);
wordArt = m_Document->Shapes->Item(&count);

wordArt->TextEffect->PutFontSize(roundFontSize);
wordArt->TextEffect->PutFontName(wordFontName);
wordArt->TextEffect->PutText(text.);

wordArt->PutLeft(CentimetersToPoints(leftTop.X));
wordArt->PutTop(CentimetersToPoints(leftTop.Y));
...
В 2003 Word-e все нормально, в 2007-ом после m_Document->Fields->Add(...) устанавливаются размеры файла в прикреплении и затираются все добавленные изображения. Почему это происходит? Что можно сделать, чтобы добиться результата как в 2003 Word-e? Истоки темы здесь, в последнем сообщении пришел к данной проблеме.
Вложения
Тип файла: rar wa.rar (1,002 байт, 6 просмотров)

Последний раз редактировалось Diego__; 18.09.2009 в 19:53.
Diego__ вне форума Ответить с цитированием
Старый 18.09.2009, 23:42   #2
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Начните с того, что при добавлении поля, после пути к вставляемому фрагменту, укажите 4-й параметр TRUE т добавьте в хвост 3-го
параметра после пробела "/* MERGEFORMAT". (Cлэш не должен быть удвоен)
Если это не поможет - можно попробовать задавать в xml файле для шейпа ранее установленные размеры страницы.
К сожалению, у 2003 и 2007 word разное xml представление.
А вообще,IMHO, этот топик лишний ... Можно было бы продолжить старый.

Последний раз редактировалось Aent; 19.09.2009 в 00:23.
Aent вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Совместимость макросов из exel 2003 с 2007 palleot Microsoft Office Excel 1 30.06.2009 15:38
VBA Сортировка 2007 vs. 2003 Acro Microsoft Office Excel 0 10.05.2009 23:58
из 2007 в 2003 samuil Microsoft Office Access 2 04.03.2009 11:59
Не работаем надстройка xla в 2007 excel (созданная в 2003-м) gysek Microsoft Office Excel 2 19.11.2008 12:06
2003 & 2007 Sk!f Microsoft Office Word 2 30.04.2008 13:55