はじめに

PDF結合をコマンドでできるというのを見たので、試してみようかなと思い実際にやってみた。

環境

1
2
3
Windows 10 Professional
WSL2 - (Ubuntu22.04 LTS)
pdfunite version 22.02.0

pdfuniteのインストール

1
$ sudo apt-get install poppler-utils

↓インストール実行

  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
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  fontconfig-config fonts-dejavu-core libcairo2 libdeflate0 libfontconfig1 libfreetype6 libjbig0 libjpeg-turbo8
  libjpeg8 liblcms2-2 libnspr4 libnss3 libopenjp2-7 libpixman-1-0 libpoppler118 libtiff5 libwebp7 libxcb-render0
  libxcb-shm0 libxrender1 poppler-data
Suggested packages:
  liblcms2-utils ghostscript fonts-japanese-mincho | fonts-ipafont-mincho fonts-japanese-gothic | fonts-ipafont-gothic
  fonts-arphic-ukai fonts-arphic-uming fonts-nanum
The following NEW packages will be installed:
  fontconfig-config fonts-dejavu-core libcairo2 libdeflate0 libfontconfig1 libfreetype6 libjbig0 libjpeg-turbo8
  libjpeg8 liblcms2-2 libnspr4 libnss3 libopenjp2-7 libpixman-1-0 libpoppler118 libtiff5 libwebp7 libxcb-render0
  libxcb-shm0 libxrender1 poppler-data poppler-utils
