使用 JavaScript 对 MSword 文档文本进行分页



我注意到当您将word文档剪切并粘贴到htmt文档中(特别是contenteditablediv(时,它包含大量元数据。我感兴趣的是一个JavaScript函数,它将把这个文本分页成与word文档中的"页面"一样多的div。

如果您不熟悉,以下是查看源代码时 Word 文档外观的缩写版本:

<div contenteditable="true" >
 <!--[if gte mso 9]><xml>
 <o:OfficeDocumentSettings>
 <o:AllowPNG/>
 </o:OfficeDocumentSettings>
    </xml><![endif]-->
        <!--lots more junk until get to actual content which is here:-->
     <p class="Default">
        <b><span style="font-size:14.0pt;font-family:Arial;color:windowtext">
          &nbsp;I am the actual title of this work. <o:p></o:p></span>
        </b>
     </p>

如果不实际模拟单词呈现文本的方式,我不确定这是否可能。 据我了解,新页面的位置取决于每个页面上可以容纳多少内容。 除非您正在寻找物理分页符(可能位于此元数据中(,否则我不确定您是否可以找到实际页面的划分位置。

编辑

由于它似乎主要使用HTML之类的东西,因此您可以编写一个Javascript解决方案来操纵DOM进行渲染和高度计算。 它可以进行一种"二叉搜索",以确定给定页面上可以容纳多少元素。 当找到该数量的元素时,它可以放置它们并继续向后续页面添加元素。

再次编辑

以下是这种方法可能是什么样子的快速摆弄:

http://jsfiddle.net/LukeGT/Vtdgh/2/

请注意,这不会像普通文档那样破坏段落(这是一个相当复杂的过程(,而且我没有测试过这么多,所以肯定会有错误。 将此视为起点。 您还必须自己从文档中删除所有非HTML元素。 该脚本从#docdiv 读取,并将li 作为页面放置在页面底部的ul中。 希望这有帮助。

最新更新