adbird(広告鳥) 備忘録

Ubuntuでも年賀状の宛名作成(md→pdf 編)

↓もっと簡単な方法ができました。こちらのほうをオススメします。

Ubuntuで年賀状の宛名作成 csvで住所録編集 2020年版 。手元にエクセル等で住所録がある人などはこちらの方が楽かも。


更新:2019年12月12日、makenenga.sh の修正&追加情報。ChromeでのPDF出力で偶数ページに白紙が挟まってしまうトラブルに対応(2019年12月末現在)。


以前、 html + css で年賀状の宛名書き(Ubuntuで年賀状宛名書き) という記事を書いたけど、ごちゃごちゃしたhtmlタグの中に書いていったり、住所の数字を漢数字で書いていくのがスマートじゃないなぁ…と思っていた。

そこで、最近の僕の中での流行りである、markdown(pandoc拡張markdown) → html → pdf で作れないかと試行錯誤して、ようやくできるようになった。
しかも、年賀状を出した人/喪中等で出さなかった人の一覧表まで同時に作れるようにした。

重たいソフトは入らない。cssシェルスクリプト、md(マークダウン)、全部テキストエディタで編集できるよ!


目次

環境、必要なツール・フォント

以下、Ubuntuのレポジトリに入っている場合もあるが、レポジトリのものはヴァージョンが古かったりするなどしてうまくいかないこともあるので注意が必要。また、それぞれのツールがヴァージョンアップするとやっぱりうまくいかないこともあるので、ご了承を。

フォルダ内の構成

任意のフォルダ内が以下のような構成になるようにする。

任意のフォルダ
 ┃
 ┣ list.css
 ┣ makenenga.sh
 ┣ nenga.css
 ┣ test.md

nenga.css

年賀状の宛名のcss
テキストエディタを開いて、以下をコピペして「nenga.css」として保存。

郵便番号などの位置等を調整したい場合は、これらをいじる。

@page {size:100mm 148mm; margin:0; padding:0;}

body {margin: 0; padding:0;}

.sheet {
    width:100mm; height:148mm;
    margin: 0;
    padding:0;
    position: relative;
    page-break-after: always;
}

#title-block-header{
    display:none;
}

p{
    margin:0;
    padding:0;
    font-family:"IPAmj明朝" ; 
}

.郵便番号 {
    font-family:"IPAmj明朝" ; /* IPAmj明朝で文字間等を調整している */
    font-size:12pt;
    margin:0;
    padding:0;
    position:absolute; top:14mm; left:46mm; /* ズレる場合は調整 */
    letter-spacing: 4.4mm; /* 数字の間隔 */
}

.住所 {
    font-family: "IPAmj明朝"; 
    font-size:14pt;
    margin-left:0px;
    padding-top:0px;
    line-height:1.5em;
    letter-spacing:2pt;
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: upright;
    -webkit-text-orientation: upright;
    position:absolute; top:30mm; right:10mm;
}

.宛名 p{margin:0 2pt 0 2pt;font-family:"IPAmj明朝" ; }

.宛名 {
    font-family:"IPAmj明朝" ;
    font-size:22pt; 
    letter-spacing: 0.1em;
    position: absolute;
    top: 30%;
    left: 50%;
    -webkit-transform: translateY(-10%) translateX(-50%);
    transform: translateY(-10%) translateX(-50%);
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: upright;
    -webkit-text-orientation: upright;
    line-height:1.3; /*連名時の行間*/
}

.差出人住所 {
    position:absolute; top:70mm; left:17mm;
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: upright;
    -webkit-text-orientation: upright;
    font-family:"IPAmj明朝" ;
    font-size:10pt; 
    margin:0;
    padding-left:0.5em;
}

.差出人 {
    position:absolute; top:70mm; left:11mm;
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: upright;
    -webkit-text-orientation: upright;
    font-family:"IPAmj明朝" ;
    font-size:14pt; 
    letter-spacing: 0.1em;
    margin:0;
    padding-top:0.5em;
}

