Hi, we are using c-sharp to insert watermarks into templates. Some watermarks do not show up on the templates and upon investigation I have found that the ‘Washout’ property has been checked.
I would like to know if there is a way to set the property to unchecked using c-sharp?
Thanks,
Aaron
Hi Aaron,
Thanks for your inquiry. We will consider adding appropriate properties in our API to be able to enable/disable Sepia and Washout color modes for images. I have logged a new feature request in our bug tracking system. The issue ID is WORDSNET-7103. Your request has been linked to this feature and you will be notified as soon as it is available. Sorry for the inconvenience.
Best Regards,
Hi, I would like to know if there is a work-a-round for our current issue?
Hi Aaron,
Thanks for your inquiry. Could you please attach your Word document and code here for testing? I will investigate the issue on my side and provide you more information.
Best Regards,
Hi,
I’ve attached a vs2005 solution with examples of “working and not working” watermarks.
Hi Aaron,
Thanks for your inquiry. There are many DrawingML nodes inside different headers/footers in your watermark documents (the documents you’re using as watermark for example ‘NotWorking.docx’). I would suggest you first convert this whole document to an image format e.g. PNG and then generate a clean intermediate document by placing this PNG at the first header. You can then finally copy the contents of the headers/footers from this document into your template document as follows:
Document doc = new Document(@"C:\Temp\notworking.doc");
// Save document to an Image format
MemoryStream imgStream = new MemoryStream();
doc.Save(imgStream, SaveFormat.Png);
// Load this Image and place it in first header
Document docB = new Document();
using(Image img = Image.FromStream(imgStream))
{
double pageWidth = doc.Sections[0].PageSetup.PageWidth;
double pageHeight = doc.Sections[0].PageSetup.PageHeight;
docB.Sections[0].PageSetup.PageWidth = pageWidth;
docB.Sections[0].PageSetup.PageHeight = pageHeight;
DocumentBuilder builder = new DocumentBuilder(docB);
builder.MoveToHeaderFooter(HeaderFooterType.HeaderFirst);
Shape watermark = builder.InsertImage(img);
if (img.Width > pageWidth)
watermark.Width = pageWidth;
else
watermark.Width = img.Width - 50;
if (img.Height > pageHeight)
watermark.Height = pageHeight;
else
watermark.Height = img.Height - 50;
watermark.RelativeHorizontalPosition = Aspose.Words.Drawing.RelativeHorizontalPosition.Page;
watermark.RelativeVerticalPosition = Aspose.Words.Drawing.RelativeVerticalPosition.Page;
watermark.WrapType = Aspose.Words.Drawing.WrapType.None;
watermark.VerticalAlignment = Aspose.Words.Drawing.VerticalAlignment.Top;
}
// At this point clean watermark document is built
// Now merge the contents of the headers/footers
// in your template document and watermark document as follows
Document docA = new Document(@"C:\Temp\warn45.doc");
DocumentBuilder builderA = new DocumentBuilder(docA);
// Loop through all sections in the B document
foreach(Section sectB in docB.Sections)
{
Section sectA = null;
int sectBIndex = docB.Sections.IndexOf(sectB);
// Check whether document A conteins section with same index
if (docA.Sections.Count > sectBIndex)
{
// Get correcponding section
sectA = docA.Sections[sectBIndex];
}
else
{
// Insert empty section
builderA.MoveToDocumentEnd();
builderA.InsertBreak(BreakType.SectionBreakContinuous);
sectA = builderA.CurrentSection;
}
// Loop throught all Headers/Footers in the B document
foreach(HeaderFooter hfB in sectB.HeadersFooters)
{
// Check whether current section from docA conteins
// Header/Footer with the same type as h/f from docB
if (sectA.HeadersFooters[hfB.HeaderFooterType] != null)
{
// Append content from h/f B to h/f A
foreach(Node childB in hfB.ChildNodes)
{
// Import node
Node childA = docA.ImportNode(childB, true, ImportFormatMode.KeepSourceFormatting);
// Appent node to h/f
sectA.HeadersFooters[hfB.HeaderFooterType].AppendChild(childA);
}
}
else
{
// Copy whole h/f
Node hfA = docA.ImportNode(hfB, true, ImportFormatMode.KeepSourceFormatting);
// Insert h/f
sectA.HeadersFooters.Add(hfA);
}
}
}
// Save output document
docA.Save(@"C:\Temp\finalout.doc");
I hope, this helps.
Best Regards,