Word OLE Automation - удалить первую страницу и манипулировать верхним и нижним колонтитулом - PullRequest
3 голосов
/ 22 июля 2010

Я использую PHP для запуска Word Automation и манипулирования документами Word, но я думаю, что это можно сделать на любом другом языке.Что мне нужно сделать, это довольно просто, мне нужно удалить первую страницу и добавить верхний и нижний колонтитулы.

Вот мой код:

 $word = new COM('word.applicantion');
 $word->Documents->Open('xxx.docx');
 $word->Documents[1]->SaveAs($result_file_name, 12);

Любые образцы?

Ответы [ 2 ]

2 голосов
/ 25 июля 2010

Это способ сделать это в VBA. Это может быть довольно просто перенесено на PHP.

Sub RemoveFirstPageAndAddHeaderFooter()
    Dim d As Document
    Set d = ActiveDocument
    Dim pageOne As Range
    Set pageOne = d.Bookmarks("\page").Range
    pageOne.Select
    Selection.Delete
    d.Sections(1).Headers(1).Range.Text = "Some text"
    d.Sections(1).Footers(1).Range.InlineShapes.AddPicture "C:\beigeplum.jpg", False, True
End Sub

Обратите внимание на ...InlineShapes.AddPicture - на вас будет возложена обязанность убедиться, что изображение соответствует нужному размеру. Если вы хотите больше контроля над этим, вы должны использовать .Footers(1).Shapes.AddPicture вместо этого, так что вы можете установить ширину / высоту, верх / лев и т. Д.

1 голос
/ 16 августа 2010

попробовать { $ word = new COM ("word.application") // $ word = new COM ("C: \ x.docx"); или умри («не могу создать экземпляр слова»);

        //bring word to the front
        $word->Visible = 1;

        //open a word document
        $word->Documents->Open("file.docx");

        // remove first page
        $range = $word->ActiveDocument->Bookmarks("\page");
        $range->Select();
        $word->Selection->Delete();

        //save the document as docx
        $word->Documents[1]->SaveAs("modified_file.docx", 12); // SaveAs('filename', format) // format: 0 - same?, 1 - doc?, 2 - text,  4 - text other encoding
    }
    catch(Exception $e)
    {
        echo "error class.document.php - convert_to_docx: $e 20100816.01714";
    }

    //close word
    if($word)
        $word->Quit();

    //free object resources
    //$word->Release();
    $word = null;
...