.差出人郵便番号{
    font-size:10pt;
    font-family:"IPAmj明朝"; /* IPAmj明朝で文字間等を調整している */
    margin:0;
    padding:0;
    position:absolute; top:124mm; left:5.5mm; /* ズレる場合は調整 */
    letter-spacing: 2mm; /* 文字の間隔 */
}

/** For screen preview **/
@media screen {
    body { background: #e0e0e0 }
    .sheet {
    background: white;
    box-shadow: 0 .5mm 2mm rgba(0,0,0,.3);
    margin: 5mm;
    }
}

@media print {
  body {
    width:100mm; height:148mm; /* needed for Chrome */
    }
 }

list.css

一覧表用のcss
同じくテキストエディタを開いて、「list.css」として保存。

body {
  counter-reset: number; 
}
.sheet {
    border-bottom-style: groove;
    border-width: 1px;
    margin:0 0 0 0;
    padding:0 0 10pt 0;
}

#title-block-header{
    display:none;
}

p{
    margin:10pt 0 0 0;
    padding:0;
    font-family:"IPAmj明朝"; 
}

.郵便番号 {
    margin-right:1em;
    font-size:12pt;
    font-family:"IPAmj明朝";
    float: left;
}

.郵便番号:before {
    counter-increment:number;
    content: "(" counter(number) ")〒";
}

.住所 {
    font-size:12pt;
    float: left;
}

.宛名 {
    margin:0 0 0 0;
    font-size:12pt;
    display: block;
    text-align:right;
}

.差出人住所 {display:none;}
.差出人 {display:none;}
.差出人郵便番号{display:none;}

/*改ページ*/
.pagebreak{
    page-break-before:always;
    padding-top:0em;
    text-align: justify;
    text-justify: inter-ideograph;
}

makenenga.sh

シェルスクリプト。コマンド並べただけ。 テキストエディタを開いて、以下をコピペして「makenenga.sh」として保存

ド素人の考えた方法なので、知識・技能のある人から見たら「なんて面倒くさい、非効率なことやっているんだ」と思われそうで、恥ずかしい限りです…(^_^;)。

#!/bin/sh

#ここからは一覧表作成
#mdの別名保存
cp $1.md `date +%Y%m%d_$1一覧`.md
#喪中等で出さなかった人を一覧に表示
sed -i -e 's/<!--NoPost/※以下、今年は出していない。/g' `date +%Y%m%d_$1一覧`.md
sed -i -e 's/NoPost-->//g' `date +%Y%m%d_$1一覧`.md
#htmlに変換
pandoc `date +%Y%m%d_$1一覧`.md -c list.css -s -t html5 -o `date +%Y%m%d_$1一覧`.html
#改行を削除
sed -i -e 's/<br \/>//g' `date +%Y%m%d_$1一覧`.html
#PDF出力
wkhtmltopdf --disable-smart-shrinking --page-size A4 --orientation Landscape --header-spacing 6 --header-center '[title] [date] 作成' --footer-spacing 5 --footer-center '[page]/[topage]' --margin-top 20 --margin-left 20 --margin-right 20 --margin-bottom 20 `date +%Y%m%d_$1一覧`.html `date +%Y%m%d_$1一覧`.pdf

#ここからハガキ出力作業
#mdの別名保存
cp $1.md `date +%Y%m%d_$1年賀状`.md
#郵便番号を除く算用数字を漢数字へ
sed -i -e '/[0-9]\{7\}/!y/1234567890*/一二三四五六七八九〇*/' `date +%Y%m%d_$1年賀状`.md
#htmlに変換
pandoc `date +%Y%m%d_$1年賀状`.md -c nenga.css -s -t html5 -f markdown+hard_line_breaks -o `date +%Y%m%d_$1年賀状`.html
#<p></p>ではさむ調整
sed -i -e 's/<span/<p><span/g' `date +%Y%m%d_$1年賀状`.html
sed -i -e 's/<\/span><br \/>/<\/span><\/p>/g' `date +%Y%m%d_$1年賀状`.html
sed -i -e 's/<p><p><span/<p><span/g' `date +%Y%m%d_$1年賀状`.html
#住所の縦棒(ダッシュ)へ置換
sed -i -e '/<\/header>/,/<!--NoPost/ y/-−ー*/―――*/' `date +%Y%m%d_$1年賀状`.html
sed -i -e 's/<!――NoPost/<!--NoPost/g' `date +%Y%m%d_$1年賀状`.html

