PDF出力(その6)

背景画像の上に文字を出力できるところまでできた、その後の話。

PDF出力に使用しているtcpdfに含まれている日本語フォント(小塚フォント)だとなぜか出力されない文字があり、それが致命的だったので別のものに変えた。結果としてメイリオを入れた(つもり)。これもいくつかンフォントを試したがすんなりいかず、結局どっかのサイトで紹介されていたものを丸ごとそのまま試して何とかなったのがこれだった。

その後phpでフォームに入力したIDとパスワードでデータを検索して該当するものをPDF表示するところまでこぎつけた。レイアウトもtcpdfが一部のhtmlを表示できることからtableタグを駆使して解決した。

数年前には(シンプルで分かりやすい)情報の少なさにあきらめていたPDF出力が、今回はネットにある情報をほぼそのまま利用してどうにか目的に到達した。ライブラリをはじめ各種貴重な情報を公開している皆さんに感謝。

PDF出力(その5)

TCPDFを利用して背景画像と文字流力のめどはついた。
が、
セットになっている小塚フォントだといくつか表示されない漢字があるようだ。ちなみに自分が真っ先に気づいたのは「録」で、これは使用頻度が多いので何とか表示したい。さらに言うならば、この程度の漢字が出ないとなれば人名はかなりの頻度で文字化け状態になるだろう。

他の日本語フォントを使えるようにする必要が生じた。

PDF出力(その4)

文字コードとパス。そしてコマンドプロンプトでの作業。

オープンソースなどを自力で自分の環境に合わせようとするとき、これが一番厄介だ。特に自分のようにできるだけ面倒は避けたい(ここでいう面倒というのは初心者レベルの手抜き)とドツボりやすい。

文字コードが原因でPDFが作成できないことは解決できた。UTF-8NでTCPDF周りを扱うことが解決策だった。そのためには解凍ソフトやエディタ、アップロードソフトの文字コード扱いを再確認することが必須だった。

次に背景画像の読み込み。これはパスをこれでもかくらいに確認しろ!ということだ。特にサンプルコードを改変する場合はどこにどうパスが通っているのか理解するべきだ。

コマンドプロンプトは日常Windowで事務作業をしている限りほとんど使わないので、パソコンのどこにあってどう呼び出すかを思い出すのに苦労するようになったため、あまりさわりたくない。ましてや、参考にしている情報がLinuxとiOSとかでのものなら一度はあきらめて、他をあたる。そしてどうやらそれしか方法がないらしいと思いいたって初めて取り掛かる。

実際問題、この辺が面倒だから「アップロードしたらすぐ使えるもの」が欲しくなるわけです(笑)
それを素直に掲示板で発信しちゃうと怒られちゃうので、必死に探して何とかする(笑)

PDF出力(その3)

え~と。WordPressをアップデートしたら編集画面が訳わからん。余計なことしないでほしい。PDF云々の前にこちらを何とかしないと使いにくくてかなわん。

気を取り直して。

文字コードについては、やはり解凍ソフトとFTPソフトとエディタの設定が影響していた。パソコンを変えたためソフトの設定が中途半端だったのが原因。いずれもUTF8対応にし、サンプルの表示に成功した。

TCPDFはHTMLで書いたものをPDF出力してくれるらしいので、あとは楽勝か?とか思ったのは甘かった。

CSSがほとんど効かない。となると、差し込み印刷するには背景画像でテンプレを表示するしかないか。日本語表示もなんかピンとこない状態…ネットでも同じようなつまずきが散見されたが、これらの解決は自分にとってなかなか手ごわかった。
まあ、なるべく手抜きをしようとしているのでネットを参考にしつつも「こんな感じかな」とテキト~に作業をしているので、結構頻繁にドツボること。自業自得。
一番ドツボったのはパスだった。サンプルが動いているので、それを書き直していたが、思うような結果が得られない。パスを書き直ししているはずなのに、目的のファイルにたどり着いていない。

結果的に一応これらは解決して、次は差し込みテストに取り掛かれるまでこぎつけた。

この時点で気になるのは、日本語表示に小塚を呼び出しているのだが、表示されない文字がある。フォントは弄っていない。第1水準(だと思う)漢字なのになぜ???人名とか大丈夫なのか?

PDF出力(その2)

以前探したときにもしPDF化するならば「TCPDF」が一番取り組みやすそうだと目をつけていた。

テストもしているのだが、以前も今回も日本語表示でつまずいた。

文字コードが原因であることは自明なのだが、なぜか自分のPC環境でそれを回避できない事態になっているのだ。

以下の問題点に悩んだ。

  1. tcpdfライブラリを解凍・展開するとなぜか文字コードがSJISになっている。
  2. 解凍したファイル群UTF-8に直しアップロードするが、サーバーにはSJISでアップされている
  3. サーバー上でUTF-8に修正保存しなおし、テストファイルUTF-8でアップするが、エラーになる。

SJISで引っかかっていることは確信しているので、文字コードが原因出ることも確信しているのだが、何をやってもSJISが付きまとう。

少なくともテストファイルとライブラリの文字コードは同じにする必要があるはずなので、根本的なところで文字コードがきちんとなっていないであろうとあたりをつけた。

怪しいのは作業に使用しているアプリだろう。
圧縮・解凍ソフト、エディタ、SFTPの文字コードの扱いが変なのだろうということでこれを機に設定を改めて見直すことにした。

PDF出力(その1)

以前、領収証の発行について投稿しているが、その際はHTML表示をすることで一応の決着をつけていた。PDF出力を目指していたのだが、ライブラリをうまく使えず出力に至らなかったからだ。

amazonの領収証だってそうじゃないか。無理にPDFにすることはないと自分を納得させた。

ところが、上司から「個々人に発行する記録証をこちらで印刷するのではなくオンラインで印刷してもらったらどう?」と提案とも問い合わせともつかない一言があった。

オンライン化自体は大歓迎なのだが、この場合過去に発行した記録証があるのであまりしょぼい紙面だと非難を浴びかねない。自分的にそれは嫌だ。ましてや個々人がブラウザでどんな状態で表示および印刷しているかなんてわかりゃしない。こちらの意図する通りに印刷できているとは限らないことは十分予想できる。

そうなるとここにきて、PDF出力が避けられない状況となってしまった。

以前ネットを探した情報を再度見直すことにした。