teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

日本語の扱いについて追記

2021/05/20 01:39

投稿

zembutsu
zembutsu

スコア1584

answer CHANGED
@@ -1,5 +1,7 @@
1
1
  さくらのレンタルサーバで [XpdfReader](https://www.xpdfreader.com/download.html) を使うには、FreeBSD 用のバイナリをセットアップする必要があります。
2
2
 
3
+ ## XpdfReader のセットアップ
4
+
3
5
  FreeBSD 向けのバイナリを含むパッケージ(`pdftotext` を含む)があります。パッケージをダウンロードし、展開すると、コマンドは利用可能になります。
4
6
 
5
7
  ```Shell
@@ -12,4 +14,28 @@
12
14
 
13
15
  あとは、PHP のソースコード上から、 `pdftotext` のパスを指定するなり、ディレクトリを移動されたら使えるようになるでしょう。
14
16
 
17
+ ## 日本語への対応作業
18
+
19
+ 初期状態では英語の PDF にしか対応していません。そのため、日本語に対応するためのパッケージも、あわせてセットアップします。
20
+
21
+ ```Shell
22
+ % wget https://pkg.freebsd.org/FreeBSD:12:amd64/quarterly/All/ja-xpdf-jafont-4.02.txz
23
+ % tar xvfz ja-xpdf-jafont-4.02.txz
24
+ ```
25
+
26
+ このコマンドを仮に `/home/example/` で実行したとしますと( example は実際のログインユーザ名に置き換えてお考えください)、 `/home/example/usr/local/share/xpdf/japanese/` 以下に ShiftJIS を扱うために必要な `Shift-JIS.unicodeMap` などのファイルが展開されます。
27
+
28
+ 次に、 `~/.xpdfrc` ファイルを作成するか、既に有る場合は、以下の記述を追加します。※ `/home/example/` 以下は、実際のサーバ上のパスを指定します。
29
+
30
+ ```.xpdfrc
31
+ unicodeMap Shift-JIS /home/example/usr/local/share/xpdf/japanese/Shift-JIS.unicodeMap
32
+ ```
33
+
15
- (ただ日本語処理につては未確認の処理内容にりましては、もしかすると追加で作業何か必要になるかもしれせん)
34
+ それからコマンドラインで実行をお試しくださとえば次のうにコマンドラインを実行すると、 PDF の変更できるかどうかを確認できす。
35
+
36
+ ```shell
37
+ % cd ~/usr/local/libexec/xpdf
38
+ % ./pdftotext -enc Shift-JIS -raw ~/test.pdf test.txt
39
+ ```
40
+
41
+ ここまで来ましたら、環境は整いますので、PHP 側での変換処理ができるようになると思います。