CubePDF Utility 0.5.5β

CubePDF Utility メイン画面

CubePDF Utility 0.5.5β をリリースしました。修正点は以下の 2 点です。

  • 一部のページを別の PDF ファイルとして抽出する時、場合によって抽出後のページ順序がおかしくなる不都合を修正しました。
  • PDFium を Google Chrome 77 相当に更新しました(Cube.Native.Pdfium.Lite 1.0.3865.1)。

尚、CubePDF シリーズと PDF のパスワード保護について で触れましたが、CubePDF Utility に関しては現在、閲覧機能を強化するための修正を進めています。この修正にはもう少し時間を要する事となりそうですので、それまでの間は PDFium の更新に追随する程度に留まる予定となっています。

このブログのこれまでとこれから

ブログの URL を https://clown.cube-soft.jp/ に変更しました。近年、このブログは Cube シリーズに関する開発ブログの性質が強くなっていましたが、この度、URL を変更して正式に開発ブログと位置付ける事にしました。また、キューブ・ソフトに関わるリリース通知などは、これまで https://blog.cube-soft.jp/ で行っていましたが、今後はそれらもこのブログで兼務する予定です。

以上、まずは事務連絡。せっかくなので、この記事ではこのブログの「これまで」と「これから」について記述しようと思います。

ブログの始まり

このブログは 2005 年 10 月に、はてなブログの前身である「はてなダイアリー」でスタートします。ブログを開設した動機は、大学院に進学したため「論文を書くにあたり、日本語の文章を書く練習をしたい」と言うものでした。私は飛び級制度を利用して大学 3 年生から大学院に進学した都合上、卒業論文を経ておらず(退学扱い)論文を書くと言う行為は大学院生になって初めて経験しました。論文自体は非常に苦しみましたが、「日本語の文章を書く」と言う作業を苦にする事はなくなったので、この時の選択は非常に良かったと今でも思っています。

ブログに関しては、しばらく取り留めもない更新が続きました。現在であれば Twitter に投稿して終わりにするような記事も多く、ブログ記事として公開し続けるのは何だか恥ずかしいような気持ちもあります。また、ブログ読者もそのほとんどが大学時代の友人だったと記憶しています。そう言った状況が半年ほど続きましたが、以下の記事を公開した事で大きく変わりました。

上記は「いろいろな人が『コミュニケーション』と言う単語を口にするが、各人毎に『コミュニケーション』と言う単語の指しているものが、どうも違うような気がする」と言う漠然とした違和感を記事にしたものだったのですが、この記事が はてなブックマーク を経由して、多くの「会った事もない人々」に読まれる事となりました。この時に初めて、はてなブックマーク、あるいはソーシャルメディアと言うものの存在を認識し、これ以降それらを強く意識するようになっていきます。2010 年代に入り Twitter に代表されるソーシャルメディアの影響力が良くも悪くも強くなっていく中、早い段階で所謂「バズる」と言う現象を体験できた事は Web 上で何らかの情報を発信していく上でプラスに働いたように感じます。

ブログの休止と再開

このブログは 2014 年から 2017 年まで、まったく更新しない期間がありました。理由は私生活の変化によってブログを更新する精神的な余裕がなくなったと言うもので、当初の予定では 1, 2 ヶ月程度で復帰する予定でしたが、現実には 3 年もの空白期間を作る事となりました。

10 年以上前に上記事を書いた事を覚えています。内容自体は現在の自分から見て賛同できるかどうかは半々程度ですが、この空白の 3 年間で痛感した事は「継続する事の大切さ」でした。更新を続けている間、特にその行為に対して苦痛に感じた事はなかったのですが、更新しなくなって 1 ヶ月もすると途端にブログを更新する事(再開する事)を面倒に感じるようになってきました。

この 3 年間で得た結論としては、何かを継続するために必要なものは、言い方は悪いですが「惰性」だろうと言うものです。「情熱」や「やる気」と言ったものは、何かを始める際には非常に重要な要素となりますが、これだけで継続できる期間は多く見積もっても半年程度だろうと言うのが現在までの感想です。それ以上の継続性を求められた場合、必要な要素は良く言うと「習慣化」、悪く言うと先ほど挙げた「惰性」と言う気がします。

ブログに何を書くか?あるいは何を書かないか?

前述したように、ブログの更新を継続させると言う観点から見ると「何でも良いから、とにかく更新する(習慣化、あるいは惰性化させる)」事が重要であると感じています。その一方で、Web と言うものの社会的影響力が強まり、「デマ」や「フェイクニュース」と言うキーワードが取り沙汰される現代において「何を書くべきか?」と言う問いを考える機会も増えてきました。