0 upgraded, 22 newly installed, 0 to remove and 0 not upgraded.
Need to get 8299 kB of archives.
After this operation, 31.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
0% [Working]
Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 poppler-data all 0.4.11-1 [2171 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 fonts-dejavu-core all 2.37-2build1 [1041 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 fontconfig-config all 2.13.1-4.2ubuntu5 [29.1 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libfreetype6 amd64 2.11.1+dfsg-1ubuntu0.1 [389 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy/main amd64 libfontconfig1 amd64 2.13.1-4.2ubuntu5 [131 kB]
Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpixman-1-0 amd64 0.40.0-1ubuntu0.22.04.1 [264 kB]
Get:7 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxcb-render0 amd64 1.14-3ubuntu3 [16.4 kB]
Get:8 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxcb-shm0 amd64 1.14-3ubuntu3 [5780 B]
Get:9 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxrender1 amd64 1:0.9.10-1build4 [19.7 kB]
Get:10 http://archive.ubuntu.com/ubuntu jammy/main amd64 libcairo2 amd64 1.16.0-5ubuntu2 [628 kB]
Get:11 http://archive.ubuntu.com/ubuntu jammy/main amd64 libdeflate0 amd64 1.10-2 [70.9 kB]
Get:12 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjpeg-turbo8 amd64 2.1.2-0ubuntu1 [134 kB]
Get:13 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjpeg8 amd64 8c-2ubuntu10 [2264 B]
Get:14 http://archive.ubuntu.com/ubuntu jammy/main amd64 liblcms2-2 amd64 2.12~rc1-2build2 [159 kB]
Get:15 http://archive.ubuntu.com/ubuntu jammy/main amd64 libnspr4 amd64 2:4.32-3build1 [119 kB]
Get:16 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libnss3 amd64 2:3.68.2-0ubuntu1.1 [1280 kB]
Get:17 http://archive.ubuntu.com/ubuntu jammy/main amd64 libopenjp2-7 amd64 2.4.0-6 [158 kB]
Get:18 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libjbig0 amd64 2.1-3.1ubuntu0.22.04.1 [29.2 kB]
Get:19 http://archive.ubuntu.com/ubuntu jammy/main amd64 libwebp7 amd64 1.2.2-2 [206 kB]
Get:20 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libtiff5 amd64 4.3.0-6ubuntu0.3 [183 kB]
Get:21 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpoppler118 amd64 22.02.0-2ubuntu0.1 [1077 kB]
Get:22 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 poppler-utils amd64 22.02.0-2ubuntu0.1 [186 kB]
Fetched 8299 kB in 11s (733 kB/s)
Selecting previously unselected package poppler-data.
(Reading database ... 24130 files and directories currently installed.)
Preparing to unpack .../00-poppler-data_0.4.11-1_all.deb ...
Unpacking poppler-data (0.4.11-1) ...
Selecting previously unselected package fonts-dejavu-core.
Preparing to unpack .../01-fonts-dejavu-core_2.37-2build1_all.deb ...
Unpacking fonts-dejavu-core (2.37-2build1) ...
Selecting previously unselected package fontconfig-config.
Preparing to unpack .../02-fontconfig-config_2.13.1-4.2ubuntu5_all.deb ...
Unpacking fontconfig-config (2.13.1-4.2ubuntu5) ...
Selecting previously unselected package libfreetype6:amd64.
Preparing to unpack .../03-libfreetype6_2.11.1+dfsg-1ubuntu0.1_amd64.deb ...
Unpacking libfreetype6:amd64 (2.11.1+dfsg-1ubuntu0.1) ...
Selecting previously unselected package libfontconfig1:amd64.
Preparing to unpack .../04-libfontconfig1_2.13.1-4.2ubuntu5_amd64.deb ...
Unpacking libfontconfig1:amd64 (2.13.1-4.2ubuntu5) ...
Selecting previously unselected package libpixman-1-0:amd64.
Preparing to unpack .../05-libpixman-1-0_0.40.0-1ubuntu0.22.04.1_amd64.deb ...
Unpacking libpixman-1-0:amd64 (0.40.0-1ubuntu0.22.04.1) ...
Selecting previously unselected package libxcb-render0:amd64.
Preparing to unpack .../06-libxcb-render0_1.14-3ubuntu3_amd64.deb ...
Unpacking libxcb-render0:amd64 (1.14-3ubuntu3) ...
Selecting previously unselected package libxcb-shm0:amd64.
Preparing to unpack .../07-libxcb-shm0_1.14-3ubuntu3_amd64.deb ...
Unpacking libxcb-shm0:amd64 (1.14-3ubuntu3) ...
Selecting previously unselected package libxrender1:amd64.
Preparing to unpack .../08-libxrender1_1%3a0.9.10-1build4_amd64.deb ...
Unpacking libxrender1:amd64 (1:0.9.10-1build4) ...
Selecting previously unselected package libcairo2:amd64.
Preparing to unpack .../09-libcairo2_1.16.0-5ubuntu2_amd64.deb ...
Unpacking libcairo2:amd64 (1.16.0-5ubuntu2) ...
Selecting previously unselected package libdeflate0:amd64.
Preparing to unpack .../10-libdeflate0_1.10-2_amd64.deb ...
Unpacking libdeflate0:amd64 (1.10-2) ...
Selecting previously unselected package libjpeg-turbo8:amd64.
Preparing to unpack .../11-libjpeg-turbo8_2.1.2-0ubuntu1_amd64.deb ...
Unpacking libjpeg-turbo8:amd64 (2.1.2-0ubuntu1) ...
Selecting previously unselected package libjpeg8:amd64.
Preparing to unpack .../12-libjpeg8_8c-2ubuntu10_amd64.deb ...
Unpacking libjpeg8:amd64 (8c-2ubuntu10) ...
Selecting previously unselected package liblcms2-2:amd64.
Preparing to unpack .../13-liblcms2-2_2.12~rc1-2build2_amd64.deb ...
Unpacking liblcms2-2:amd64 (2.12~rc1-2build2) ...
Selecting previously unselected package libnspr4:amd64.
Preparing to unpack .../14-libnspr4_2%3a4.32-3build1_amd64.deb ...
Unpacking libnspr4:amd64 (2:4.32-3build1) ...
Selecting previously unselected package libnss3:amd64.
Preparing to unpack .../15-libnss3_2%3a3.68.2-0ubuntu1.1_amd64.deb ...
Unpacking libnss3:amd64 (2:3.68.2-0ubuntu1.1) ...
Selecting previously unselected package libopenjp2-7:amd64.
Preparing to unpack .../16-libopenjp2-7_2.4.0-6_amd64.deb ...
Unpacking libopenjp2-7:amd64 (2.4.0-6) ...
Selecting previously unselected package libjbig0:amd64.
Preparing to unpack .../17-libjbig0_2.1-3.1ubuntu0.22.04.1_amd64.deb ...
Unpacking libjbig0:amd64 (2.1-3.1ubuntu0.22.04.1) ...
Selecting previously unselected package libwebp7:amd64.
Preparing to unpack .../18-libwebp7_1.2.2-2_amd64.deb ...
Unpacking libwebp7:amd64 (1.2.2-2) ...
Selecting previously unselected package libtiff5:amd64.
Preparing to unpack .../19-libtiff5_4.3.0-6ubuntu0.3_amd64.deb ...
Unpacking libtiff5:amd64 (4.3.0-6ubuntu0.3) ...
Selecting previously unselected package libpoppler118:amd64.
Preparing to unpack .../20-libpoppler118_22.02.0-2ubuntu0.1_amd64.deb ...
Unpacking libpoppler118:amd64 (22.02.0-2ubuntu0.1) ...
Selecting previously unselected package poppler-utils.
Preparing to unpack .../21-poppler-utils_22.02.0-2ubuntu0.1_amd64.deb ...
Unpacking poppler-utils (22.02.0-2ubuntu0.1) ...
Setting up liblcms2-2:amd64 (2.12~rc1-2build2) ...
Setting up libpixman-1-0:amd64 (0.40.0-1ubuntu0.22.04.1) ...
Setting up libxrender1:amd64 (1:0.9.10-1build4) ...
Setting up libxcb-render0:amd64 (1.14-3ubuntu3) ...
Setting up libdeflate0:amd64 (1.10-2) ...
Setting up libxcb-shm0:amd64 (1.14-3ubuntu3) ...
Setting up libjbig0:amd64 (2.1-3.1ubuntu0.22.04.1) ...
Setting up poppler-data (0.4.11-1) ...
Setting up libfreetype6:amd64 (2.11.1+dfsg-1ubuntu0.1) ...
Setting up libnspr4:amd64 (2:4.32-3build1) ...
Setting up fonts-dejavu-core (2.37-2build1) ...
Setting up libjpeg-turbo8:amd64 (2.1.2-0ubuntu1) ...
Setting up libwebp7:amd64 (1.2.2-2) ...
Setting up libopenjp2-7:amd64 (2.4.0-6) ...
Setting up libjpeg8:amd64 (8c-2ubuntu10) ...
Setting up fontconfig-config (2.13.1-4.2ubuntu5) ...
Setting up libnss3:amd64 (2:3.68.2-0ubuntu1.1) ...
Setting up libtiff5:amd64 (4.3.0-6ubuntu0.3) ...
Setting up libfontconfig1:amd64 (2.13.1-4.2ubuntu5) ...
Setting up libcairo2:amd64 (1.16.0-5ubuntu2) ...
Setting up libpoppler118:amd64 (22.02.0-2ubuntu0.1) ...
Setting up poppler-utils (22.02.0-2ubuntu0.1) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.1) ...
/sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link

pdfuniteコマンドを使って結合をする

1
pdfunite [入力ファイル]... [出力ファイル]

例:

1
pdfunite 1.pdf 2.pdf output.pdf

PDF結合がこれでできる。
※入力するPDFファイルはいくつでも設定できる。
最後に出力するPDFのファイル名を設定すればよい。

気になったこと

※iLovePDFだけPDF結合した成果物がPHPのダウンロードする際に破損してしまう場合があった。
なので、おそらくどこかが違うのだがpdfuniteではどうなるか確認してみる。 というわけで、iLovePDF, smallPDF, pdfuniteのコマンドでのそれぞれの結合した際のバイナリを一応比較する。

iLovePDF iLovePDF_1_2_merged

smallPDF pdfunite_1_2_merged

pdfunite pdfunite_1_2_merged

各ファイルのサイズ

size ※smallPDFだけ容量が少ない。

比較

winmerge iLovePDFとpdfuniteが似たような結果に…。

URL

参考サイト様

おわりに

いつも iLovePDF, smallPDF で作成していたが、コマンドでできるのでこれを使っていこうと思う。