0

Word文書に対して508コンプライアンスチェックを行うWebフォームを作成しています。ユーザーが選択したファイルから必要な情報を取得するために、MSDNおよびその他のサイトを調べています。私が見つけられないことの1つは、画像を見つける方法と、それらに代替テキストがあるかどうかを確認する方法です。どんな助けでも大歓迎です!

4

2 に答える 2

1

2007+Word文書に挿入された画像はDrawingオブジェクトです。w:drawingしたがって、メンバーのXMLをトラバースできます。

http://msdn.microsoft.com/en-us/library/documentformat.openxml.wordprocessing.drawing.aspx

w:drawingメンバーには、クラスのw:inline一部であるという子がいます。Inline

http://msdn.microsoft.com/en-us/library/documentformat.openxml.drawing.wordprocessing.inline.aspx

メンバーには、というw:inlineメンバーがいwd:docPrます。

http://msdn.microsoft.com/en-us/library/documentformat.openxml.drawing.wordprocessing.docproperties.aspx

wd:docPrメンバーは、title代替テキストのタイトルを格納するというフィールドと、descrすべての代替テキストを格納するというフィールドを持つことができます。

XMLの例:

<w:drawing xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
    <wp:inline distT="0" distB="0" distL="0" distR="0" wp14:anchorId="357A850A" wp14:editId="384E9053" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
        <wp:extent cx="5943600" cy="4457700" />
        <wp:effectExtent l="0" t="0" r="0" b="0" />
        <wp:docPr id="1" name="Picture 1" descr="ALL TEXT HERE" title="ALT TEXT TITLE HERE"/>
        ...

OpenXMLSDKに付属のOpenXMLProductivityToolを使用することを強くお勧めします。

于 2012-07-13T14:02:46.087 に答える
0

スライドをループで解凍し、それぞれでlxprintfを実行してwp:docPr要素を見つけ、@の値を出力することで、unzipとlxprintf(LTXML2ツールキットの一部)のコピーを使用して同じことを少し簡単に行うことができます。 descrと@title、例:

for f in `unzip -l demo.pptx | grep ppt/slides/slide.*\.xml | awk '{print $NF}'`; do 
  unzip -p demo.pptx $f |\
    lxprintf -e 'w:drawing/wp:inline/wp:docPr' "%s, %s\n" @descr @title -
done
于 2014-10-24T19:57:16.710 に答える