#PDF出力
google-chrome --headless --print-to-pdf=`date +%Y%m%d_$1年賀状`.pdf `date +%Y%m%d_$1年賀状`.html


#いらない中間ファイルを削除。上手くpdfができないときは、ここをコメントアウトして、htmlソースを見てみる。
rm -f `date +%Y%m%d_$1一覧`.md
rm -f `date +%Y%m%d_$1一覧`.html
rm -f `date +%Y%m%d_$1年賀状`.md
rm -f `date +%Y%m%d_$1年賀状`.html

去年までは↑ここまでで良かったのだけど、2019年12月末現在、Google Chrome 79.0.3945.88 でのヘッドレスPDF出力で、なぜか、白紙が偶数ページに挟まれてしまうトラブルが発生…。

そのため、下記をスクリプトの最後に追加してください。

#PDFの奇数ページだけを抽出。
pdftk `date +%Y%m%d_$1年賀状`.pdf cat odd output `date +%Y%m%d_$1年賀状完成`.pdf
rm -f `date +%Y%m%d_$1年賀状`.pdf

Google Chrome 側の問題のような気がするので、もし、Chromeのバージョンが上がって、PDF出力に問題なくなったら、コメントアウトなり、削除するなりしてください。

test.md

テキストエディタを開いて、以下のような書き方で「test.md」を作成していく。
完全にpandoc拡張markdownです…。

最初の「%年賀状」を書かないと、Pandocから「タイトル入れなさい」ってエラーが出るのでちゃんと書く。
数字は半角数字で。

%年賀状

:::::sheet
[1112222]{.郵便番号}
[鹿児島市霧島町11―2]{.住所}
[霧島 太郎 様]{.宛名}
[鹿児島市桜島町111<br />火山ビル101号]{.差出人住所}
[桜島 花子]{.差出人}
[2223333]{.差出人郵便番号}
:::::

:::::sheet
[2223333]{.郵便番号}
[鹿児島市錦江湾町55−1]{.住所}
[金目鯛 次郎 様]{.宛名}
[鹿児島市桜島町111<br />火山ビル101号]{.差出人住所}
[桜島 花子]{.差出人}
[2223333]{.差出人郵便番号}
:::::

<!-- 宛名面に差出人氏名住所を書かないのであれば以下でOK -->

:::::sheet
[3334444]{.郵便番号}
[鹿児島市藺牟田池町22-1<br />白鳥ビル110号]{.住所}
[白鳥 玲子 様]{.宛名}
:::::

<!-- 連名の場合 -->

:::::sheet
[4445555]{.郵便番号}
[鹿児島県鹿児島市桜島町1122-1<br />火山灰マンションあ−100号]{.住所}
[山下 太郎 様
   花子 様
   一郎 様
   次郎 様]{.宛名}
:::::

<!-- 喪中等で今年は出さない場合は、以下の「NoPost」と「NoPost」の行の間に書く。 「NoPost」の行の前後には必ず1行開ける-->

<!--NoPost

:::::sheet
[6667777]{.郵便番号}
[鹿児島市桜島町77-7]{.住所}
[山田 太郎 様]{.宛名}
[]{.差出人住所}
[]{.差出人}
[]{.差出人郵便番号}
:::::

:::::sheet
[7778888]{.郵便番号}
[鹿児島市桜島町88-8]{.住所}
[山田 花子 様]{.宛名}
[]{.差出人住所}
[]{.差出人}
[]{.差出人郵便番号}
:::::

