OpenOffice.orgの妙日本語訳

OpenOfice.orgのCalcで妙な違和感を覚えたのでよくよく見てみると漢字が間違っていました。
書式設定のセルのフォーマット、分類にソレはありました。
通過→通貨です。
まぁ、意味はわかりますが。

だったらお前が翻訳しろなんて言わないでください。
高校3年間英語赤点なんですから。

ちゃんちゃん♪

Inkscapeの矩形はサイズに線の太さも含んでいた

Inkscape0.47での話です。
矩形を描いて線の太さを設定して、EPSに変換すると大きさが微妙にずれる。
なぜかと思っていじっていると、線の太さを変えると大きさも変化しているではないか。
つまり、Inkscapeの場合、パスのサイズではなく、実際の描画イメージのサイズだったらしい。
今まで散々いじってきたのにぜんぜん気が付かなかった。
EPSでは通常パスを基準にするため、てっきりそうだと思い込んでいたというわけだ。
0mmでサイズを指定して線の太さを指定すればずれないだろうけど、画面上から消えてしまうの。
プリントライのデータも全部作りなおしだぁ~

OpenOffice.orgの3.2を使ってみた

2010年02月11日にOpenOffice.orgの3.2が公開されました。
14日に気がついたので早速落し、3.1から入れ替えて使い込んでみました。

普段から使っている機能には更新がないので、個人的には変化なしといったところです。
保存のプロセスが重いのはまだ改善されませんね。

excelと比較して・・・といいたいところですが、Microsoftのoffice2000を最後にOpenOffice.orgに乗り換えたので、比較しようがないのをおもいだしました。

Inkscapeがいつのまにか0.47になっていた

Illustrator要らずのパス系ツールのInkscapeです。
お仕事でEPSを描くときもInkscapeで充分です。
むしろ汚いEPSを吐き出すIllustratorよりも美しいEPSを吐き出すInkscapeのほうが、コーダにとっては評価は上です。

2009年の11月24日にバージョン0.47がリリースされていたようなので、早速入れ替えてみました。
メニューが一部変化したのと、日本語化されている場所が増えました。
操作面ではそんなに違いはなかったのですが、マスクやクリップがEPSで出力されない不具合が修正されていました。とても助かります。
あとはCMYKで出力できれば言うことなしなのですが。RGBを単純に変換しただけでもかまわないんですけどね~

IE8でデザインが崩壊する

Windows XP、Vista、7で利用できるブラウザのInternetExplorer8では、スタイルシートの実装が今まで以上にいい加減に実装されているらしく、IE6,7向けに調整されたものですらデザインが崩れます。
つくりが悪いといってもOSにはじめから入っているブラウザなのでどうしてもユーザ葉多いため対応せざるを得ません。
この仕様(不具合)を回避するためのIE7と同じレンダリングを行う「互換モード」なるものがIE8には用意されていますが、ユーザ側でいちいち切り替えなければなりません。
しかし、それすらも想定の範囲内のようで、互換モードを強制するmetaタグが用意されていました。
次のようなおまじないを唱えておきましょう。

<meta http-equiv="X-UA-Compatible" content="IE=emulateIE7">

これで安心。

Firefox3.5が酷い

最近3.5にバージョンアップしたのですが、、3.5は重くて使えません。
ロケーションバーをコピペしようとしても文字が消えたり、「履歴とブックマークを検索」に変わったかと思うと、URLが二度と表示されなくなったりします。
JavaScriptが高速になったらしいですが、そのぶんメモリを食うようになってOS(Vista)がFirefoxにロックをかけて、画面の再描画に1分ぐらいかかることがあります。
3のころにはそういうのはまったく発生しませんでした。
アドオンもなかなか対応してくれず、マウスジェスチャ系も全滅です。

パッチがこれば直るだろうとダウングレードもせず、Firefox3の使い勝手に気をよくして封印していたOperaを再度引っ張り出して使うのでした。

イラストレーターのEPSデータを考察

イラストレータといっても、手持ちのは古いままで7でのお話です。
EPSで保存すると、プレビューとサムネールを保存するかどうかの確認がありますが、これはいったいどのように格納されているかを調べてみました。

調べるといっても、サムネイルもプレビューも含まないで保存したEPSファイルと、サムネイルまたはプレビューを含んだEPSファイルを比較しただけです。

保存したファイル名と保存日時のデータは無視して、それ以外を比較します。

まず、サムネイルを含んだEPSファイルを比較しました。
違っていたのは、以下のとおりです。
46行目にある
%AI7_Thumbnail: 128 128 8
から
%%EndData
これが、サムネイルデータのようです。
バイナリが16進で格納されているようです。
どの画像形式かはわかりませんが、おそらくTIFFではないでしょうか。

次に、プレビューを含んだEPSファイルを比較しました。
違っていたのは、以下のとおりです。
1行目の先頭にバイナリデータが含まれています。
その後に通常のEPSデータが始まります。
%!PS-Adobe-3.0 EPSF-3.0
そして34行目に、
プレビューを含まないEPSファイルでは
%AI3_DocumentPreview: Header
となっているところが、
プレビューを含むEPSファイルでは
%AI3_DocumentPreview: PC_ColorTIFF
となっいます。
そして一番最後にまたバイナリデータが含まれています。
通常のEPSデータの末尾である
%%EOF
の後に、バイナリデータが追加されています。

