使用javascript分页MSword文档文本

时间:2012-05-08 13:25:32

标签: javascript jquery pagination ms-word

我注意到当你将word文档剪切并粘贴到htmt文档中时(具体地说,在contenteditable div中)它包含很多元数据。我感兴趣的是一个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>

1 个答案:

答案 0 :(得分:2)

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

修改

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

再次编辑

以下是这种方法看起来很简单的一个小问题:

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

请注意,这不会像正常文档那样破坏段落(这是一个相当复杂的过程),而且我没有测试过这么多,所以肯定会有bug。把它想象成一个起点。您还必须自己从文档中删除所有非HTML元素。该脚本从#doc div读取,并将li作为页面放在页面底部的ul中。希望这可以帮助。