По сути, я пытаюсь центрировать изображение по горизонтали относительно страницы и снова выровнять его по низу по вертикали относительно страницы. Изображение находится в нижнем колонтитуле. Судя по всему, с шириной, высотой и т. д. все в порядке. Заранее спасибо!
private static void AddImageToFooter(FooterPart footerPart, string imagePath)
{
ImagePart imagePart = footerPart.AddImagePart(ImagePartType.Png);
using (FileStream stream = new FileStream(imagePath, FileMode.Open))
{
imagePart.FeedData(stream);
}
string relationshipId = footerPart.GetIdOfPart(imagePart);
int imageWidthPx = 795;
int imageHeightPx = 137;
long imageWidthEmus = imageWidthPx * 9525;
long imageHeightEmus = imageHeightPx * 9525;
Drawing imageElement = new Drawing(
new DW.Inline(
new DW.Extent() { Cx = imageWidthEmus, Cy = imageHeightEmus },
new DW.EffectExtent() { LeftEdge = 0, TopEdge = 0L, RightEdge = 0L, BottomEdge = 0L },
new DW.HorizontalAlignment() { },
new DW.VerticalAlignment() { },
new DW.DocProperties() { Id = (UInt32Value)1U, Name = "Picture" },
new DW.NonVisualGraphicFrameDrawingProperties(new A.GraphicFrameLocks() { NoChangeAspect = true }),
new A.Graphic(
new A.GraphicData(
new PIC.Picture(
new PIC.NonVisualPictureProperties(
new PIC.NonVisualDrawingProperties() { Id = (UInt32Value)0U, Name = "New Image" },
new PIC.NonVisualPictureDrawingProperties()),
new PIC.BlipFill(
new A.Blip() { Embed = relationshipId },
new A.Stretch(new A.FillRectangle())),
new PIC.ShapeProperties(
new A.Transform2D(
new A.Offset() { X = 0L, Y = 0L },
new A.Extents() { Cx = imageWidthEmus, Cy = imageHeightEmus }),
new A.PresetGeometry(new A.AdjustValueList()) { Preset = A.ShapeTypeValues.Rectangle })
)
)
{ Uri = "http://schemas.openxmlformats.org/drawi ... 06/picture" }
)
)
{ DistanceFromTop = (UInt32Value)0U, DistanceFromBottom = (UInt32Value)0U, DistanceFromLeft = (UInt32Value)0U, DistanceFromRight = (UInt32Value)0U, EditId = "50D07946" }
);
Paragraph paragraph = new Paragraph(new Run(imageElement));
footerPart.Footer.Append(paragraph);
footerPart.Footer.Save();
}
Я пробовал несколько вещей, таких как Anchor(), но по какой-то причине мой документ Word не открывается, я предполагаю, что он не поддерживается, или я Я просто делаю это неправильно, приведу фрагмент того, что пробовал ранее:
long horizontalPositionEmus = (totalPageWidthEmus - imageWidthEmus) / 2; // Center horizontally
long verticalPositionEmus = totalPageHeightEmus - imageHeightEmus;
Drawing imageElement = new Drawing(
new DW.Anchor(
new DW.SimplePosition() { X = horizontalPositionEmus, Y = verticalPositionEmus },
new DW.HorizontalPosition() { RelativeFrom = DW.HorizontalRelativePositionValues.Page },
new DW.VerticalPosition() { RelativeFrom = DW.VerticalRelativePositionValues.Page },
new DW.Extent() { Cx = imageWidthEmus, Cy = imageHeightEmus },
// Other properties for wrapping, effects, etc.
// ...
Drawing imageElement = new Drawing(
new DW.Anchor(
new DW.SimplePosition() { X = 0L, Y = 0L },
new DW.HorizontalPosition() { RelativeFrom = DW.HorizontalRelativePositionValues.Page },
new DW.VerticalPosition() { RelativeFrom = DW.VerticalRelativePositionValues.Page },
new DW.Extent() { Cx = imageWidthEmus, Cy = imageHeightEmus },
new DW.EffectExtent() { LeftEdge = 0L, TopEdge = 0L, RightEdge = 0L, BottomEdge = 0L },
new DW.WrapSquare(),
// ...
И это просто не работает, или я что-то упускаю:
Drawing imageElement = new Drawing(
new DW.Inline(
new DW.Extent() { Cx = imageWidthEmus, Cy = imageHeightEmus },
new DW.EffectExtent() { LeftEdge = 0L, TopEdge = 0L, RightEdge = 0L, BottomEdge = 0L },
new DW.DocProperties() { Id = (UInt32Value)1U, Name = "Picture" },
new DW.NonVisualGraphicFrameDrawingProperties(new A.GraphicFrameLocks() { NoChangeAspect = true }),
Подробнее здесь: https://stackoverflow.com/questions/778 ... rp-to-word
Горизонтальное и вертикальное выравнивание изображения из C# в Word ⇐ C#
Место общения программистов C#
-
Anonymous
1727074305
Anonymous
По сути, я пытаюсь центрировать изображение по горизонтали относительно страницы и снова выровнять его по низу по вертикали относительно страницы. Изображение находится в нижнем колонтитуле. Судя по всему, с шириной, высотой и т. д. все в порядке. Заранее спасибо!
private static void AddImageToFooter(FooterPart footerPart, string imagePath)
{
ImagePart imagePart = footerPart.AddImagePart(ImagePartType.Png);
using (FileStream stream = new FileStream(imagePath, FileMode.Open))
{
imagePart.FeedData(stream);
}
string relationshipId = footerPart.GetIdOfPart(imagePart);
int imageWidthPx = 795;
int imageHeightPx = 137;
long imageWidthEmus = imageWidthPx * 9525;
long imageHeightEmus = imageHeightPx * 9525;
Drawing imageElement = new Drawing(
new DW.Inline(
new DW.Extent() { Cx = imageWidthEmus, Cy = imageHeightEmus },
new DW.EffectExtent() { LeftEdge = 0, TopEdge = 0L, RightEdge = 0L, BottomEdge = 0L },
new DW.HorizontalAlignment() { },
new DW.VerticalAlignment() { },
new DW.DocProperties() { Id = (UInt32Value)1U, Name = "Picture" },
new DW.NonVisualGraphicFrameDrawingProperties(new A.GraphicFrameLocks() { NoChangeAspect = true }),
new A.Graphic(
new A.GraphicData(
new PIC.Picture(
new PIC.NonVisualPictureProperties(
new PIC.NonVisualDrawingProperties() { Id = (UInt32Value)0U, Name = "New Image" },
new PIC.NonVisualPictureDrawingProperties()),
new PIC.BlipFill(
new A.Blip() { Embed = relationshipId },
new A.Stretch(new A.FillRectangle())),
new PIC.ShapeProperties(
new A.Transform2D(
new A.Offset() { X = 0L, Y = 0L },
new A.Extents() { Cx = imageWidthEmus, Cy = imageHeightEmus }),
new A.PresetGeometry(new A.AdjustValueList()) { Preset = A.ShapeTypeValues.Rectangle })
)
)
{ Uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" }
)
)
{ DistanceFromTop = (UInt32Value)0U, DistanceFromBottom = (UInt32Value)0U, DistanceFromLeft = (UInt32Value)0U, DistanceFromRight = (UInt32Value)0U, EditId = "50D07946" }
);
Paragraph paragraph = new Paragraph(new Run(imageElement));
footerPart.Footer.Append(paragraph);
footerPart.Footer.Save();
}
Я пробовал несколько вещей, таких как Anchor(), но по какой-то причине мой документ Word не открывается, я предполагаю, что он не поддерживается, или я Я просто делаю это неправильно, приведу фрагмент того, что пробовал ранее:
long horizontalPositionEmus = (totalPageWidthEmus - imageWidthEmus) / 2; // Center horizontally
long verticalPositionEmus = totalPageHeightEmus - imageHeightEmus;
Drawing imageElement = new Drawing(
new DW.Anchor(
new DW.SimplePosition() { X = horizontalPositionEmus, Y = verticalPositionEmus },
new DW.HorizontalPosition() { RelativeFrom = DW.HorizontalRelativePositionValues.Page },
new DW.VerticalPosition() { RelativeFrom = DW.VerticalRelativePositionValues.Page },
new DW.Extent() { Cx = imageWidthEmus, Cy = imageHeightEmus },
// Other properties for wrapping, effects, etc.
// ...
Drawing imageElement = new Drawing(
new DW.Anchor(
new DW.SimplePosition() { X = 0L, Y = 0L },
new DW.HorizontalPosition() { RelativeFrom = DW.HorizontalRelativePositionValues.Page },
new DW.VerticalPosition() { RelativeFrom = DW.VerticalRelativePositionValues.Page },
new DW.Extent() { Cx = imageWidthEmus, Cy = imageHeightEmus },
new DW.EffectExtent() { LeftEdge = 0L, TopEdge = 0L, RightEdge = 0L, BottomEdge = 0L },
new DW.WrapSquare(),
// ...
И это просто не работает, или я что-то упускаю:
Drawing imageElement = new Drawing(
new DW.Inline(
new DW.Extent() { Cx = imageWidthEmus, Cy = imageHeightEmus },
new DW.EffectExtent() { LeftEdge = 0L, TopEdge = 0L, RightEdge = 0L, BottomEdge = 0L },
new DW.DocProperties() { Id = (UInt32Value)1U, Name = "Picture" },
new DW.NonVisualGraphicFrameDrawingProperties(new A.GraphicFrameLocks() { NoChangeAspect = true }),
Подробнее здесь: [url]https://stackoverflow.com/questions/77800388/horizontal-and-vertical-alignment-of-an-image-from-c-sharp-to-word[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия