2012-05-08 5 views
2

私は、htmt文書(特にcontenteditable div)に単語文書をカット&ペーストして、多くのメタデータが含まれていることに気付きました。私が興味を持っているのは、このテキストを単語ドキュメントの "ページ"と同じくらい多くのdivにぺージするJavaScript関数です。私はそれが実際にその単語がレンダリングする方法をエミュレートすることなく可能であるかわからないページめくりMSword文書のテキストをJavaScriptで

<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> 

答えて

2

:あなたが慣れていない場合は

は、ここでワード文書は、ソースコードを見てからどのように見えるの簡略版ですテキスト私の理解では、新しいページの位置は、各ページに収まるコンテンツの量によって決まります。物理的なページ区切り(このメタデータに配置されている可能性があります)を探していない限り、実際のページがどこに分割されているかはわかりません。それはほとんどのもののHTMLの並べ替えを使用しているように見えるので

EDIT

は、それはあなたがレンダリングと高さの計算を行うためのDOMを操作Javascriptのソリューションを書くことができ可能です。あるページにいくつの要素が収まるかを知るために、ある種の「バイナリ検索」を行うことができます。その量の要素が見つかると、その要素が配置され、後続の要素に要素を追加し続けることができます。

EDIT AGAIN

はここで、このようなアプローチがどのように見えるかの迅速なフィドルです:これは、通常の文書のような段落を破壊しないことを

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

注(それはだはずですかなり複雑なプロセス)、私はこれをあまりテストしていないので、バグになる可能性があります。これを出発点と考えてください。 HTML以外の要素もすべてドキュメントから削除する必要があります。スクリプトは#doc divから読み取り、ページの末尾にulのページとしてliを配置します。お役に立てれば。

+0

ありがとうございます。解決策は文字数やいくつかのメタデータタグに基づいているかもしれません... –

+0

こんにちは@LukeGT、私は概念的に理解していると思いますが、あなたはそのショットを撮ることができますか? –

+1

確かに、私の編集を見て、素早いモックアップを見てください – LukeGT

関連する問題