私自身を振り返っても、ブログを始めてから結構な期間は「目に止まった『刺激的な』ニュース記事に対して適当な感想を書く」と言う更新を繰り返していました。この手法は「とにかく更新する」と言う観点で見ると有効なのですが、言及した内容に対して検証不十分である事が多く、デマ情報を拡散する危険性もあります。他人に対してどうこう言うつもりはありませんが、自分自身がこの態度を取り続けるのはやはり良くない、と言うのが空白の 3 年間で出した結論でした。

ブログ再開後に自らに課した規則は「自分で継続的に調査する気力のある分野のみ、情報発信していく」と言うものです。現在で言えば、Windows アプリケーションを始めとした開発やプログラミング全般に関する内容、そして Web をテーマとした諸問題の一部辺りが該当するでしょうか。それ以外の、例えば時事問題のような事象に関しては「情報収集はするが、それに対して自分が何かを言う事はしない」ように心がけています。Twitter の投稿内容まで広げるとまだまだ徹底できてるとは言い難いですが、今後もこの方針を維持できればと思っています。

そう言った訳で、このブログでは今後、Cube シリーズに関する内容、Windows アプリケーション等の開発およびプログラミングに関する内容、そして Web をテーマとした諸問題の一部を題材に更新を続けていく予定です。かつてのような更新頻度を保つことができなくなってしまいましたが、うまく惰性化できるように、もう少し頑張ってみようと思います。

CubePDF シリーズと PDF のパスワード保護について

先日、CubePDF Utility 0.5.4β のリリースが完了しました(リリースノート)。0.5.0β で大幅な改修 を行った都合で一部の機能が移行しきれておらず、0.5.1β 以降は主にそれらの移行期間と位置付けていました。0.5.4β で後述する閲覧機能以外は一通り移行が完了したのではないかと思います。

さて。CubePDF シリーズに関するお問い合わせの中で「パスワード保護」に関するものを比較的よく目にします。そこで、この記事ではパスワード保護(セキュリティ設定)に関連する内容を 2 点ほど記載します。

CubePDF Utility で PDF ファイルを開けない現象について

0.5.0β 以降、重複して頂いているお問い合わせの一つとして「パスワードが設定されていないはずの PDF ファイルを CubePDF Utility で開くとパスワードを要求されるようになった」と言うものがあります。

CubePDF Utility パスワード入力画面

PDF ファイルには「閲覧用パスワード」と「管理用パスワード」と言う 2 種類のパスワードが存在しますが、この内、PDF ファイルの編集には、管理用パスワードを必要とします*1。PDF ファイルの中には、閲覧時にはパスワードを必要としないが PDF ファイルに対する何らかの編集・操作を制限しているものがあり、こう言った PDF ファイルを編集するには、あらかじめ設定されている管理用パスワードを入力する必要があります。

尚、これに関連して、CubePDF Utility 0.4.1β では編集できていたのに 0.5.x 系にバージョンアップすると編集できなくなったと言う報告もいくつか頂いています。この事例に関しては、問題を再現できる PDF ファイルをご提供頂く等して検証しましたが、現時点では「旧バージョン(0.4.1β 以前)で編集できていた事が不都合と言わざるを得ない」と言う結論となっています。完全な再現条件はまだ不明ですが、閲覧用パスワードは設定されていないが管理用パスワードで保護されている PDF ファイルの一部で旧バージョンが各種セキュリティ設定を検知できず、編集が実行されてしまう場合があったようです*2。これが、CubePDF Utility 0.5.0β の改修で図らずとも正しく検知できるように修正され、「編集できなくなった」と言う形で顕在化しました。

CubePDF Utility は 0.5.0β より編集・操作が制限されている事を検知した場合、PDF ファイルを開く際に 管理用パスワード を要求するように変更しました。この挙動に関しては、0.6.x 系では閲覧機能の強化をテーマとする予定で、その一環として再び閲覧条件を緩める方向で修正する予定です。しかし、前述したように 0.5.x 系で編集できなくなった PDF ファイルに関しては、これまで編集できていた事が不都合の可能性が高いため、それらのファイルが管理用パスワード無しで編集可能になる事は今後ありません。誠に申し訳ありませんが、ご理解をお願いいたします。

CubePDF をパスワード保護目的で利用する際の注意点

先日、変換された PDF の色がおかしくなる現象について と言うお知らせを記載しました。この問題に関しては、次バージョンで CubePDF 側での回避方法を追加する予定ですが、ひとまずは Ghostscript 9.26 にダウングレートする形で回避して下さい(CubePDF 1.0.0 with Ghostscript 9.26 のダウンロード)。

