将word转为PDF时,源word中的背景图片水印并没有跟着转到PDF中,导致PDF没有背景,请问这个问题如何解决?
Template.docx (88.4 KB)
我已经升级到21.7 可是转换成PDF后还是没有水印,需要我做什么特殊处理吗?
已下是我转换成PDF时的代码:
private static Stream ConvertPDF(Stream wordfile, string jobNumber)
{
Document doc = new Document(wordfile);
NodeCollection comments = doc.GetChildNodes(NodeType.Comment, true);
comments.Clear();
doc.AcceptAllRevisions();
foreach (Section section in doc.Sections)
{
// Up to three different footers are possible in a section (for first, even and odd pages)
// We check and delete all of them
HeaderFooter header = section.HeadersFooters[HeaderFooterType.HeaderFirst];
header?.Remove();
header = section.HeadersFooters[HeaderFooterType.HeaderPrimary];
header?.Remove();
header = section.HeadersFooters[HeaderFooterType.HeaderEven];
header?.Remove();
HeaderFooter footer = section.HeadersFooters[HeaderFooterType.FooterFirst];
footer?.Remove();
// Primary footer is the footer used for odd pages
footer = section.HeadersFooters[HeaderFooterType.FooterPrimary];
footer?.Remove();
footer = section.HeadersFooters[HeaderFooterType.FooterEven];
footer?.Remove();
}
DocumentBuilder builder = new DocumentBuilder(doc);
foreach (Section sec in doc.Sections)
{
PageSetup pageSetup = sec.PageSetup;
// Specify if we want headers/footers of the first page to be different from other pages.
// You can also use PageSetup.OddAndEvenPagesHeaderFooter property to specify
// Different headers/footers for odd and even pages.
pageSetup.DifferentFirstPageHeaderFooter = false;
}
AddHeaderOrFooter(jobNumber, builder, HeaderFooterType.HeaderPrimary);
AddCurPageNumber( builder, HeaderFooterType.FooterPrimary);
// Save the document in PDF format.
// doc.Save(pdf);
MemoryStream dstStream = new MemoryStream();
doc.Save(dstStream, SaveFormat.Pdf);
// Rewind the stream position back to zero so it is ready for the next reader.
dstStream.Position = 0;
return dstStream;
}
水印图像位于文档的页眉中,您正在从文档中删除页眉和页脚。 因此,它不会出现在输出 PDF 中。 请从您的应用程序中删除上述代码以获得所需的输出。
如果在删除后添加页眉和页脚,请在将文档保存为 PDF 之前调用 Document.UpdatePageLayout 方法。 希望这对你有帮助。
如果您仍然遇到问题,请压缩并附上示例控制台应用程序以在我们最后重现问题。 我们将调查该问题并为您提供更多相关信息。
您的帖子中缺少 AddHeaderOrFooter 和 AddCurPageNumber 方法的代码。