2

Word 文書を htmt 文書 (具体的にはcontenteditablediv) にカット アンド ペーストすると、大量のメタ データが含まれていることに気付きました。私が興味を持っているのは、このテキストを単語ドキュメントの「ページ」と同じ数の div にページ分割する JavaScript 関数です。

慣れていない場合は、ソース コードから見た 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のようなものを使用しているように見えるので、レンダリングと高さの計算を行うためにDOMを操作するJavascriptソリューションを作成することができます。ある種の「二分探索」を実行して、特定のページに収まる要素の数を把握することができます。その量の要素が見つかると、それらを配置して、次のページに要素を追加し続けることができます。

もう一度編集

このようなアプローチがどのように見えるかを簡単に説明します。

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

これは通常のドキュメントのように段落を壊さないことに注意してください(かなり複雑なプロセスです)。私はこれをあまりテストしていないので、バグがあるはずです。これを出発点と考えてください。また、ドキュメントからHTML以外の要素をすべて自分で削除する必要があります。スクリプトは#docdivから読み取り、ページの下部にliページとして'sを配置します。ulお役に立てれば。

于 2012-05-08T13:30:47.580 に答える