У меня есть .docx-шаблон с «контролем содержимого изображения», который помещается внутри фигуры. Я успешно вставил выбранный пользователем образ в эту конкретную область, так как пользователь выбрал изображения разных размеров. Я ищу решение для программной регулировки масштаба по высоте и ширине как «Контроль содержимого изображения», так и контейнер (Shape) , Я использую это решение для вставки изображений в мой .docx шаблона: http://www.codeproject.com/KB/office/Word_2007_Images.aspxИзменение размера изображения в документе Word Программно
1
A
ответ
0
Для этих вещей, я часто нахожу наиболее полезный ответ может исходить от записи макроса, делая то, что вы хотите, чтобы программа делать, то просматривая код, созданный макросом, и при необходимости настраивая его. Макрос покажет вам, как использовать объекты Word, чтобы делать то, что вы хотите сделать.
0
Это вызвало у меня много неприятностей, но я нашел решение:
//Get SdtElement (can be a block, run... so I use the base class) with corresponding Tag
SdtElement block = doc.MainDocumentPart.Document.Body.Descendants<SdtElement>()
.FirstOrDefault(sdt => sdt.SdtProperties.GetFirstChild<Tag>()?.Val == contentControlTag)
//Get First drawing Element and get the original sizes of placeholder SDT
//I use SDT placeholder size as maximum size to calculate picture size with correct ratios
Drawing sdtImage = block.Descendants<Drawing>().First();
double sdtWidth = sdtImage.Inline.Extent.Cx;
double sdtHeight = sdtImage.Inline.Extent.Cy;
double sdtRatio = sdtWidth/sdtHeight;
*Calculate final width/height of image*
//Resize picture placeholder
sdtImage.Inline.Extent.Cx = finalWidth;
sdtImage.Inline.Extent.Cy = finalHeight;
//Change width/height of picture shapeproperties Transform
//This will override above height/width until you manually drag image for example
sdtImage.Inline.Graphic.GraphicData
.GetFirstChild<DocumentFormat.OpenXml.Drawing.Pictures.Picture>()
.ShapeProperties.Transform2D.Extents.Cx = finalWidth;
sdtImage.Inline.Graphic.GraphicData
.GetFirstChild<DocumentFormat.OpenXml.Drawing.Pictures.Picture>()
.ShapeProperties.Transform2D.Extents.Cy = finalHeight;
После всего этого я выбираю для удаления элемента управления содержимым и вставьте код из sdtContent так же, как запустить в моем но это необязательно, конечно :)
Смежные вопросы
- 1. Изменение размера изображения в контейнере программно
- 2. Изменение размера изображения программно в C#
- 3. Сделать простые изменения в документе Word программно
- 4. Редактирование поля слияния в документе Word Программно
- 5. Изменение размера страницы в документе Rmarkdown
- 6. Изменение размера UITableView программно
- 7. Изменение размера UITableViews программно
- 8. Изменение размера UIView программно
- 9. Изменение размера Tableview программно
- 10. Изменение размера шрифта в документе PDF?
- 11. Получение размера изображения программно
- 12. Php Изменение размера изображения Увеличение размера изображения
- 13. getElementByID в документе Word
- 14. Изменение размера изображения для Codeigniter Изменение размера только одного изображения
- 15. Изменение цвета изображения программно
- 16. Изменение размера окна браузера программно
- 17. Изменение размера кадра таблицы программно
- 18. Изменение размера OL3 функции программно
- 19. Изменение размера раскадровки uitableview программно?
- 20. Изменение размера изображения ASP.NET
- 21. Изменение размера изображения IFrame
- 22. Изменение размера изображения
- 23. Изменение источника изображения программно
- 24. QML изменение размера изображения
- 25. Изменение размера карты изображения
- 26. Изменение размера растрового изображения
- 27. (C#) Изменение размера изображения
- 28. Как сгенерировать несколько таблиц в документе Word программно
- 29. Как программно редактировать все гиперссылки в документе Word?
- 30. Программно удалить весь скрытый текст в документе Word
Thnks Lance, но я ищу решение «OPENXML» – Damon