問題タブ [docx4j]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - docx4jで生成されたdocxでサーブレットから画像をレンダリングする方法
この質問はこの質問と非常に似ていますが、空飛ぶ円盤ではなくdocx4jに関連しています。
私はdocx4jを使用して、生成されたdocxドキュメントを返すサーブレットを介してxhtmlドキュメントをdocxにレンダリングしています。xhtmlドキュメントは、別のサーブレットから要求された画像を特徴としています。イメージサーブレットは、適切なイメージを返す前に、誰がログインしているかを確認します。以下のコードは、画像がどのようにリクエストされるかを示しています。
私の問題は、画像のhttpリクエストがXHTMLImporter
(私が思うに)ログインしたユーザーからのものではないため、画像サーブレットが誰がログインしたかを知らないため、目的の画像が返されないことです。
私は現在、以下のコードを使用してxhtmlドキュメントをレンダリングしています。
フライングソーサーでは使用できましたReplacedElementFactory
が、docx4jが使用しているものではないようです。変換プロセス中に要素を置き換える方法はありますか?
docx4j - 予想よりも多くの違いを示す docx4j Differencer
私は2つの文書を持っています:
ドキュメント 2 は、ドキュメント 1 を変換プロセスに通した結果であり、コンテンツとフォーマットはそのまま残されます (Word で並べて比較することによって検証されます)。
ただし、このプロセスでは、.docx ファイルから多くの ID 番号が削除されます。
例えば、
になる
次のコードを介した各ドキュメントのダンプによると:
ここで推奨されている docx4j Differencer 比較方法を使用すると、すべて (フォーマットが適用されていない最初の行を除く) が変更として表示されます。
質問: 差分は、欠落している ID、フォーマット、またはその他の結果ですか?
重要な場合は、このコンテキストで docx4j を使用して、ラウンドトリップ プロセスで自動化された健全性/回帰テストを実行します (つまり、「ロスレス」プロセスを適用し、違いがないことを期待します)。
docx4j - docx4j - XmlUtils.marshalToString() から省略されたノード
XMLUtils.marshalToString()
docx4j から使用すると、2 つの docx ファイルの同じ場所に次のコンテンツがあります (.docx を解凍した後に対応するものから抽出されます) word/document.xml
。これらは、ファイル間の唯一の違いです。
と
最初のドキュメントでは、<w:t>
ノードは上記のように出力されます。
ただし、2 番目の例では、空の<w:t>
ノードが次のように出力されます。
http://www.schemacentral.com/sc/ooxml/e-w_p-1.htmlでw:t
スキーマを確認したところ、含まれている有効な要素です。w:r
編集:上記のリンクはw:p
要素のスキーマであり、 ではありませんw:t
。の適切なリンクw:t
はhttp://www.schemacentral.com/sc/ooxml/e-w_t-1.htmlです。唯一の受け入れ可能なコンテンツが文字列であることを明確に示していw:t
ます ( aw:r
やその他のタグではありません)。その結果(以下のジェイソンの回答が示唆されているように)、からのXMLdocument.xml
は無効であり、(そのため)docx4jに非整列化されていません。その結果、テキストは XmlUtils.marshalToString() による出力に使用できませんでした。
2 番目のブロックが出力されない原因は何ですか?
java - xlsx4j - スプレッドシートで列幅を設定するには?
xlsx4j を使用して JTable を XLSX ファイルにエクスポートしようとしていますが、列幅の設定に問題があります。すべての列にデフォルトの幅を設定することに成功しましたが、データの長さに合わせて列の幅を自動的に設定したいと思います。
上記のコードはコンソールに表示されます: lstCols.size() は 0 であるため、SheetData に行とセルを追加した後、列の定義がないように見えます。
一方、この方法で手動で列を作成すると:
XLSX ファイルで壊滅的なエラーが発生します。
linux - RedHatサーバーでdocx4jxhtmlrendererを使用したHeadlessException
RedHatサーバーでjava.awt.HeadlessException
を使用すると、が表示されます。Docx4jReplacedElementFactory
誰かがこれの回避策を知っていますか?(Xvfbの実行以外)
スタックトレースにドリルインしましたが、問題の原因はですjava.awt.GraphicsEnvironment.getDefaultScreenDevice()
。これは、ヘッドレス環境で実行すると例外をスローします。これは文書化されているとおりです:「throws:HeadlessException-if isHeadless()returns true」(HeadlessGraphicsEnvironment.getDefaultScreenDeviceからスローされたjava.awt.HeadlessExceptionに関するコメントを参照)。
与えられgetDefaultScreenDevice
たものは指定どおりに機能していますが、docx4jを使用するときに、そこに行かないようにする別のアプローチはありますか?
のソースを見ると、次のようになりorg.docx4j.org.xhtmlrenderer.util.ImageUtil.getGraphicsConfiguration
ます。
スタックトレース:
java - HTML を pptx4j 要素に変換する
docx4j の XHTMLImporter クラスの使用を実装して、XHMTL を docx4j (Word) 要素に変換することに成功しました。ただし、pptx4j (Powerpoint) についても同じことを行う必要がありますが、多くの検索と試行錯誤の結果、pptx4j の XHTMLImporter に対応するものはないようです。 XHTMLImporter の docx4j-element 結果を取得し、それらを pptx4j Shapes に追加します。
pptx4jでこの問題を解決した人はいますか? または、このタスクを実行するために使用できるライブラリまたはソース コードを教えてもらえますか?
ありがとう!
カール
android - android で docx4j を使用して Word doc を読み取ると、次の問題が発生します
目的: ワード doc の内容を cosole に読み込むこと
使用環境:Windows 7 32bit Eclipse IDE Indigo Android 4.1 API 16 Java 1.6 ライブラリ:docx4j-2.8.0
以下は、Word doc のテキストをコンソールに出力するために使用しているコード スニペットです。
上記のコードを実行しようとすると、次の問題が発生します eclipse logcat は次のログを表示します
xml-namespaces - docx4j Differencer.diff() 呼び出しで o:allowincell を使用して宣言されていない名前空間
ドキュメント変換プロセスの結果を docx4j で元の結果と比較すると、テスト ケースの 1 つで次のエラーが発生します。
com.topologi.diffx.xml.UndeclaredNamespaceException: The namespace URI "urn:schemas-microsoft-com:office:office for allowincell" has not been mapped to any prefix.
この方法を使用して元のドキュメントをそれ自体と比較することにより、変換プロセスによって発生するエラーの可能性を排除しました (この回答に基づく):
スタックトレース:
*.docx ファイルを解凍しましたが、含まれている .docxのタグでo:allowincell
適切にマップされているよう です。xmlns:o="urn:schemas-microsoft-com:office:office"
<w:document>
document.xml
テスト ドキュメントは、 https ://docs.google.com/open?id=0B6_h2TfqvEdeZE43X3RSWnFIZHc からダウンロードできます。
この問題を解決する方法についてのアイデアはありますか?
jaxb - docx4j は、変更されていないテーブル データの違いを報告します
2x2 テーブルを含む *.docx ファイルを作成しました。各セルには、 = 行番号と= 列番号のテキストCell x-y
が含まれています。x
y
このドキュメントを単純な変換プロセスに渡すと、docx4j のDifferencer.diff()
メソッドは違いを報告しません (つまり、タグw:ins
もタグもありませんw:del
)。
.docx には、元のドキュメントのテキストが<w:tc> -> <w:p>
タグ内で次のように分割されているにもかかわらず、これは予期され、適切に処理されます。
変換されたドキュメントでは次のようになります。
ただし、ドキュメントのテーブルの上に「テーブル タイトル」というテキストを追加すると、元のドキュメントの内容 (Word の処理、それについては何もできません) セルが 1 つにマージされ<w:r>
ます。
変換されたドキュメントの唯一の違いは、xml:space="preserve"
挿入されていることです。
ただし、docx4j のメソッドは、各セルのコンテンツが挿入されたことを報告し、生成された差分ドキュメントのDifferencer.diff()
各セルのコンテンツとして次のように表示します。w:tc
w:p
<w:tbl>
終了タグの直後に、削除された各セルのコンテンツが表示されます。
xml:space="preserve"
テーブルの前に挿入されたテキストで行うため、Differencer が属性を無視できることはわかっているので、それが原因ではないかと思います。
これらのテーブル シナリオは、 の意図したユース ケース外Differencer
ですか? 使い方・呼び出しの間違いでしょうか?バグ?
任意のガイダンスをいただければ幸いです。
java - Java を使用して Word および PowerPoint ドキュメントを生成するベスト プラクティス
Word 2007 で作成された docx 形式の Word 文書があります。この文書を開き、文書内の特定の場所にテキスト、画像、表を追加する必要があります。
パワーポイントでも同じことをする必要があります。
ドキュメント内の文字列を使用して検索し、それらを置き換えた場所をグーグルで検索すると、解決策が見つかりました。私はそれがそれを行う方法ではないと思います。
私が見つけた別の解決策は、Word 文書にブックマークを挿入し、ブックマークの後にデータを追加することでした。これは、Apache POI ライブラリを使用して行われました。このソリューションは見栄えが良くなります。しかし、ドキュメントの別の部分に同じデータを配置する必要がある場合はどうなるでしょうか。同じデータを挿入するために複数の一意のブックマークを定義したくありません。
基本的に、単語テンプレートを作成し、データを挿入できるキーワードを定義する方法を探しています。
更新このhttp://code.google.com/p/xdocreport/を 見つけて、私が望んでいたことをほぼ正確に行いました。