4

我正在使用 Docx dll 生成 pdf 文件,但无法在标题中添加图像,尽管我可以在 word 文件的内容部分添加图像。这是我的代码:

using (Novacode.DocX document = Novacode.DocX.Create(savePath))
    {

        // Add Header and Footer support to this document.
        document.AddHeaders();
        document.AddFooters();

        // Get the default Header for this document.
        Novacode.Header header_default = document.Headers.odd;

        // Add an Image to the docx file
        string imageName = "LOGO.png";
        string url = Request.MapPath("/PDFFolder/" + imageName);

        Novacode.Image img = document.AddImage(url);

        // Insert a Paragraph into the default Header.
        Novacode.Picture pic1 = img.CreatePicture();           
        Novacode.Paragraph p1 = header_default.InsertParagraph();
        header_default.Pictures.Add(pic1);           

        p1.Append("Some more text").Bold();


        // Add a new Paragraph to the document.           
        Novacode.Paragraph p = document.InsertParagraph();

        // Append some text.
        p.Append(textword).Font(new myDrawing.FontFamily("Arial"));

        // Get the default Footer for this document.
        Novacode.Footer footer_default = document.Footers.odd;


        // Insert a Paragraph into the default Footer.
        Novacode.Paragraph p3 = footer_default.InsertParagraph();
        p3.Append("Hello Footer.").Bold();


        // Save the document.
        document.Save();
    }

任何帮助都会很棒!

4

1 回答 1

4

我得到了我的问题的答案。实际上似乎Docx dll不支持在标题下的表格中显示图像。虽然他们已经给出了在表格中显示图像的方法并且也在他们的博客中显示,但我仍然无法使用标题部分中的表格显示图像,我可以通过使用下面给出的代码中的段落轻松完成:

// Insert pic and text into the default Header.
Novacode.Paragraph p1 = header_default.InsertParagraph();
p1.Direction = Novacode.Direction.LeftToRight;
p1.AppendPicture(pic1);

它工作正常,但是当您必须显示带有一些标题文本的图像时会出现问题。因为我们没有使用表格来显示图像,所以很难正确对齐图像和标题文本。在尝试了这么多解决方案和努力工作后,我没有找到任何支持和解决方案,终于找到了我的问题的解决方案。我们可以在一行中对齐标题图像和标题文本,而无需使用下面一行给出的表格:

p1.Append("Headertext").Bold().Position(30);

借助Position()方法,您可以将标题文本和标题图像对齐在一行中。希望这也会对某人有所帮助:)。

于 2013-04-12T04:16:29.310 回答