21

.doc ファイルと .pdf ファイルは正常に出力されますが、.docx ファイルは破損しているという問題があります。

それを解決するために、.docx が破損している理由をデバッグしようとしています。

docx 形式は、余分な文字に関して .pdf や .doc よりもはるかに厳密であることを知りました。したがって、無効な XML を探して、docx ファイル内のさまざまな xml ファイルを検索しました。しかし、私は何も見つかりません。それはすべて正常に検証されます。

私がチェックアウトしているxmlファイル

今すぐ調査するための指示を誰か提案してもらえますか?

アップデート:

フォルダー内のファイルの完全なリストは次のとおりです。

/_rels
    .rels

/customXml
    /_rels
        .rels
    item1.xml
    itemProps1.xml

/docProps
    app.xml
    core.xml

/word
    /_rels
        document.xml.rels
    /media
        image1.jpeg
    /theme
        theme1.xml
    document.xml
    fontTable.xml
    numbering.xml
    settings.xml
    styles.xml
    stylesWithEffects.xml
    webSettings.xml

[Content_Types].xml

更新 2:

また、破損の理由は、ほぼ間違いなく、私に代わって不適切なバイナリ ファイルの POST であることに言及する必要がありました。

なぜ docx ファイルはバイナリ ポストで破損するのに、.doc と .pdf は問題ないのですか?

更新 3:

さまざまな docx 修復ツールのデモを試しました。それらはすべてファイルを正常に修復しているように見えますが、エラーの原因についての手がかりはありません。

私の次のステップは、修復されたバージョンで破損したファイルの内容を調べることです.

適切なエラー メッセージを表示する docx 修復ツールを知っている人がいれば、教えていただければ幸いです。実際、私はそれを別の質問として投稿するかもしれません。

更新 4 (2017)

私はこの問題を決して解決しませんでした。以下の回答で提案されているすべてのツールを試しましたが、どれもうまくいきませんでした。

その後、もう少し進んで0000、Sublime Text で .docx を開くと、ブロックが見つからないことがわかりました。こちらの新しい質問の詳細: httpwebrequest 中に .docx ファイルでこの破損が発生する可能性があるのは何ですか?

4

4 に答える 4

10

「Open XML SDK 2.5 Productivity Tool」( http://www.microsoft.com/en-us/download/details.aspx?id=30425 ) を使用して、壊れたハイパーリンク参照の問題を見つけました。

最初に SDK をダウンロード/インストールし、次にツールをダウンロード/インストールする必要があります。ツールが開き、ドキュメントの問題を分析します。

于 2014-01-24T17:16:48.623 に答える
6

通常、特定の XML ファイルでエラーが発生すると、エラーが発生したファイルの行が Word によって通知されます。したがって、問題はファイルの圧縮またはフォルダー構造のいずれかに起因すると考えられます。

Word ファイルのフォルダー構造は次のとおりです。

.docx形式は、次のフォルダーを含む zip ファイルです。

+--docProps
|  +  app.xml
|  \  core.xml
+  res.log
+--word //this folder contains most of the files that control the content of the document
|  +  document.xml //Is the actual content of the document
|  +  endnotes.xml
|  +  fontTable.xml
|  +  footer1.xml //Containst the elements in the footer of the document
|  +  footnotes.xml
|  +--media //This folder contains all images embedded in the word
|  |  \  image1.jpeg
|  +  settings.xml
|  +  styles.xml
|  +  stylesWithEffects.xml
|  +--theme
|  |  \  theme1.xml
|  +  webSettings.xml
|  \--_rels
|     \  document.xml.rels //this document tells word where the images are situated
+  [Content_Types].xml
\--_rels
   \  .rels

wordフォルダの中身しか持っていないようですね。これで問題が解決しない場合は、破損した Docx を送信するか、zip 内のフォルダーの構造を投稿してください。

于 2013-08-13T07:59:18.283 に答える
4

何年も遅れましたが、実際に私のために働いたこれを見つけました。( https://msdn.microsoft.com/en-us/library/office/bb497334.aspxより)

(wordDoc はWordprocessingDocument)

using DocumentFormat.OpenXml.Validation;

        try
        {
            var validator = new OpenXmlValidator();
            var count = 0;
            foreach (var error in validator.Validate(wordDoc))
            {
                count++;
                Console.WriteLine("Error " + count);
                Console.WriteLine("Description: " + error.Description);
                Console.WriteLine("ErrorType: " + error.ErrorType);
                Console.WriteLine("Node: " + error.Node);
                Console.WriteLine("Path: " + error.Path.XPath);
                Console.WriteLine("Part: " + error.Part.Uri);
                Console.WriteLine("-------------------------------------------");
            }

            Console.WriteLine("count={0}", count);
        }

        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
于 2016-06-20T19:52:12.463 に答える
-3

web docx バリデーターは私のために働いた: http://ucd.eeonline.org/validator/index.php

于 2014-11-08T23:21:07.013 に答える