他のイラストレータのバージョンでは、また違うかもしれません。
比較に使用したファイルをおいておきます。
サムネイルもプレビューも含まないEPSファイル
サムネイルを含むEPSファイル
プレビューを含むEPSファイル

FirefoxのアドオンツールFirebugが1.3.0にアップデート

Firefox2でお世話になったFirebugですが、いつの間にかバージョンもあがり、Firefox3に対応していたようです。
Firebugは開発者にとっては、とてもありがたいツールであり、使い方によってはサイトの脆弱性を付くこともできる魔法のツールです。
これでlolifox(Firefox2)ともおさらばですかね・・・
Firefox3をベースにしたブラウザが出ればそちらを使いたいところなのですが。

VB.NETでMicrosoft Outlookのメールを読む

はじめに
VB.NETの環境は、Microsoft Visual Basic 2005 Express Editionを利用しています。
Microsoft OutlookではないOutlookには、対応していません。
準備
新しいプロジェクトを作成してください。
次に、APIの読み込みを行います。「メニューバーのプロジェクト > 参照の追加」より、COMタブを選択し、「Microsoft Outlook 9.0 Library」コンポーネントを選択します。数値の部分は、インストールしてあるMicrosoft Officeのバージョンで変化することがあります。ちなみに、Microsoft Office2000では9.0です。
受信トレイのメールを読む
まずは、受信トレイのメールを読んでみたいと思います。
受信したメールタイトルを表示するためのリストボックス(ListBox1)を用意します。
受信トレイのメールを読むタイミングは、起動時に行います。つまり、Form1_Loadに記述します。
  Private Sub Form1_Load( _
      ByVal sender As System.Object, _
      ByVal e As System.EventArgs _
  ) Handles MyBase.Load

      Dim myOlApp As Outlook.Application = CreateObject("Outlook.Application")
      Dim myNameSpace = myOlApp.GetNamespace("MAPI")
      Dim myFolder = myNameSpace.GetDefaultFolder(6)

      Dim i As Integer
      For i = 1 To myFolder.Items.Count
          Dim myitem = myFolder.Items(i)
          ListBox1.Items.Add(myitem.Subject)
      Next

      myFolder = Nothing
      myNameSpace = Nothing
      myOlApp = Nothing

  End Sub
myNameSpace.GetDefaultFolder(6)の6が受信トレイのフォルダを指します。
フォルダにある各メールは番号で管理されており、Itemsのインデックス番号で参照できます。
Microsoft Outlookの受信トレイにメールがあるのを確認してから、実行してください。
outlook1
問題なく表示できたでしょうか?
メールの本文を読む前に
次は、メールのタイトルを読むことができたので、リストを選択すると内容が表示されるようにします。
メールの内容を読むためには、そのメールのインデックス番号が必要です。
そこで、メールタイトルをキーに、メール番号を値としたハッシュを用意します。
    Public mail As Hashtable = New Hashtable

    Private Sub Form1_Load( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs _
    ) Handles MyBase.Load

        Dim myOlApp As Outlook.Application = CreateObject("Outlook.Application")
        Dim myNameSpace = myOlApp.GetNamespace("MAPI")
        Dim myFolder = myNameSpace.GetDefaultFolder(6)

        Dim i As Integer
        For i = 1 To myFolder.Items.Count
            Dim myitem = myFolder.Items(i)
            ListBox1.Items.Add(myitem.Subject)
            mail(myitem.Subject) = i
        Next

        myFolder = Nothing
        myNameSpace = Nothing
        myOlApp = Nothing

    End Sub

変更した場所を赤く表示しています。これで、リストの値からメール番号を得られるようになりました。
メールの本文を読む
内容を表示するためのテキストボックス(TextBox1)を用意します。
TextBox1はプロパティの設定で、MultilineとScrollBarsをTrueに変更しておきます。
内容を表示するには、ListBox1のSelectedIndexChangedイベントを利用します。
  Private Sub ListBox1_SelectedIndexChanged( _
      ByVal sender As System.Object, _
      ByVal e As System.EventArgs _
  ) Handles ListBox1.SelectedIndexChanged

      Dim myOlApp As Outlook.Application = CreateObject("Outlook.Application")
      Dim myNameSpace = myOlApp.GetNamespace("MAPI")
      Dim myFolder = myNameSpace.GetDefaultFolder(6)

      Dim myitem = myFolder.Items(mail(ListBox1.Text))
      TextBox1.Text = myitem.Body

  End Sub
メール番号は1から始まります。
outlook2
これで、選択したメールの内容を表示することができました。
メールの内容は、text形式かhtml形式かの判断は行っていません。
html形式では、ソースが表示されますが、一部は「?」という文字に化けます。
おまけ
myitem.Subject 件名
myitem.SenderName 送信者名
myitem.SentOnBehalfOfName 送信者名(SenderNameとどう違う?)
myitem.Body 内容
myitem.ReceivedTime 受信時間
myitem.To 送信先

更新履歴

2007-07-21
公開