NoPost-->

スクリプト実行

フォルダ内で右クリック > 端末で開く で端末を起動。以下を打ちんでエンターキーを押せば、pdfファイルが2つできているはず。

$ sh makenenga.sh test

ファイル名(test)を入力するときは、拡張子(.md)はいらないので注意。

pdfファイル完成

f:id:adbird:20181221020535p:plain
年賀状宛名面
f:id:adbird:20181221020623p:plain
年賀状一覧

Pandoc md→html の脚注番号に丸括弧をつけるcss

文系の論文でよくある(理系はよく知らない)、丸括弧つきの脚注番号となるようにする。

pandocのバージョンは、1.19.2.4。バージョンが変わると使えなくなる可能性があります。

案の定、Pandocのバージョンを最新の2.5にしたら、本文の脚注番号のclassがfootnoteRefからfootnote-refに変わっていたので、paper.cssを修正。

Pandoc2.5で確認。バージョンが変わると使えなくなる可能性があります。

test.md

% こころ
% 夏目漱石
% 1914(大正3)年4月

私は次の日も同じ時刻に浜へ行って先生の顔を見た。その次の日にもまた同じ事を繰り返した。けれども物をいい掛ける機会も、挨拶をする場合も、二人の間には起らなかった。その上先生の態度はむしろ非社交的であった。一定の時刻に超然として来て、また超然と帰って行った。周囲がいくら賑やかでも、それにはほとんど注意を払う様子が見えなかった。最初いっしょに来た西洋人はその後まるで姿を見せなかった。先生はいつでも一人であった。^[夏目漱石『こころ』青空文庫より<br />テスト]

paper.css (Pandoc2.5で確認)

p{font-size:10pt;
    font-family:"IPAex明朝",serif;
    line-height:1.8; /*行間*/
    margin:1pt 0 0 0; /*段落間の行間*/
    padding-left:1em;
    text-indent:1em;
    text-align: justify;
    text-justify: inter-ideograph;}

/* 本文の脚注番号 */
a.footnote-ref:link {text-decoration: none; color:black ; }
a.footnote-ref:visited {text-decoration: none; color:black ; }
a.footnote-ref:hover {text-decoration: none; color:black ; }
a.footnote-ref:active {text-decoration: none; color:black ; }

.footnote-ref sup{font-size:7pt;}

/* 本文の脚注番号に丸括弧をつける */
.footnote-ref sup::before {
    content:"(";}
.footnote-ref sup::after {
    content:")";}


/*以下、脚注番号の設定*/ 
.footnotes li{
  list-style-type:none;
  list-style-position:outside;
  counter-increment: cnt;
}

.footnotes ol {
  padding:0 0 0 0;
  margin:0;
}

/*脚注のフォント,段落*/
.footnotes p{
    padding:0 0 0 0;
    margin:0;
    font-family:"IPAex明朝",serif;
    font-size:9pt;
    padding-left:2em;
    text-indent:-1.5em;
}

/*脚注番号の前後に丸括弧をつける*/
.footnotes p:before{
   display:inline;
  content: "(" counter(cnt) ") ";
}

/*脚注の文章の後ろにつく「↵」マークを隠す*/
.footnotes a:link { visibility:hidden;}
.footnotes a:visited { visibility:hidden;}
.footnotes a:hover { visibility:hidden;}
.footnotes a:active { visibility:hidden;}

Pandocで変換

$ pandoc test.md -s -c paper.css -t html5 -o test.html

wkhtmltopdfでhtmlからPDFへ

wkhtmltopdfのバージョンは0.12.5 (with patched qt)。

$ wkhtmltopdf --disable-smart-shrinking --encoding 'UTF-8' --footer-center '[page]' --footer-font-size 9 --margin-top 20 --margin-left 20 --margin-right 20 --margin-bottom 15 test.html `date +%Y%m%d-test`.pdf

↓こんな感じに。

f:id:adbird:20181214221859p:plain

フォントの検索