今回の不都合ですが、PDF ファイルを CubePDF プリンタ経由で印刷して再度 PDF ファイルに変換する と言う操作を実行した時に発生しやすいようです。当初「何故、PDF ファイルを CubePDF 経由で再度 PDF に変換すると言う操作が必要なのだろうか?」と疑問に思っていたのですが、利用用途を追っている内に「PDF ファイルをパスワード保護する」と言う目的で CubePDF を利用しているユーザがそれなりに存在する事が分かってきました。

まず前提として、CubePDF は利用用途の制限なく誰でも自由に利用できる事を目標の一つとして公開しています。したがって、最終的な出力ファイルに問題ないのであれば、PDF ファイルをパスワード保護する目的で使用して頂いても、何も問題ありません。

ただ、CubePDF プリンタで印刷すると言う事は、いったん PDF ではない別のデータ形式(印刷データ)に変換する 事を意味します。この過程でファイル内部のデータ構造等も大きく変化し、場合によっては最終的な見た目にも影響が及ぶ事もあります。PDF ファイルをパスワード保護する目的で CubePDF を使用する場合、この点をご留意下さい。

CubePDF Utility メイン画面

パスワード保護を始めとした PDF ファイルへの編集機能については、前述した CubePDF Utility と言うソフトウェアを公開しています。また、PDF の結合・分割機能に関しては、さらに簡易的な CubePDF Page と言うソフトウェアも公開しています。元の PDF ファイルのデータ構造をできるだけ保持すると言う点で見ると、これらのソフトウェアを利用する方が良い場合も多いため、もし良ければご検討お願いします。

*1:閲覧用パスワードはユーザパスワード (User Password) と呼ばれる事も多いです。また、管理用パスワードはオーナーパスワード (Owner Password) と呼ばれる事も多い他、編集用パスワード、権限パスワード等いくつかの呼び方が確認されています。

*2:この条件を満たした PDF ファイルでも、CubePDF Utility の旧バージョンがセキュリティ設定を検知できる場合もあり、完全な再現条件は不明となっています。

CubePDF Utility 0.5.4β

CubePDF Utility 0.5.4β をリリースしました。修正点は以下の通りです。

詳細を設定して抽出機能を追加

0.5.0β 以降、抽出機能に関しては「選択ページを抽出」のみに制限されていました。0.5.4β では、設定用画面を新たに設ける事により、抽出条件を柔軟に変更できるようにしました。メイン画面の「詳細を設定して抽出」メニューをクリックすると、下記のような画面が表示されます。

詳細を設定して抽出画面

出力ファイル形式として、PDF に加えて PNG 形式にも対応しました。尚、PNG の場合、出力される画像ファイルのサイズ(幅x高さ)を決定するために解像度を指定して下さい。例えば、A4 サイズの PDF ファイルを PNG ファイルとして抽出した場合、72dpi なら 595 x 847px、300dpi なら 2480 x 3508px の画像として保存されます。また、PNG ファイルの性質上「1 ページ毎に個別のファイルとして保存」オプションは無視されます(1 ページ 1 ファイルの形に強制)。

サムネイルおよびプレビュー画面の表示方法を改善

0.5.0β 以降、PDF ファイルによってはサムネイルおよびプレビュー画面の表示が不明瞭な現象が確認されていました。0.5.4β では、描画方法を見直す事により、これらの問題を改善しました。また、これまでは PDF に含まれる注釈の内容は表示されていませんでしたが、注釈の内容も含めて表示されるように修正しました。

尚、現在 CubePDF Utility は PDF の描画用ライブラリとして PDFium を利用していますが、このライブラリを Google Chrome の現在の最新バージョンである Chromium 76 相当のものに更新しました。PDFium ライブラリをビルドする環境が整いましたので、今後は、Google Chrome の更新に合わせて CubePDF Utility で使用している PDFium (pdfium.dll) も自社で追随して更新していく予定です。

その他の修正

その他、メモリ消費量を改善しました。

変換された PDF の色がおかしくなる現象について

現在、主に PDF ファイルを CubePDF 経由で再度 PDF に変換した場合、下図のように変換された PDF のテキストの色が赤くなる等の現象が確認されています。

変換された PDF の色がおかしくなる現象について

この現象への対応方法に関しては、現在検討中ですが、暫定的な回避策として Ghostscript 9.26 を利用するバージョンを公開しました。該当の現象が発生した場合、下記のインストーラを用いて再インストールを試して下さい。

また、PDF ファイルの結合やパスワードの設定等の PDF ファイルの編集を目的とする場合、CubePDF UtilityCubePDF Page の利用も併せてご検討をお願いします。