Namazu-win32-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: PDF 検索結果の著者表示
From: knok@xxxxxxxxxxxxx
Subject: [namazu-win32-users-ja] Re: PDF 検索結果の著者表示
Date: Wed, 12 Jun 2002 18:55:40 JST
> >> PDFの検索結果において、次のような表示(著者: 不明)になります。
> >> 著者名を表示させるには、どのような設定をすればよいのかご教授ください。
> xpdf (pdftotext) を利用したフィルタでは著者の情報を取得しない(できな
> い?)ので、それは仕様ということになります。
xpdf に付属の pdfinfo を使って、PDFファイルの DOCINFO 中の /Title
と /Author をひっかけるように試しにいじってみました。以下につけて
おきます。
ただ、DOCINFO をちゃんと付けてるPDFはそんなに多くない気もするので、
どれほど効果があるものなのか... LaTeX から dvipdfm とかで生成する
場合には、
special{pdf: docinfo <<
/Title (sample document)
/Author (Hajime BABA) >>}
とかしてやれば付けられますが、ふつうはやらないでしょうし。
まあ、「やらないよりはマシ」といった程度かとおもいますが、あって困
るものでもなさそうなので、問題なければcommitしておきます。
--
馬場 肇 ( Hajime BABA ) E-mail: baba@xxxxxxxxxxxxxxxx
宇宙科学研究所 宇宙科学企画情報解析センター
--
--- pdf.pl.orig Tue Jul 9 21:52:57 2002
+++ pdf.pl Sun Jul 21 14:20:31 2002
@@ -28,6 +28,7 @@
require 'util.pl';
require 'gfilter.pl';
+my $pdfinfopath = undef;
my $pdfconvpath = undef;
my $pdfconvver = 0;
my $pdfconvarg = '';
@@ -37,6 +38,7 @@
}
sub status() {
+ $pdfinfopath = util::checkcmd('pdfinfo');
$pdfconvpath = util::checkcmd('pdftotext');
if (defined $pdfconvpath) {
my $ret = `$pdfconvpath 2>&1`;
@@ -109,6 +111,24 @@
unless $fields->{'title'};
gfilter::show_filter_debug_info($cont, $weighted_str,
$fields, $headings);
+
+ if (defined $pdfinfopath) {
+ my $tmpfile3 = util::tmpnam('NMZ.pdf3');
+ system("$pdfinfopath $cfile > $tmpfile3");
+ my $fh = util::efopen("< $tmpfile3");
+ $$cont = util::readfile($fh);
+ undef $fh;
+ if ($$cont =~ /Title: (.*)/) { # or /Subject: (.*)/
+ my $tmp = $1;
+ $fields->{'title'} = $tmp;
+ }
+ if ($$cont =~ /Author: (.*)/) {
+ my $tmp = $1;
+ $fields->{'author'} = $tmp;
+ }
+ unlink($tmpfile3);
+ }
+
return undef;
}