Как добавить водяной знак в файл word?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как добавить водяной знак в файл word?

Сообщение Anonymous »

Я хочу добавить водяной знак с помощью C#. Я пытаюсь добавить водяной знак с помощью С#, но при добавлении водяного знака в качестве заголовка он добавляется на все страницы файла Word, и когда я редактирую водяной знак с любой страницы файла Word, водяной знак редактируется на всех страницах. Когда водяной знак добавляется в качестве заголовка, это возможно, когда это происходит. Я не могу добиться этого, не добавляя заголовок, например, добавляя водяной знак на все страницы, и если я редактирую водяной знак на любой странице, он не меняется на всех страницах.
Это решение Я попытался добавить водяной знак в Word.

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

public class Watermark
{
private Application wordApp;
private Document doc;

public Watermark(Application wordApp, Document doc)
{
this.wordApp = wordApp;
this.doc = doc;
}

public void AddCenteredTextWatermark(string watermarkText)
{
foreach (Section section in doc.Sections)
{
// Access the primary header in each section to add the watermark
HeaderFooter header = section.Headers[WdHeaderFooterIndex.wdHeaderFooterPrimary];

// Clear any existing watermark shapes in the header
foreach (Shape shape in header.Shapes)
{
if (shape.Type == MsoShapeType.msoTextEffect)
{
shape.Delete();
}
}

// Add the watermark shape to the header
Shape watermarkShape = header.Shapes.AddTextEffect(
MsoPresetTextEffect.msoTextEffect1,
watermarkText,
"Arial", // Font name
50, // Font size
MsoTriState.msoTrue, // Bold
MsoTriState.msoFalse, // Not italic
0, // Position from the left
0  // Position from the top
);

// Format the watermark appearance
watermarkShape.Fill.Solid();
watermarkShape.Fill.ForeColor.RGB = (int)WdColor.wdColorGray25;
watermarkShape.Line.Visible = MsoTriState.msoFalse;
watermarkShape.WrapFormat.Type = WdWrapType.wdWrapBehind;
watermarkShape.Rotation = -45;

// Center the watermark on the page
watermarkShape.Left = (float)(doc.PageSetup.PageWidth - watermarkShape.Width) / 2;
watermarkShape.Top = (float)(doc.PageSetup.PageHeight - watermarkShape.Height) / 2;

// Set positioning relative to the page
watermarkShape.RelativeHorizontalPosition = WdRelativeHorizontalPosition.wdRelativeHorizontalPositionPage;
watermarkShape.RelativeVerticalPosition = WdRelativeVerticalPosition.wdRelativeVerticalPositionPage;

// Lock aspect ratio and align text to prevent distortion
watermarkShape.LockAspectRatio = MsoTriState.msoTrue;
watermarkShape.TextEffect.Alignment = MsoTextEffectAlignment.msoTextEffectAlignmentCentered;

// Prevent users from resizing the watermark shape
watermarkShape.LockAspectRatio = MsoTriState.msoTrue;
}
}
}
=>Используя это решение, он добавляет водяной знак в файл Word, и его также можно редактировать. Потому что он добавляется как заголовок, но когда я вручную удаляю заголовок в файле Word, он также удаляет водяной знак, потому что водяной знак добавляется в заголовок. Теперь я ожидаю этого решения. сначала не следует добавлять водяной знак в качестве заголовка. И водяной знак добавляется на все страницы файла Word. Но не в качестве заголовка. Второй водяной знак должен быть редактируемым, и когда я редактирую водяной знак, он должен меняться на всех страницах файла Word.

Подробнее здесь: https://stackoverflow.com/questions/791 ... n-wordfile
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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