我在 Debian 中用 Zotero 管理文献时发现 PDF 导入后获取文件信息获取不到。以下时解决过程记录,主要参考 Configuring Zotero PDF full text indexing in Debian Jessie。
安装 pdftotext 和 pdfinfo:
1
|
sudo apt-get install poppler-utils
|
查看内核信息和机器架构:
1
|
uname --kernel-name --machine
|
在 Zotero 的数据目录里建立刚刚安装的两个包的命令链接,链接名要包含上面查到的内核和机器架构信息
1
2
3
|
cd ~/.zotero
ln -s $(which pdftotext) pdftotext-$(uname -s)-$(uname -m)
ln -s $(which pdfinfo) pdfinfo-$(uname -s)-$(uname -m)
|
最后还需要一个小脚本来改变 pdfinfo
命令的参数:
1
2
3
|
cd ~/.zotero
wget -O pdfinfo.sh https://raw.githubusercontent.com/zotero/zotero/4.0/resource/redirect.sh
chmod a+x pdfinfo.sh
|
为刚刚安装的两个包新建 *.version
文件,文件名要包含版本信息:
1
2
3
|
cd ~/.zotero
pdftotext -v 2>&1 | head -1 | cut -d ' ' -f3 > pdftotext-$(uname -s)-$(uname -m).version
pdfinfo -v 2>&1 | head -1 | cut -d ' ' -f3 > pdfinfo-$(uname -s)-$(uname -m).version
|
在 Zotero 的设置 “Preferences” - “Search” 应该会看到类似于:
1
2
3
|
PDF indexing
pdftotext version 0.26.5 is installed
pdfinfo version 0.26.5 is installed
|
这样的信息,表明刚刚安装的工具已经起效了。不要用这里的 “check for update” 来更新这两个包,现在系统 apt 已经接管了。
更多
如果上述完成还不可用,运行这个脚本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#!/bin/bash
version=$(dpkg-query -W -f='${Version}' poppler-utils || echo "please_install_poppler-utils")
totextbinary='pdftotext-Linux-x86_64'
infobinary='pdfinfo-Linux-x86_64'
infohack='pdfinfo.sh'
for zoteropath in $(find $HOME/.zotero $HOME/.mozilla -name zotero.sqlite -exec dirname {} \;)
do
echo $version > $zoteropath/"$totextbinary.version"
echo $version > $zoteropath/"$infobinary.version"
ln -s /usr/bin/pdftotext "$zoteropath/$totextbinary"
ln -s /usr/bin/pdfinfo "$zoteropath/$infobinary"
cat > $zoteropath/$infohack << EOF
#!/bin/sh
if [ -z "\$1" ] || [ -z "\$2" ] || [ -z "\$3" ]; then
echo "Usage: $0 cmd source output.txt"
exit 1
fi
"\$1" "\$2" > "\$3"
EOF
chmod +x $zoteropath/$infohack
done
|
脚本来自 bugs.debian.org。
文章作者
Jackie
上次更新
2019-01-07
(07509f6)