Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

mknmzで途中からすべて同じエラーがでる (namazu-bugs-ja#131)



Full_Name: 
Version: 2.0.10
OS: Windows2000
Submission from: (NULL) (61.208.149.34)


標準出力には、次のように出力されました。(*は問題の場所)
  2261/9808 - //svr1/dir/xxx1.txt [text/plain]
  2262/9808 - //svr1/dir/xxx2.txt [text/plain]
  2263/9808 - //svr1/dir/xxx3.txt [text/plain]
  2264/9808 - //svr1/dir/yyy4.xls [application/excel]
  2265/9808 - //svr1/dir/yyy5.xls [application/excel]
  2266/9808 - //svr1/dir/zzz6.html [text/html]
  2267/9808 - //svr1/dir/zzz7.html [text/html]
  2268/9808 - //svr1/dir/safe.pdf [application/pdf]
* 2269/9808 - //svr1/dir/PROBLEM.PDF Unable to convert pdf file (maybe copying
protection)
* 2269/9807 - //svr1/dir/xxx8.txt Unable to convert pdf file (maybe copying
protection)
* 2269/9806 - //svr1/dir/yyy9.xls Unable to convert pdf file (maybe copying
protection)
* 2269/9805 - //svr1/dir/yyy10.xls Unable to convert pdf file (maybe copying
protection)
###以降すべて同じエラーになりました。

エラー出力には何も出力されませんでした。

pdftotextを実行したところ、次のようになりました。
>pdftotext \share\Problem.PDF out.txt
Error: Copying of text from this document is not allowed.

mknmzの、load_documentを少し調べてみたところ、
---mknmzから抜粋---
	$shelter_cfile = $cfile;
	$cfile = util::tmpnam("NMZ.win32");
	copy($shelter_cfile, $cfile);
---ここまで---
copyが正常に行われておらず、その下で行われているファイルの判別を失敗しているようです。
ちなみにProblem.PDFは読取専用になっていました。

filterでエラーが発生したとき、コピーしたファイルを削除しておらず、
コピーに失敗したときに、前回コピーしたファイルを参照してしまうだと思います。
そこで、以下のようにしてみたらとりあえず動きました。
---ここから---
	$shelter_cfile = $cfile;
	$cfile = util::tmpnam("NMZ.win32");
+	unlink $cfile if (-e $cfile);
	copy($shelter_cfile, $cfile);
---ここまで---


以上報告いたします。