OpenXML генерирует верхнюю маржу при добавлении изображения на страницы, не являющиеся МАНАC#

Место общения программистов C#
Anonymous
OpenXML генерирует верхнюю маржу при добавлении изображения на страницы, не являющиеся МАНА

Сообщение Anonymous »

Код: Выделить всё

    private void AddHeaderToAllPages(MainDocumentPart mainPart, byte[] headerImageBytes, long widthEmus, long heightEmus)
{
var headerPart = mainPart.AddNewPart();
var header = new Header();
var paragraph = new Paragraph();
var run = new Run();

var imagePart = headerPart.AddImagePart(ImagePartType.Jpeg);
using (var stream = new MemoryStream(headerImageBytes))
{
imagePart.FeedData(stream);
}

var element =
new Drawing(
new WP.Inline(
new WP.Extent { Cx = widthEmus, Cy = heightEmus },
new WP.EffectExtent
{
LeftEdge = 0L, TopEdge = 0L,
RightEdge = 0L, BottomEdge = 0L
},
new WP.DocProperties { Id = 1U, Name = "headersImage" },
new WP.NonVisualGraphicFrameDrawingProperties(new A.GraphicFrameLocks { NoChangeAspect = true }),
new A.Graphic(
new A.GraphicData(
new Pic.Picture(
new Pic.NonVisualPictureProperties(
new Pic.NonVisualDrawingProperties { Id = 0U, Name = "headersImage" },
new Pic.NonVisualPictureDrawingProperties()
),
new Pic.BlipFill(
new A.Blip { Embed = headerPart.GetIdOfPart(imagePart) },
new A.Stretch(new A.FillRectangle())
),
new Pic.ShapeProperties(
new A.Transform2D(
new A.Offset { X = 0L, Y = 0L },
new A.Extents { Cx = widthEmus, Cy = heightEmus }
),
new A.PresetGeometry(new A.AdjustValueList()) { Preset = A.ShapeTypeValues.Rectangle }
)
)
) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" }
)
) { DistanceFromTop = 0U, DistanceFromBottom = 0U, DistanceFromLeft = 0U, DistanceFromRight = 0U }
);

run.Append(element);
paragraph.Append(run);

header.Append(paragraph);
headerPart.Header = header;

var sectionProperties = mainPart.Document.Body!.Elements().FirstOrDefault();
if (sectionProperties == null)
{
sectionProperties = new SectionProperties();
mainPart.Document.Body.Append(sectionProperties);
}

// Se a primeira página for diferente, adicione a tag TitlePage
sectionProperties.PrependChild(new TitlePage());

// Adiciona o cabeçalho apenas para as páginas subsequentes
var headerReference = new HeaderReference { Type = HeaderFooterValues.Default, Id = mainPart.GetIdOfPart(headerPart) };
sectionProperties.Append(headerReference);
}
Этот код является частью других, которые создают мой Docx, в этой части он добавляет заголовок ко всем страницам, которые не являются основными, однако, с маржой, которая практически невозможно удалить, я не знаю точно, почему он кажется, я считаю, что OpenXML помещает его автоматически, потому что я также вижу его в нижнем колоде (другая часть кода).>

Подробнее здесь: https://stackoverflow.com/questions/794 ... main-pages

Вернуться в «C#»