0

我正在尝试使用 headers 方法生成一个通过 PHP 中的 HTML 代码包装它的 doc 文件。该方法工作正常,我得到了一个正确的 docx 文件。但是 docx 文件中没有分页符。无论文本有多长,它都在一页中。这是示例代码..

<?php
header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=demo.doc");
echo "<html>";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset= Windows-1251\">";
echo "<body>";
echo "<b>Random Text</b>";
echo "&lt;/body>";
echo "&lt;/html>";
?>

在发布这个问题之前,我还尝试了谷歌,并通过添加下面的代码提出了很多人解决了类似的问题。

echo "&lt;br style='mso-special-character:line-break; pageBreakBefore:auto'>";

但是,此解决方案不适用于我的情况。

4

3 回答 3

1
  1. 打开词
  2. 创建带有分页符的文档
  3. 在您喜欢的 zip 文件程序中打开 docx
  4. 查找内容

这是我使用 LibreOffice Writer 得到的结果:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
    <w:body>
        <w:p>
            <w:pPr>
                <w:pStyle w:val="style0"/>
            </w:pPr>
            <w:r>
                <w:rPr></w:rPr>
                <w:t>Before page break</w:t>
            </w:r>
        </w:p>
        <w:p>
            <w:pPr>
                <w:pStyle w:val="style0"/>
                <w:pageBreakBefore/>
            </w:pPr>
            <w:r>
                <w:rPr></w:rPr>
                <w:t>After</w:t>
            </w:r>
        </w:p>
        <w:sectPr>
            <w:type w:val="nextPage"/>
            <w:pgSz w:h="15840" w:w="12240"/>
            <w:pgMar w:bottom="1134" w:footer="0" w:gutter="0" w:header="0" w:left="1134" w:right="1134" w:top="1134"/>
            <w:pgNumType w:fmt="decimal"/>
            <w:formProt w:val="false"/>
            <w:textDirection w:val="lrTb"/>
        </w:sectPr>
    </w:body>
</w:document>
于 2013-02-21T05:38:44.400 回答
1

您只需在需要分页符的地方向 HTML 元素添加样式。

<h2 style="page-break-before: always;">Next Page</h2>

此标题将显示在新页面中。

于 2017-02-26T18:05:28.437 回答
0

我知道这是一个很老的问题,但这是我正在使用的,它工作得很好。

Docx XML 使用它来打破页面

<w:br w:type="page"/>

只需在您想要分页的任何地方使用它即可。

有关分页符的更多信息在这里

于 2015-05-25T04:07:49.047 回答