記事一覧
ブログ(無料版)の仕様で、デフォルトのトップページだと投稿記事の1つ1つが全部表示されてしまい、ブログ全体を把握しづらい。下記のリンクから入ったほうが記事を探しやすいかも。このブログをブックマークする際も下記リンクをブックマークすることをオススメする。
ブログ(無料版)の仕様で、デフォルトのトップページだと投稿記事の1つ1つが全部表示されてしまい、ブログ全体を把握しづらい。下記のリンクから入ったほうが記事を探しやすいかも。このブログをブックマークする際も下記リンクをブックマークすることをオススメする。
sudo apt install chromium-browser vlc smplayer gimp geany gufw pandoc mozc-utils-gui sylpheed sylpheed-i18n sylpheed-doc
sudo apt install fonts-ipaexfont fonts-ipamj-mincho fonts-mplus fonts-kouzan-mouhitsu fonts-aoyagi-kouzan-t fonts-takao fonts-umeplus
sudo snap install pdftk xournalpp
sudo apt install qpdfview
(with patched qt)版をインストールするために、公式サイトからダウンロード・インストールする。
wkhtmltopdfからバージョンにあったdebをダウンロード。
sudo apt install ./wkhtmltox_X.XX.......deb
「X.XX.......deb」のところは適宜変更の上、インストール。
時々はまるサウンド関係
sudo apt install qasmixer pavucontrol
「テンプレート」ディレクトリ内で端末を開いて、以下を実行。
touch ./新しいドキュメント
Japanese Teamによる追加パッケージを入れているにもかかわらず、zipファイルが文字化けする場合
sudo apt install unar
unarでインストール。
unar sample.zip
などとして展開。
基本は公式サイトkhcoder/Vagrantfile at master · ko-ichi-h/khcoder · GitHubを参考に。一部、追加しないといけないモジュールがあったり、必要に応じて公式サイトと違う方法を取ったりしたけど。
まずはリポジトリをアップデートし、事前に必要なものをインストールしておく。
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install -y curl gcc make perl
khcoder/Vagrantfile at master · ko-ichi-h/khcoder · GitHubに書いてある下記の部分をコピペして(最後の ubuntu-desktop は入れない)、ファイル名を hkcoder.sh としたスクリプトを作成。
apt-get install -y \
cpanminus \
fonts-ipafont-gothic \
libalgorithm-naivebayes-perl \
libclass-accessor-lite-perl \
︙
︙
r-cran-cowplot
上記スクリプトを実行。
$ sudo sh hkcoder.sh
なんかいろいろ。よく分からないけど…w。
$ sudo cpanm Lingua::JA::Regular::Unicode Statistics::ChisqIndep
$ sudo Rscript -e 'install.packages(c("ggnetwork", "som", "topicmodels", "proxy"))'
$ cpanm DOY/Spreadsheet-ParseXLSX-0.17.tar.gz
(上記の3番めを sudo を付け忘れていたからもしれないが…)KH Coderをインストール後、KH Coderを起動しようとしたら、
Can't locate Spreadsheet/ParseXLSX.pm in @INC (you may need to install the Spreadsheet::ParseXLSX module) (@INC contains: /opt/khcoder-3.Beta.07/kh_lib/screen_code/rde_kh_spreadsheet /opt/khcoder-3.Beta.07/kh_lib/screen_code CODE(0x5631deb5efa0) /opt/khcoder-3.Beta.07/kh_lib /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.34.0 /usr/local/share/perl/5.34.0 /usr/lib/x86_64-linux-gnu/perl5/5.34 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.34 /usr/share/perl/5.34 /usr/local/lib/site_perl CODE(0x5631deb5f000) .) at /opt/khcoder-3.Beta.07/kh_lib/screen_code/rde_kh_spreadsheet/rde_xlsx.pm line 7.
のエラーが出たので、教えて!ChatGPTくん!ということで、ChatGPTに聞いたら、以下でPerlモジュールを入れろとご教示いただいたいので、以下でインストール。
$ sudo apt-get install libspreadsheet-parsexlsx-perl
ここから先は、公式 khcoder/Vagrantfile at master · ko-ichi-h/khcoder · GitHubのやり方から少し外れて、Ubuntu 20.04 に KH Coder を、ほぼ apt-get install のみでインストールするを参考にしている。
公式サイトのやり方だと KH Coderの起動に、毎回 sudo をつけないといけなくなるので…。
一度、端末を閉じ、sudo を抜ける。端末を再起動して、$HOME(/home/〜)〔端末を再起動すると自動的にここになる〕で以下を実行。
$ KHCODER_VERSION=3.Beta.07
curl -sLO https://github.com/ko-ichi-h/khcoder/archive/refs/tags/${KHCODER_VERSION}.tar.gz
$ tar xf ${KHCODER_VERSION}.tar.gz -C ./
$ ln -s ./khcoder-${KHCODER_VERSION} ./khcoder
たぶんこれは英文を分析するのに必要っぽい。英文を分析しないのであれば必要ないかも。
$ curl -sLO https://nlp.stanford.edu/software/stanford-postagger-full-2015-04-20.zip
$ unzip stanford-postagger-full-2015-04-20.zip -d ./khcoder
MySQLの設定を編集。
$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
nanoエディタで mysqld.cnf が開くので、
[mysqld]
local-infile=1
[client]
loose-local-infile=1
を最終行に追記。
MySQLを再起動
$ systemctl restart mysql.service
MySQLにユーザーを作成し、権限を付与。
sudo mysql -uroot -p
CREATE USER khcoder@localhost IDENTIFIED BY 'khcoder';
GRANT ALL ON *.* TO khcoder@localhost;
ここで一旦KH Coderを起動し、画面を閉じてKH Coderを終了。(config/coder.iniが生成される)
$ cd khcoder
$ perl kh_coder.pl
エディタでKH Coderの設定を開いて
$ nano config/coder.ini
以下のように編集。
mecab_unicode UTF-8
mecabrc_path /etc/mecabrc
sql_username khcoder
sql_password khcoder
再度、KH Coder を起動をしてみると、無事起動。
$ cd /opt/khcoder
$ sudo perl kh_coder.pl
プロジェクト>設定 で
上記まででKH Coderは使用できるようになったが、解析のための辞書として、mecab-ipadic-neologd とやらが賢いらしい。
公式サイトmecab-ipadic-neologdのとおりにインストールしていく。
$ sudo aptitude install mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
$ sudo ./bin/install-mecab-ipadic-neologd -n
インストール先を確認する。
$ echo `mecab-config --dicdir`"/mecab-ipadic-neologd"
今回は
/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd
と出た。
使い方は MeCab の -d オプションにカスタムシステム辞書のパス(例: */lib/mecab/dic/mecab-ipadic-neologd/)を指定して使う。
$ echo "8月3日に放送された「中居正広の金曜日のスマイルたちへ」(TBS系)で、1日たった5分でぽっこりおなかを解消するというダイエット方法を紹介。キンタロー。のダイエットにも密着。" | mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd
で、公式サイトのように解析されていれば、OK。
-d オプションを使わないで、mecabコマンドだけで、mecab-ipadic-neologdの辞書を使うようにする。
sudo nano /etc/mecabrc
エディタが開いたら、以下の前述で確認したインストール先に指定し直す。
; dicdir = /var/lib/mecab/dic/debian
dicdir = /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd
mecabを標準辞書に戻すには上記の1行目を有効にして、2行目は無効にすればいいはず。
KH Coder が入っているフォルダを削除するだけ。
たくさんのPDFファイルを開いていると、タブブラウザのように1つのアプリのウィンドウの中で、タブで開きたい。
もちろん、最近はブラウザでもPDFは開けるのだけど、ブラウザで開くと、若干もっさりする気がするので…。
$ sudo apt install qpdfview
タブが使えるだけでなく、機能が豊富。
Windowsの場合、Sumatra PDF。
環境はWindows11。
すでに公式サイトwkhtmltopdfからインストーラーをダウンロードして、インストールしていたら、一旦、それをアンインストール。
PATHも一度削除しておいたほうがいいかも。
winget install wkhtmltopdf
を実行して、インストール。
PATHを通しなおす(Windowsでプログラムやスクリプトにパスを通す)。
公式サイトからインストーラーをダウンロードして、インストールしたwkhtmltopdfが、cssで游明朝などシステムにインストールされているフォントを指定しているのに、効いてくれない…。
IPAexフォント | 一般社団法人 文字情報技術促進協議会をダウンロードしてインストール、cssでIPAex明朝を指定したら、これは効いた。
もしかしたら、フォントのインストール先の問題化かも。
游明朝は C:\Windows\Fonts
にインストールされており、
IPAexフォントは C:\Users\ユーザー名\AppData\Local\Microsoft\Windows\Fonts
にインストールされていた。
つまり、システム全体とローカルユーザーとの違い。
游明朝フォントをIPAex明朝フォントと同じ場所にコピペして、PCを再起動したけどダメだった…。
諦めかけていた時、pandocのインストール方法でwinget
でのインストール方法があることを知り、もしかして、wkhtmltopdfもwinget
で入手できるのでは…?と思い、やってみたらできて、問題解決。
今回もChatGPTさんに大変、お世話になった…。
Windowsの場合、Microsoft Store から python(3.11で動作確認) をインストール。
openpyxl パッケージを使用するので、それをインストールするために、
まずPythonの標準パッケージ管理システムであるpipをインストールして、
その後、pipを使って、openpyxl パッケージをインストール。
Windowsの場合、Microsoft Store からインストールした時点ですでにpipは入っているはずなので、2行目だけ実行。
$ sudo apt install python3-pip
$ pip install openpyxl
後述のスクリプトではwkhtmltopdfの方を有効にしている。
1) インストール
ターミナル(コマンドプロンプトやWindows PowerShellなど) を立ち上げて
winget install wkhtmltopdf
を実行してインストール。
2) wkhtmltopdf への pathを通す
おそらく C:\Program Files\wkhtmltopdf\bin の中に、「wkhtmltopdf.exe」がインストールされたはずなので、
Windowsの「設定」で
aptでインストールしたものはオプションが効かない場合があるので、公式サイトwkhtmltopdfからダウンロード・インストールすることをオススメする。
$ sudo apt install chromium-browser
ディレクトリ(フォルダ)内に sample.xlsx があり、そのエクセルからC1とB2のセルの内容を抽出して、htmlに挿入する。
以下をsample.xlsxと同じディレクトリ内に xlsxtopdf.py として保存。
import openpyxl
import sys
import subprocess
# Excelファイルを開く
wb = openpyxl.load_workbook(f'{sys.argv[1]}.xlsx')
sheet = wb['Sheet1']
# シート全体のセルに対して、改行を<br>に置換する
for row in sheet.iter_rows():
for cell in row:
if cell.value is not None and isinstance(cell.value, str):
cell.value = cell.value.replace('\n', '<br>')
# セルの値を読み取る
# セルの値を取得
C1 = sheet['C1'].value
B2 = sheet['B2'].value
# HTMLの作成
html = f"""
<html>
<body>
<head>
<meta charset="utf-8">
</head>
<table>
<tr><td>見出し1</td><td>{C1}</td></tr>
<tr><td>見出し2</td><td>{B2}</td></tr>
</table>
</body>
</html>
"""
# HTMLのファイルへの書き込み
with open(f'{sys.argv[1]}.html', 'w') as f:
f.write(html)
#PDF変換
#chromium-browserを使う場合
#input_file = f"{sys.argv[1]}.html"
#output_file=f"{sys.argv[1]}.pdf"
#command = ["chromium-browser", "--headless","--print-to-pdf="+output_file, input_file]
#subprocess.run(command)
#wkhtmltopdf 0.12.6 (with patched qt)を使う場合。 バージョンによって上手くいかなくなることがあるので注意。
input_file = f"{sys.argv[1]}.html"
output_file=f"{sys.argv[1]}.pdf"
options = [
"--enable-local-file-access",
"--disable-smart-shrinking",
"--margin-top", "18",
"--margin-left", "18",
"--margin-right", "18",
"--margin-bottom", "18",
"--footer-font-size", "9",
"--footer-center", "[page]" ]
command = ["wkhtmltopdf"] + options + [input_file, output_file]
subprocess.run(command)
端末で、次を実行(拡張子xlsxは入力しない)。htmlファイルとpdfファイルが生成されているはず。
$ python3 xlsxtoodf.py sample
全部、ChatGPTさんに教えてもらいました。
Linux(Ubuntu)環境だけならBashだけでいいんだけど、最近、(Linuxを使っていない)Windows環境の人たちとも共同で作業することが多くなってきたので、「Pythonで書けないかなぁ…、でも、Pythonの書き方全く知らないし…、そうだ、ChatGPTさんに聞いてみよう」と思い立って…。
僕はPythonについては本当に知識ゼロだったのに、ChatGPTさんとやり取りしながら、比較的簡単にスクリプトが作れちゃったよ…。
いや、本当にプログラミングに関しては、ChatGPTさん、マジ便利。
以下を sample.csv と同じディレクトリ(フォルダ)内に test.py として保存。
import csv
import sys
# csvファイルからC1とB2の値を取得
with open(f'{sys.argv[1]}') as f:
rows = list(csv.reader(f))
c1_value = rows[0][2]
b2_value = rows[1][1]
# HTMLの作成
html = f"""<html>
<body>
<table>
<tr><td>見出し1</td><td>{c1_value}</td></tr>
<tr><td>見出し2</td><td>{b2_value}</td></tr>
</table>
</body>
</html>"""
# HTMLのファイルへの書き込み
with open('python_output.html', 'w') as f:
f.write(html)
端末で次を実行。
$ python3 test.py sample.csv
python_output.html というファイルが同じフォルダ内にできているはず。
以下を sample.csv と同じディレクトリ(フォルダ)内に test.sh として保存。
#!/bin/bash
# csvファイルからC1とB2の値を取得
c1_value=$(cut -d ',' -f 3 $1 | head -n 1)
b2_value=$(cut -d ',' -f 2 $1 | sed -n '2p')
# HTMLの作成
cat <<EOF > bash_output.html
<html>
<body>
<table>
<tr><td>見出し1</td><td>${c1_value}</td></tr>
<tr><td>見出し2</td><td>${b2_value}</td></tr>
</table>
</body>
</html>
EOF
端末で次を実行。
$ bash test.sh sample.csv
bash_output.html というファイルが同じフォルダ内にできているはず。
decktape: PDF exporter for HTML presentations
apt で入る nodejs、npm は古いものらしいので、新しいものを入れる。
1.とりあえず古くてもよいのでnpmが必要なためインストール
$ sudo apt install nodejs npm
2.n をインストール
$ sudo npm install -g n
3.n を使って 推奨版(LTS版)にする。
$ sudo n lts
もし、最新版にしたいのであれば、
$ sudo n latest
4.古いほうのnodejs、npmはアンインストールする
$ sudo apt purge nodejs npm
$ sudo apt autoremove
$ npm install -g decktape
ホームディレクトリにグローバルインストール用のディレクトリを作成
$ mkdir ~/.npm-global
新しいディレクトリパスを使用するようにnpmを構成
$ npm config set prefix '~/.npm-global'
任意のテキストエディタで、~/.profileファイルを開いて次の行を追加
# nmpのグローバルインストール用のディレクトリにパスを通す
PATH="$HOME/.npm-global/bin:$PATH"
更新
$ source ~/.profile
PCを再起動。
$ decktape -h
で確認。
$ decktape --size 1123x794 入力.html 出力.pdf
私のある環境では、--size 1123x794
でPDFがA4横置きになった。たぶんPC環境によって入れる数値が変わる?