2

我注意到,当您将 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>
4

1 回答 1

2

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

编辑

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

再次编辑

以下是这种方法可能是什么样子的快速小提琴:

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

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

于 2012-05-08T13:30:47.580 回答