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

私は自分の問題の答えを得ました。実際、Docxdllはヘッダーの下のテーブルに画像を表示することをサポートしていないようです。彼らはテーブルに画像を表示する方法を与えており、ブログにも表示されていますが、それでもヘッダーセクションにテーブルを使用して画像を表示することはできませんでした。これは、以下のコードのような段落を使用して簡単に実行できます。

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

また、正常に機能しますが、ヘッダーテキストを含む画像を表示する必要がある場合に問題が発生します。画像の表示にテーブルを使用していないため、画像とヘッダーテキストの両方を適切に配置することが困難になります。たくさんの解決策と努力を重ねた結果、サポートや解決策が見つからなかったので、ようやく問題の解決策を見つけました。以下の1行の表を使用せずに、ヘッダー画像とヘッダーテキストの両方を1行に揃えることができます。

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

Position()メソッドを使用すると、ヘッダーテキストとヘッダー画像の両方を1行に揃えることができます。これが誰かにも役立つことを願っています:)。

于 2013-04-12T04:16:29.310 に答える