7

私の Web サイトにコンテンツを送信するユーザーは Word を使用しているため、大量の Word ドキュメントを HTML に変換する必要があります。基本的な書式設定 (見出し、リスト、強調) のみを保存し、画像は保存したくありません。

それらを Libre Office の「HTML として保存」で変換すると、結果のファイルは巨大です。独自のスパンで!)。

私はこのスクリプトを試しました: http://www.techrepublic.com/blog/opensource/how-to-convert-doc-and-odf-files-to-clean-and-lean-html/3708 tidy と sed に基づいて、約 150K にサイズを縮小しましたが、まだ多くの役に立たない SPAN があります。

Kompozer (HTML エディター) にコピーして貼り付け、HTML として保存しようとしました。しかし、ラテン語以外 (ヘブライ語) のすべての文字を「⋅」などのエンティティに変換したため、サイズが 750K に増加しました。

私はdocvertを試しました:https://github.com/holloway/docvert/issues/6しかし、依存関係の無限のルートのように見える別のライブラリなどを必要とするpythonライブラリが必要であることがわかりました...

Office ドキュメントからきれいな HTML を作成する簡単な方法はありますか?

4

6 に答える 6

1

この質問は古いと思いますが、他の回答は実際には質問に答えていません。PHP コードを書くことに抵抗がなければ、CubicleSoft Ultimate Web Scraper Toolkit には TagFilter というクラスがあります。

https://github.com/cubiclesoft/ultimate-web-scraper/blob/master/support/tag_filter.php

オプションの配列と HTML として解析するデータの 2 つを渡します。

壊れた HTML をクリーンアップするには、TagFilter::GetHTMLOptions() のデフォルト オプションが出発点として機能します。これらのオプションは、有効な HTML コンテンツの基礎を形成し、他に何もせずに、Simple HTML DOM のような別のツールが DOM モデルで正しく解析できるように、入力データをクリーンアップします。

ただし、このクラスを使用するもう 1 つの方法は、既定のオプションを変更し、オプション配列に「callback」オプションを追加することです。HTML 内のすべてのタグに対して、指定されたコールバック関数が呼び出されます。コールバックは、各タグで何をすべきかを返すことが期待されており、ここで TagFilter の真の力が発揮されます。特定のタグとその属性の一部またはすべてを保持する (またはそれらを変更する)、タグを削除して内部コンテンツを保持する、タグを保持してコンテンツを削除する、コンテンツを変更する (タグを閉じるため)、またはタグと内部コンテンツの両方を取り除きます。このアプローチにより、非常に複雑な HTML に対して非常に洗練された制御が可能になり、入力が 1 回のパスで処理されます。TagFilter の使用例については、同じリポジトリのテスト スイートを参照してください。

唯一の欠点は、単純な HTML DOM のようなものは DOM のようなモデルに基づいて物事を選択するのに対し、コールバックは各呼び出しの間の場所を追跡する必要があることです。しかし、処理されているドキュメントに「id」や「class」などがある場合、それは唯一の欠点です...ほとんどの Word/Libre HTML コンテンツにはありません。つまり、DOM 処理ツールに関する限り、認識できない/解析できない HTML の巨大な塊です。行く。

于 2015-04-11T21:38:27.733 に答える
1

MS Word 自体がドキュメントを HTML として保存するオプションを提供することに気付くまで、私はhttp://word2cleanhtml.com/を使用していました。

これを選択すると、.docx ファイルは .html になり、私が見た Word doc の最高の html バージョンです。これらすべてのオンライン ツールよりも確実に優れています。

于 2013-09-28T07:17:50.697 に答える
0

あなたの状況では、Word 文書の主要部分を 1 行ずつ変換してから、戻って追加のタグをクリーンアップする必要がある場合があります。このアプローチを気にしない場合は、この解決策を検討してください...

  1. Word ドキュメントを Web ページとして保存した後、同じ Web ページを Notepad++ で開きます。
  2. 次に、そのドキュメントの置換機能を使用します
  3. 検索ボックス内に <[^>]+> と入力します
  4. この同じウィンドウの検索モードで、「正規表現」を選択します

その時点から行う必要があるのは、置換するタグが表示されるまで [次を検索] をクリックし、置換する必要があるタグごとに [置換] をクリックすることだけです。"Replace with:" ボックスが空であることを確認してください。

もっと便利な方法があるかどうかはわかりませんが、この方法は 100% 無料で、Notepad++ を介した HTML タグのクリーンアップ処理が簡単です。

インライン スタイルを外部 CSS に変換する限り (不要なタグを置き換えた後の 2 番目のプロセスとしてお勧めします)、このアプリを試してください... http://inlinecssextractor.com/home.html

幸運を

于 2013-01-24T20:57:54.000 に答える
0

この2つのクリーナーは非常に効果的であることがわかりました。まず、filtered html という単語を実行しました

http://textism.com/wordcleaner/

次に、いくつかの正規表現を使用して、箇条書きの段落項目をリスト (li) に変換しました。次に、結果を実行しました

http://infohound.net/tidy/

リスト項目を順不同リスト (ul) タグでラップし、その他のエラーをクリーンアップします。1.5M から 225k になった結果には非常に満足しています。

于 2013-04-19T22:02:23.243 に答える