EmEditor 15.8 リリース

テキストエディター「EmEditor」の15.8.0がリリースされたので更新しました。
大きく変わったのはCSV周りということですが、この形式のファイルはLibreOffice Calcで弄っているのでノータッチです。

影響があったことと言えば、ウィンドウを開く際にチンチンうるさいので、注意を促す設定をオフにしました。
それぐらいでしょうか。

GhostScriptでPDFをPNGに透過で書き出す際のおかしな挙動

名刺[55x91mm]に塗り足し3mmとトンボ9mmを追加したデータ[79x115mm]をTCPDFで作製し、それを画像化していたのですが、一定の解像度(400dpi)を超えると透過に失敗することが判明しました。
350と600で書き出したかったのですが、設計し直しですかね…

となみにスクリプトはPHPで、こんな感じ。

$command = sprintf("%s -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pngalpha -dEPSCrop -r%d -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sOutputFile=%s %s",
(isset($_SERVER['WINDIR']) ? 'gswin32c' : 'gs'),
$dpi,
$to,
$from
);

ImageMagickで解像度の指定がうまく行かない

PDF形式のファイルをPNG形式に変換するには、GhostScriptを使って変換しているわけですが、解像度が微妙な数値になるのが気になっていました。
例えば、350dpiを指定しても、実際には349.987dpiになるという具合です。
内部ではinchで格納しているデータをmmに変換する際の誤差なので大きな問題ではないのですが、見た目麗しくないので何とかならないのかと。

そうだ、ImageMagickで解像度の設定を更新すれば対応できるはずだということで検索。

http://aligach.net/diary/20091019.html によると
convert INFILE -size SRC_SIZE -scale TARGET_SIZE -density 350x350 \
-units PixelsPerInch OUTFILE

ということらしいけど、実際にやると「px/inch」ではなく「px/cm」になってしまう。

http://www.imagemagick.org/script/command-line-options.php#density
http://www.imagemagick.org/script/command-line-options.php#units
などによれば、

「-density」で解像度の数値と、「-units」で「PixelsPerInch」を同時に指定すればOKとあるものの、やはりだめ。

別の関数でやってみればと、
mogrify -density 350 -units PixelsPerCentimeter imagepath
でも、やはりだめ。

ちなみに、Windows上での話でバージョンは次の通り
ImageMagick 6.8.3-0 2013-02-13 Q16
環境によっては違うのかも?

FireAlpaca 1.5.1を入れてみた

動画機能と連携したということで、バージョン1.5.1が公開されました。
twitterを眺めていると、いろいろ試している人もいるようです。

しかしながら、お絵かきソフトとしてお絵かきしているわけでもないので、特にこの機能を有効活用できるわけでもなく。
ただ何となくバージョンを上げただけの作業でした。

とりあえず、プリントライのテンプレートを読み込めて、今まで通りの動作であるらしきことを確認して“そっ閉じ”です。

Illustrator CS5で文字を置換するスクリプト

イラレCS5での話ですが、置換ダイアログを出すところまでははアクションに登録できるものの、置換する文字の組み合わせは記録されません。
常に同じ文字を置換したくても、アクションでは対応できないのです。

仕方がないのでスクリプトをおさらいすることに。
検索するといろいろ出てくるのですが、文字を操作するスクリプトは大抵
activeDocument.selection
を使用しており、文字を選択していることが前提となっているので使いにくいことこの上ないです。
そこで、ドキュメント内全てのオブジェクトからテキストかどうかを判定して、置換に掛けるように組み直してみました。
ファイル名を「relpacement.jsx」とでもして保存すれば使えます。

var data = {src:"あ", dst:"い"};
var targetObj = [];

// ドキュメント内からテキストのみを取り出す
var docObj = activeDocument;
for(var i=0; i<docObj.pageItems.length; i++){
	typ = docObj.pageItems[i].typename;
	if (typ != "TextFrame") continue; // テキスト以外は無視
	targetObj.push(docObj.pageItems[i]); // 対象を格納
}

// テキストの該当文字を置換
for(var i=0; i<targetObj.length; i++){
	var regSrc = new RegExp(data.src, "gm");
	targetObj[i].contents = targetObj[i].contents.replace(regSrc, data.dst);
}


CS5では正常に動いていますが、CCはでは不明です。
そもそもアクションに記録できるようになっているのかな?
CS6以降なら、スクリプトの実行もアクションに登録できるらしいので、さらに楽になりますね。
CS5ではいちいちファイルを指定しないとだめです。

プリントライにLibreOffice Draw用のテンプレートファイルを追加

印刷通販プリントライでは、LibreOffice Drawで作成されたデータでも入稿できます。
本日、B4・CDジャケット・トレーディングカードのテンプレートファイルを追加しました。

詳しくは、LibreOffice Drawで入稿データを作成する#テンプレートダウンロードをご覧ください。

LibreOffice5の使い勝手

先日、2015年08月05日にLibreOfficeが5になりました。
早速使い始めたものの、個人的に使用している機能面では大きく変わったところがありません。
ちょっとおかしかった挙動が直っているような気もしますが、4.4で直っていたような気もするし、リリースノートの英語を読むのも面倒なので、上手く動いていたらそれでいいことにします。

プリントライの解説ページ(LibreOfficeで入稿データを作成する)もLibreOffice5に対応させました。

PerlのImage::Magickが動かなくなっていた

Windows上で久しぶりに実行したスクリプトが、Image::Magickが見つからないとエラーを吐くようになっていた。
パス周りだろうか、EmEditorにPATHをぶっ壊されてからこんなのばっかりだ。
仕方がないので入れ直すことに。
ImageMagickからDLLを入れれば早いだろうと思ったけど、現在配布されている6.9.1はPerlの対応バージョンが5.20になっていて、今の5.12とは異なるので入れられない。
Perlを入れ直すのも面倒だし、他のところで問題が出そうなのでパス。
cpanからは相変わらず入れられない。
そうだ、ppmがあった。

ppm install http://www.bribes.org/perl/ppm/Image-Magick.ppd
Downloading Image-Magick-6.8.3...done
Unpacking Image-Magick-6.8.3...done
Generating HTML for Image-Magick-6.8.3...done
Updating files in site area...done
 157 files installed

これで呼び出せるようになって、動くようになった。
めでたしめでたし。

Inkscapeを入れ直す

Inkscapeの0.91が出たということで、64bit版を入れてみたり32bit版を入れてみたりと遊んでいたわけですが、どうも32bit版の導入時に0.48.2の環境を更新してしまったようで、0.48.2を使えなくなってしまいました。

仕方がないので、一度全てInkscapeっを削除し、改めて0.48.2と0.91.0の64bit版を入れることにします。

0.91.0はエクステンションが動かなかったり、0.48.3から発生している数値フォームに入力できないままなど、本格的に使うには、ちょっとまだ難ありのようです。