CS5で開くと、CS5が固まる問題を調査しました。この現象を確認したのは、CentOS上で変換したJEPGファイルです。昔はこんなことは無かった気がしますが、いつの間にかこの問題が発生していたので調査しました。Q16CentOS上のImageMagickでJPEGファイルをEPSファイルにconvertしたものをイラレCS5で開くとイラレが固まって強制終了するしかなくなります。単純に変換するときのコマンドです。a.eps環境それぞれで生成されたEPSファイルを比較しました。end="r"?>%end_xml_codeというものが追加されていました。MACのフォトショCS5.1で保存されたとの記載を確認できます。簡単に言うとファイル情報ですね。これを削除するとイラレは固まらずにファイルを開けます。/>」がベタで書かれていました。この行、ソースとしてはベタで書かれていてちょっと引っかかったので、行をコメントアウト、つまり先頭に「%」を追加すると、イラレで固まらなくなりました。XMLをPostScriptにベタで書いているので構文エラーで固まっていたようです。PostScriptにはヒアドキュメントはなかった気がするので、stremaとしてデータとして埋め込むか、1行ずつコメントアウトしてやらないとだめなのでしょう。XML情報は特に必要がないので、除去するオプション「-strip」を追加してconvertしてみます。a.epsこれでファイル情報が格納されなくなり、イラレで無事開けるようになりました。ファイル情報が埋め込まれるかどうかはコンパイル時のスイッチ設定だとは思うのですが、そこまでガッツリ調べるのが面倒なので、回避方法を確認したところで良しとします。admin3TCPDFで縦書きを実現するには、フォント設定ファイルの書き換えで実現するのが一般的です。Acrobatでは、PostScriptで印刷ができません。「文章を印刷できません。「印刷するページが選択されていません。」と表示されて出力できません。画像として印刷することはできますが、今一つな感じです。Illustratorに読み込ませればアウトライン化されるので印刷に使用できるようになりますが、ページが複数ある場合は現実的ではありません。ちなみに、「Foxit」ではPostScriptのままで出力できるので、こちらを使用するのも手です。要は、TCPDFで縦書きテキストを生成する際に指定するCIDフォントは非埋め込みであり、これがPostScriptで印刷する場合に問題となるというわけです。埋め込んで縦書きを実現してみる方法を探してみましょう。TCPDFの標準エンコードは「Identity-H」です。この形式でないとフォントを埋め込めないというか、フォント埋め込み用の独自エンコードかもしれません。PostScriptを弄っている人なら、末尾の「-H」が気になりますね。これを変更するには、本体の「tcpdf.php」ファイルを書き換える必要があります。'Identity-H';というコードがあるので、「’Identity-V’」に書き換えてみましょう。すると、なんということでしょう。テキストが縦書きになりました。フォント設定ファイルは何も弄りません。フォントは埋め込みの状態にしておきます。非埋め込みでは化けます。見ると括弧やハイフンなどが横書き用のままです。CIDフォントでは「uni2cid_aj16.php」をincludeすることでマッピングを変更しているのですが、Identityでマッピングをしているところがまだよくわかりません。これを調整でいれば完全な縦書きを実現できるはずです。参考頂き、対応方法を見つけられましたらご一報いただければ幸いです。余裕があれば調査します。admin返信Illustratorのような高価なアプリにはかないません。Inkscapeのような自由なアプリにはかないません。ブラウザ上でちょこちょこっと弄るだけで印刷の注文ができたら良いですよね?ということで、少し前からですがプリントライで公開しています。Cloud、略してPLEC。プレクとでも呼びましょうか。フォントの都合上少しバランスがおかしかったりしてます。縦書きのようなこともできます。自分の持ってる画像をアップロードすればデザインに使えます。使い勝手はラベル屋さんを参考にしてあります。データを保存すると、印刷用のPostScriptでファイルを作りますので、IllustratorやInkscapeで作ったのものと同じになります。保存したレイアウトを公開する機能もあるので、素材やキャラクターを使用ごとに課金などもできるといいですね。例によって、レビューしてもらえれば名刺100枚を無料でお作りします。この記事では、期限を2013年4月中とします。twitterなどで、お気軽に声をかけてくださいね。admin返信PHPでPDFを扱うためのライブラリにTCPDFがあります。TCPDFでOTFフォントを使用すると、AcrobatReaderでは正常に読めても、Illustratorで正常に読めず、テキストがラスタライズされて少々気持ちの悪い事態に遭遇することとなります。Illutratorで開くことを想定しているなら、TCPDFで扱うフォントには少々の工夫が必要なので、ここに残しておきます。TCPDFで扱うフォントはTTFフォントで統一します。フォント名が同じであればTTFで作成したPDFでも、OTFフォントがインストールされた環境のIllustratorでも問題なく読むことが出来ます。OTFフォントをTTFフォントに変換するにはFontForgeを使用します。インストール方法を検索すると、Windowsのcygwin環境下でのインストール方法が沢山ヒットしますが、個人的にはうまくいかなかったので、LinuxのCentOS5を使用しました。アプリケーションはGUIでx11環境が必要なので、デスクトップ版を用意しましょう。パッケージはhttp://sourceforge.net/projects/fontforge/files/fontforge-executables/から「fontforge-20090923-1.i386.rpm」をダウンロードします。少々古いものですが、特に問題ありません。ダウンロードが終わると、ファイルをダブルクリックするだけでインストールが始まり、あっさりと完了します。アプリケーションはGUIなのですが、メニューには登録されませんのでファイルを直接起動するか、ターミナルから起動する必要があります。ターミナルで「fontforge」と入力して起動すると、読み込むファイルを要求されるのでTTFフォントに変換したいOTFフォントを選択します。選択したOTFファイルの内容によってはCIDマップファイルが必要と言われるかもしれません。CIDマップファイルはhttp://fontforge.sourceforge.net/cidmaps.tgzにありますので、ダウンロードして展開したファイルを「/usr/share/fontforge/」にコピーします。して読み込みが完了すると文字コード表が表示されるので、メニューより「CID>単一化」を選択してファイルを統合します。メニューより「ファイル>フォントを保存」を選択して、保存形式を「TrueType」に設定し、保存ファイル名を入力して保存すれば完了です。これで変換作業は完了です。作成されたTTFファイルを開いて正常に読み込むことができれば成功です。フォントファイルをTCPDFで扱える状態にする方法は、ライブラリ内のtcpdf/fonts/utils/README.TXTにある通りで問題ありません。他に方法がありません。myfont.ufm」これで作成されたファイルをfontsディレクトリにコピーし、TCPDFよりPDFを作成すればAcrobatReaderでもIllustratorでも問題なく開くことが出来るPDFファイルの完成です。文章が推敲されていないのでまとめます。admin返信ActoinScriptをいじり始めて半年ぐらいになりますが、まだまだ記法に馴染めません。イベントをいちいち追加しなければならないところなどもどかしく、ボタンなんてクリックするためにあるんだからクリックイベントのメソッドぐらい用意して置けよなんて思うわけです。);}一般的なマニュアルではこうなっていますが、いちいち関数名を考える身にもなってくれと、どの道、このイベント以外からは参照しない処理だと、いちいち分けないといけない意味がわからないのです。});関数名の重複を怖がる必要はなくなりました。JavaScriptが頭にあると、スクリプトは外部ファイルに置くべきという理屈から、いちいち関数を用意していたと思うのですが、パブリッシュが前提のActionScriptでは不要の作業。考えればどうってこと無いのですが、解説サイトによっては「関数名の重複を避けるためにパッケージ化」しますなどと、むだな手間を掛けているのを見るとうんざり。無名関数をもっと使いこなしたほうがいい気がします。それに、処理速度とか、オブジェクト指向だとかそっちのけで、Perl使いとしてはこっちのほうが見やすいのです。結論から言うと失敗作というか、最小値と最大とのみを考慮して作られた式です。いって使い物になりませんが、フリーソフトではつかっちゃっているようです。動作確認用に作ったものなので、細かいエラーチェックは抜きです。%color;}結局、色を絞って変換テーブルを自作することになりましたけどね。細かい構文は別の機会に。EPSファイルを作るには、ImageMagickで画像をEPS化したものを、PerlのPostScript::Simpleでデータ毎埋め込んでいましたが、1つのデータでは特に問題がなくても、面付けまで自動的にやろうと思った場合、ファイルサイズがとんでもないことになってしまいます。そこで、画像のEPSファイルをリンクで指定できれば面付けしてもファイルサイズはぜんぜん問題になりません。そこで、いろいろ調べて見つけたものを試してみました。GSViewでは問題なく表示されても、イラストレータで開けません。試してみると、ファイルパスの指定方法に問題があるとわかりました。厳密にいうと、イラストレータのファイルパスの扱いに問題があるのですが。リンク先の画像EPSを特定の場所におこうとした場合、ドライブを含む、若しくはドライブ以下の絶対パスが必要です。そのパスを指定したくない場合は、ドライブの直下に置けばいいことがわかりました。run%%EndDocumentとなります。run%%EndDocumentとなります。ファイルパスを指定するのは面倒なので、ドライブを1つつぶしてその直下に置いたほうが断然楽でしょう。admin返信イラストレータといっても、手持ちのは古いままで7でのお話です。EPSで保存すると、プレビューとサムネールを保存するかどうかの確認がありますが、これはいったいどのように格納されているかを調べてみました。調べるといっても、サムネイルもプレビューも含まないで保存したEPSファイルと、サムネイルまたはプレビューを含んだEPSファイルを比較しただけです。保存したファイル名と保存日時のデータは無視して、それ以外を比較します。サムネイルを含んだEPSファイルを比較しました。違っていたのは、以下のとおりです。8から%%EndDataこれが、サムネイルデータのようです。バイナリが16進で格納されているようです。どの画像形式かはわかりませんが、おそらくTIFFではないでしょうか。次に、プレビューを含んだEPSファイルを比較しました。違っていたのは、以下のとおりです。1行目の先頭にバイナリデータが含まれています。その後に通常のEPSデータが始まります。PC_ColorTIFFとなっいます。最後にまたバイナリデータが含まれています。通常のEPSデータの末尾である%%EOFの後に、バイナリデータが追加されています。他のイラストレータのバージョンでは、また違うかもしれません。比較に使用したファイルをおいておきます。admin返信ImageMagickでEPSを背景なしのpngにする方法があったけど、やり方をすっかり忘れてしまったので、GostScriptにお願いすることに。input.epsWindowsの場合はgsではなくgswin32cになります。