$ fc-list | grep [フォント名などのキーワード]

例えば、PCに入っている明朝体のフォント一覧を調べたいとき。ただし、フォント名に「明朝」が入っていないと引っかからない。

$ fc-list | grep 明朝

ゴシック体を調べたいとき。ただし、フォント名に「ゴシック」が入っていないと引っかからない。

$ fc-list | grep ゴシック

Ubuntu18.04にwkhtmltopdfを再インストール

Ubuntu18.04のレポジトリに入っているwkhtmltopdf(0.12.4-1)をインストールして、いざ使ってみようとしたら、

あれ? --disable-smart-shrinking や --margin などのオプションが効かないぞ?

ということで、一旦アンインストールして、レポジトリからではなく公式サイトからたどったGitHubからインストールすることに。

Ubuntu18.04のコードネームは「Bionic Beaver」だから、「bionic_amd64.deb」をダウンロードすればいいはず…。

$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb

でダウンロード。

次にダウンロードしたdebをインストールするには、gdebi というツールがいいらしいので、それをインストール。

$ sudo apt install gdebi

そして、そのgdebiを使って、最初にダウンロードしたdebをインストール。

$ sudo gdebi wkhtmltox_0.12.5-1.bionic_amd64.deb

これで無事、 -disable-smart-shrinking や --margin オプションも使えるようになった。


追加:

その後、バージョンを 0.12.6 (with patched qt) に上げたら、ローカルのhtmlをpdfにしょうとするとエラーが出て、画像を読み込めず、cssの効いていないPDFになった。

いろいろ調べて、 --enable-local-file-access オプションをつければ上手くいった。

BIOSブート優先順序変更・ブート選択

これまでUbuntu14.04LTSとWindows10のデュアルブート環境(HDD1台上)だったのだが、Ubuntu14.04のサポートが来年2019年4月で終わるので、18.04LTSにしようと思い、いろいろ考えたり、試行したりした結果、HDD2台を使っての物理的なデュアルブート?環境にした。

つまり、1台のHDDにUbuntuがインストールされていて、もう1台のHDDにWindowsがインストールされているという状況。

1台のHDD上でのデュアルブートでは、Windowsブートマネージャー(またはgrubだったり)でどちらかのOSを選択すればよかったのだが、物理的に2台に分かれているときはどうすればいいか? BOISでブートする先を選択すればいいのだ。

僕の場合、普段はUbuntuでいいのだが、仕事上どうしてもWordなどを使わないといけない場合があるので、そのときはWindowsを立ち上げねばならない、という感じ。

優先順位を変える

まずは普段遣いのUbuntuが入っているHDDを優先的にブートするように順番を変える。
※以下はマザーボードGIGABYTEのH81M-DS2での場合。PCのメーカーやマザーボードにより押すキーやBIOS画面が変わってくるので注意。

PCの電源を入れて、OSが立ち上がる前に 「F2」 を連打するとBIOS画面になるので、「起動オプション #1」をUbuntuにする。
下の画面でUbuntuが2つあるのは、おそらく「/(ルート)」と「/home」の2つにパーティションを切ってインストールしたからだと思う。起動オプションの#1と#2をUbuntuにしておけばいい。

これで普段は、PCの電源を入れたら、Ubuntuが立ち上がる。

f:id:adbird:20181213154447j:plain
BIOS画面

たまにブート先を変える場合

そして、たまにWindowsが必要な場合は、PCの電源を入れてOSが立ち上がる前に、 「F12」 を押せば、いちいちBIOSに入らなくても、ブート選択画面が出てくるので、僕の場合「P0 〜」を選択すればWindowsが立ち上がる。

追記

マザーボードASUS PRIME H310M-E R2.0【MicroATX】 に替えたので、一時的にブート先を変えるときのボタンが「F8」になった。

PCの電源を入れてOSが立ち上がる前に、「F8」を連打すると下の画面が出てくるので、ブート先のハードディスクを選択できる。

f:id:adbird:20200521151312j:plain

ffmpegでTS(m2ts)ファイルをmp4に変換

追記:

長いファイル名の動画が複数ある場合などはファイル名の入力・コピペが面倒。

そこで動画名を入力しないですむ、もっと楽な方法を書きました。

ffmpegでTS(m2ts)ファイルをmp4に変換 2019年版

下記の内容より、↑ の方法をオススメします。


※注意:下記の記事の環境はUbuntu14.04です。現在のUbuntu18.04環境では再生時の音声トラブルも、WinFF変換時の音声トラブルもなくなったっぽいです。普通にWinFFを使えばトラブルなく変換できています。

  • WinFF ←Windowsの人はここで「Clone or download」をクリックして、「Download ZIP」でzipファイルをダウンロードしてインストールすればいいはず。
  • QWinFF 使ったことはないけど、これも良さげ。

動画の変換はGUIのWinFFというソフトがシンプルで簡単だったのでそれを使っていた。

しかし、あるTSファイルをWinFFでmp4に変換したら、変換後のmp4から音声が出ない…。

あるTSファイルとはN○Kの番組を録画したもので、目的の番組の前にニュースなどがちょっとだけ録画されてしまっていて、vlcで再生する際に音声がスローになってブツブツ切れてしまうファイル(界隈では結構有名な音声切り替えによるトラブル)。

TSファイルを見るだけなら、vlc再生時に一度音声を無効にしてから、また音声を有効にすればよいのだが、そのままだとファイルサイズが巨大すぎるのでmp4に変換してファイルサイズを小さくしたい。

WindowsならTsSplitterというソフトで対処できるらしい。

が、僕はUbuntuだし、わざわざwineを使ってまでWindowsのソフトを使いたくはない。

そこでいろいろ調べて、試行錯誤した結果、次のようにすれば問題のあるTSファイルでも変換できた。

シェルスクリプト

以下のような「tstomp4.sh」を作る。

(べつにシェルスクリプトを作らなくても、好きなものを選んで、端末で実行してもいい。動画名を2回入力するのが面倒なので、これを作った。)

# 音声エンコードなし
#ffmpeg -y -vsync 1 -i $1.m2ts -f mp4 -vcodec libx264 -map 0:0 -map 0:1 -s 1280x720 -aspect 16:9 -acodec copy -bsf:a aac_adtstoasc -ss $2 $1.mp4

# 音声ac3
#ffmpeg -y -vsync 1 -i $1.m2ts -f mp4 -vcodec libx264 -map 0:0 -map 0:1 -s 1280x720 -aspect 16:9 -acodec ac3 -b:a 192k -ss $2 $1.mp4

# 音声aac
ffmpeg -y -vsync 1 -i $1.m2ts -f mp4 -vcodec libx264 -map 0:0 -map 0:1 -s 1280x720 -aspect 16:9 -codec:a aac -bsf:a aac_adtstoasc -strict -2 -ss $2 $1.mp4

音声切り替えトラブルのないTSファイルなら、上記の「音声エンコードなし」でもいいのだが、音声切り替えトラブルがあるTSファイルの場合は「音声ac3」(ac3はDVD-Videoの音声コーデック)か「音声aac」にする。上記スクリプトでは「音声aac」にしている(それ以外はコメントアウトしている)。

  • $1 : 下記コマンドで入力する動画ファイル名が挿入される。
  • map 0:0 : 映像ストリーム
  • map 0:1 : 音声ストリーム。
  • $2 : 下記コマンドで入力する変換開始時間が挿入される(x秒後のところから変換する)。
    変換開始時間は目的の番組が始まった以降の時間を入れる。

実行

「tstomp4.sh」と変換したいTSファイルを同じフォルダに入れて、端末で開いて以下を実行。

sh tstomp4.sh [ファイル名。ただし、拡張子は書かない。] [変換開始時間]

例えば、test.m2ts というファイルの、冒頭3秒間にニュース等が録画されているとする。
そこで冒頭から(余裕を持って)5秒後、つまり目的の番組が始まったところから変換する場合は、

sh tstomp4.sh test 5

とする。test.mp4 ができているはず。

シンプルな方法(音声エンコードなし)

なお、冒頭部分をカットせずにたんに変換する場合は以下のコマンド。ただし、前記したように、古い環境では音声切替で問題が出る恐れあり。

$ ffmpeg -y -vsync 1 -i 入力.m2ts -f mp4 -vcodec libx264 -map 0:0 -map 0:1 -s 1280x720 -aspect 16:9 -acodec copy -bsf:a aac_adtstoasc 出力.mp4

変換するファイル名が長いときや、ファイルが複数ある場合は、上記コマンドでは面倒くさいので、ffmpegでTS(m2ts)ファイルをmp4に変換 2019年版 を強くオススメする。


ポータブックのWindows10大型アップデート

追記:その後のWindowsの大型アップデートで下記の方法でも上手くいかなったので、ついにUbuntuをインストールした。↓

ポータブックにUbuntu18.04をインストール - adbird(広告鳥) 備忘録


本体のストレージの容量が貧弱すぎて、Windowsの大型アップデートに失敗するポータブック

いろいろやってみた結果、以下の手順が確実で手間がかからない。

  1. 空のUSBメモリを用意(できるだけ大きな容量、今回は32GBのを使用)。
  2. 他のWindowsパソコンでMedia Creation Tool(メディアクリエイションツール)をダウンロードして、インストールメディアのUSBメモリを作成(アーキテクチャは64ビットにする)。
  3. そのUSBメモリをポータブックに挿して、「setup.exe」をダブルクリックしてあとは気長に待つ。

ほぼ以下の参照サイトなどで紹介されている方法と一緒なのだけど、メディアクリエイションツールでインストールメディアのUSBメモリを作成することが、なぜかポータブックでは失敗したので、他のWindowsパソコンで作成せざるを得なかったということぐらい。

まあ、パソコンはポータブックだけしか持っていない、なんて人はいないだろうし、ほとんどの人はポータブックとは別のメインのWindowsパソコン持っているだろうし、問題ないだろう。

ざっと手順メモ。

  • USBメモリのインストールメディアからアップデートするので、ポータブックのCドライブの空き容量は関係ないとは思うけど、バックアップも兼ねて、ドキュメント類を全部、他の場所(空のUSBメモリとは別のUSBメモリや、グーグルドライブなどのクラウドなど)に移して、Cドライブの空き容量を4GBほどにした。
  • 空のUSBメモリを挿したWindowsパソコン(ポータブック以外)で、Windows 10 のダウンロード のページヘいき、「ツールを今すぐダウンロード」をクリックして、メディアクリエイションツールをダウンロード。
  • ダウンロードしたメディアクリエイションツールの実行ファイルをダブルクリックして、実行。
  • 「実行する操作を選んでください」という画面になったら、「別のPCのインストールメディアを作成する(USBフラッシュドライブ、〜)」を選択して、次へ。
  • 「言語、アーキテクチャ、エディションの選択」という画面になったら、アーキテクチャを64ビットを選択する。
  • インストールメディアのUSBメモリが作成したら、そのUSBメモリをポータブックの方に挿して、フォルダを開いて「setup.exe」をダブルクリックしてアップデート。時間がかかるので、そのつもりで。

面倒くさがって大型アップデート(バージョン1803)をするのを後回しにし続けていて、ようやく重い腰を上げてアップデートしようとしたら、たまたまさらに新しい大型アップデート(バージョン1809)の開始日だった。

(ちなみにWindows 10 のバージョン履歴→ Windows ライフサイクルのファクト シート

そういうこともあり、最初、インストールメディアのUSBメモリの「setup.exe」を実行したら、途中、更新に失敗しましたってエラーが一度出たものの一応はアップデートは終わったので、確認したらバージョン1709…。

もう一度「setup.exe」を実行したら、今度はうまく行き、ちゃんと最新のバージョン1809になった。