日々学んだことを残しておこう。きっと未来の自分が探しにくる。 (ただ忘れっぽいだけです…)

スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
-------- : スポンサー広告 :
Pagetop

Flex 印刷機能 FlexPrintJob 


Flexで作成しているWebアプリケーションの画面の一部を印刷したいという要望が。

プリントスクリーンでいーんじゃないかと思ったが、どうしても印刷機能が必要とのこと。

早速探してみると、FlexPrintJobクラスを使えば結構簡単にできそうだ。

こちらに詳しい説明があったのでお勉強。
[Flex2][AS3]Flex2で帳票作成

例えば、あるパネル(idがpanel_xxx)出力した場合、これだけでOK。
import mx.printing.FlexPrintJob;

var printJob:FlexPrintJob = new FlexPrintJob();
printJob.start();
printJob.addObject(panel_xxx);
printJob.send();


(参考サイト)
FlexPrintJob クラスの使用

レイアウトとかこったりすると大変かもだけど、細かい微調整なしに印刷するレベルなら簡単にできるんですね。



20130124追記↓---------
と、問題なく印刷できていたのですが、印刷ウィザードで[キャンセル]すると、panelが消えてしまう現象が。。。

ヘルプを良く見る。

--ヘルプ抜粋---
印刷ダイアログボックスでユーザーがプリントを開始するオプションを選択すると、 start() メソッドは true の値を返します。ユーザーがプリントジョブをキャンセルすると、戻り値は false になります。ユーザーがオペレーティングシステムの印刷ダイアログボックスを閉じると、start() メソッドはプリンタ情報を使用して FlexPrintJob オブジェクトの pageHeight および pageWidth プロパティの値を設定します。これらのプロパティは、プリントするページ領域のサイズを表します。
--------------

とのこと。
キャンセルの場合、printJob.startにfalseが帰ってくるので、if文で分岐。
そしたら大丈夫でした。

import mx.printing.FlexPrintJob;

var printJob:FlexPrintJob = new FlexPrintJob();
if (printJob.start()) {
printJob.addObject(panel_xxx, FlexPrintJobScaleType.MATCH_WIDTH);
printJob.send();
}
スポンサーサイト
2012-11-29 : Flex : コメント : 0 : トラックバック : 0
Pagetop

PDFを画像ファイル形式に変換


PDFファイルデータを画像ファイルに変換して、WEBシステムの素材にすることに。
そもそも、PDFファイル作成するときにオリジナルの画像ファイルあっただろと思うのですが、PDFしかないということはたまにあります。

そんな時、PDFからJPGやPNGに変換したいってなります。

Adobe Acrobatをもっている場合


Adobe Acrobatがあれば簡単にできました。

[ファイル]

[名前を付けて保存]

[ファイルの種類]をJPGやPNGにする。

[設定]クリックして、解像度などを調整する。

[保存]

これでOKなんですね。


Adobe Acrobatがない場合


でも、Adobe Acrobatもっていない場合どうするか。
まっ、他のフリーソフト使うのが王道なのかもですが。

もし、高解像度を求めない場合は、一端Adobe Readerで開いて、画面キャプチャ(PrtScn)して、画像編集ソフトでペタペタくっつけて、画像保存ってことになるのかな。

Adobe Readerの保存機能にも、画像出力対応してもらいたいところですね。

(参考サイト)
PDFファイルを画像として保存する
2012-11-23 : 小技 : コメント : 0 : トラックバック : 0
Pagetop

RapidSSLをAndroid古いバージョンに対応(クロスルート設定)


先日、SSL証明書をアルファSSLからRapidSSLに変更しました。
(参考サイト)
AWS ELBのSSL証明書を更新する方法

問題なくHTTPS通信できていたのですが、あるAndroidスマートフォンからアクセスできていないことが判明。
Android側で発生した例外こんな感じ。
javax.net.ssl.SSLException: Not trusted server certificate

試したAndroid端末は以下の通り
・うまくいった端末
HUAWEI 007HW Android2.3.5
Unipad70 Android2.3.1
・うまくいかない端末
SONY XPERIA SO-01B Android2.1update
NEC Life Touch note LT-NA75W1AB Android2.3

うまくいく端末もあれば、うまくいかない端末もあって不思議に思って調べてみると、以下が原因と判明。

下の参考サイトより抜粋
RapidSSLサーバー証明書のAndroidスマートフォン対応につきまして
2010年12月10日以降発行分より、ジオトラスト社RapidSSLのルート証明書が1024bitから2048bitに移行しました。これに伴い、ルート証明書が「Equifax Secure Certificate Authority」から「Geotrsut Global CA」に変更となりました。
OS Android搭載のスマートフォンでAndroid 2.2 よりも古いバージョンでは、新しいルート証明書「Geotrsut Global CA」を搭載していません。このためAndroid 2.2 よりも古いバージョンのスマートフォンでSSL通信をした場合には、エラーの警告が出ます。
※Android 2.2 以降のバージョンでも機種によりましては、「Geotrsut Global CA」を搭載していないものもあります。


(参考サイト)
RapidSSLサーバー証明書のAndroidスマートフォン対応につきまして

古いバージョン向けに対処する必要があるようですね。

中間CA証明書ファイルの中身を変更すれば良いとのこと。

RapidSSLクロスルート設定用の中間CA証明書を取得する方法


Download RapidSSL and WildCard Intermediate CAにアクセス

私の場合Apacheの
Download the RapidSSL CA Bundleをクリック
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
と2つ並んだいるところがミソらしい。
その後のやり方は以下に書いてあります。
私の場合、AWSのELBにセットするので、次のセクションのようにセットします。

EC2や通常のサーバにセットする方は下が参考になると思います。
Intermediate Certificate Authority (CA) & SSL Installation Instructions for Apache(原文)

SSLサーバー証明書インストール Apache + mod_ssl + OpenSSL[新規・更新]ジオトラスト RapidSSL(4階層クロスルート方式)
日本語説明は上のが良さそうですけど、一部記載ミスしているらしくハマったとこの記事に書いてあったので、原文見た方が良いかも。
(参考サイト)
RapidSSLのクロスルート設定

AWS ELBにRapidSSLクロスルート中間CA証明書をセットする


マネジメントコンソールアクセス

LoadBancersクリック

変更するロードバランサー名にチェック

Listenersタブクリック

HTTPSのSSL Certificateのところに既存のSSL証明書セットされていると思うので(Change)クリック

Upload a new SSL Certificateをクリック

Certificate Name→適当な名前を付ける。
Private Key→(サーバ用秘密鍵ファイルの中身)
ヘッダー・フッターは以下。
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
Public Key Certificate→(証明書ファイルの中身)
ヘッダー・フッターは以下。
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Certificate Chain→(中間CA証明書ファイルの中身)
※ここに今回取得したクロスルート対応の中間CA証明書をコピー
ヘッダー・フッターは以下。
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----


Saveクリック

先ほどまでダメだったAndroid端末もうまくいきました!
2012-11-15 : AWS : コメント : 0 : トラックバック : 0
Pagetop

Amazon SESで送信したメールの「amazonses.com経由」をなくす方法


サービスのユーザ登録やお知らせの自動メール部分をAmazonSESを使用しています。
ものすごく便利で良いんだけどちょっと気になるところが。

Gmailで確認すると送信アドレスの隣に「amazonses.com 経由」と表示されている。

分かる人には、AmazonSES使っているんだなで良いんだけど、不審に思ってしまう人もいるかも知れないので、出来れば非表示にしたいなと。

ちょっとGmailヘルプを見てみる。
送信者名の横に詳細情報が表示される理由

その説明の一番下に「経由」の非表示にするメモがありました。

メールを送信するときに受信者に「経由」リンクが表示されないようにする
Gmail では、メールが正しく認証されているかどうかの確認を行います。一括メール送信ベンダーやサードパーティ アフィリエイトを使ってメールを送信する場合は、そのベンダーやアフィリエイトの IP を記述した SPF レコードを設定してください。または、ドメインに関連付けられた DKIM1 署名を使ってメールに署名することを検討してください。

「DKIM1 署名」初耳だ・・・
こちらで勉強しました。

(参考サイト)
電子署名方式の最新技術「DKIM」とは

↓のブログでは、詳細にやり方書いてくれています。(2011年11月)
Amazon SESでメールを送ったときにGmailでvia email-bounces.amazonses.comって表示されないようにする
なんか大変そうですね。。。

もう少し、調べていると。
2012年7月にこんな発表があるではないか!
【AWS発表】Simple Email Service が Easy DomainKeys Identified Mail (DKIM)をサポート

なんか、Easyってあるので簡単にできそうな気がする。
ということで、今回は、Easy DKIMをやってみることに。
AWS Management Console もしくはAmazon SES APIを使って送信ドメインのためのDKIM署名とその設定を行うことが可能とのこと。

AmazonSESのDKIM署名、設定する方法(マネジメントコンソール編)


マネジメントコンソールにアクセス

SESを選択

Verified Sendersクリック

Easy DKIMを設定したい検証済みのEメールアドレスを選択

下部に詳細設定エリアのDKIMタブをクリック

3ステップでできるそうです(原文)
①Your DKIM DNS setting must be generated using the button below.
②You must update your DNS settings with the records provided by AWS.
③Once these records are verified, you can enable DKIM for this email address. You can then disable/enable DKIM at any time.

[Generate DKIM Setting]ボタンクリック
これでDKIMレコードが生成されるらしい。

表示されたCNAMEレコードをDNSに追加する。
私の場合は、Route53を使用しているので、[Use Route 53]ボタンをクリック

[Create Record Sets]をクリック

えっ、これだけ??
あとは、Amazon SESがドメインがDKIMを処理できるように設定されていることが確認できるのを待つだけだそうです。(最大72時間)

数クリックしただけじゃん。スゴイ楽ちん。

数分後にAWSアカウントメールアドレスにこんな報告メールが届きました。
件名:Amazon SES DKIM setup SUCCESS for [ドメイン]
内容:Congratulations! The Amazon SES DKIM setup for the domain [ドメイン] is now complete.…

この時点から、検証済み送信者リストとDKIM署名されたEメールを返すことができるらしい。

試しに早速、テスト送信してみた結果、
あれ?まだ、「amazonses.com経由」が残っている。

まだ作業残っていること判明。

マネジメントコンソール上、念のため一度[Refresh]で更新。

DKIMタブの詳細で、DKIM:disabled (enable)になっているので、enableクリック。

Are you sure you want to enable DKIM for the email addressと聞かれるので、[Yes,enable DKIM]クリック。

すると以下のように変わる。
DKIM:enabled (disable)

今度こそ、テスト送信。
ちゃんと「amazonses.com経由」が消えています。
Gmail宛先の隣の詳細表示プルダウンで確認すると、
送信元: amazonses.com
署名元: [ドメイン]

送信元のamazonses.comは残ったままなんだね。まっ、全然問題ないけど。

簡単に「amazonses.com経由」を非表示にすることができました。

(参考サイト)
Amazon SESで簡単DKIM
2012-11-09 : AWS : コメント : 0 : トラックバック : 0
Pagetop

AWS ELBのSSL証明書を更新する方法


今までアルファSSLを使用していたのですが、安さにつられて、rapidSSLに変更しようかなと。

前回、CSRを作成しました。Windows環境でCSR作成する方法(OpenSSL)

サーバ情報とCSRを送付して、入金したところ、メールが届きました。

認証メールの受信して承認すると、証明書メールが届きました。

そこには、証明書ファイルと中間CA証明書ファイルが用意させていました。

それをELBにセットすることに。
新規設定の際に記事まとめたのですが、1年経つと記憶も微かになるものだ。
Amazon ELBでSSL設定をしてみる

今回は更新編です。

Amazon ELBのSSL証明書を更新する方法


マネジメントコンソールアクセス

LoadBancersクリック

変更するロードバランサー名にチェック

Listenersタブクリック

HTTPSのSSL Certificateのところに既存のSSL証明書セットされていると思うので(Change)クリック

Upload a new SSL Certificateをクリック

Certificate Name→適当な名前を付ける。
Private Key→(サーバ用秘密鍵ファイルの中身)
ヘッダー・フッターは以下。
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
Public Key Certificate→(証明書ファイルの中身)
ヘッダー・フッターは以下。
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Certificate Chain→(中間CA証明書ファイルの中身)
ヘッダー・フッターは以下。
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
※RapidSSLの場合、注意点があるので、こちらを参照してください。
RapidSSLをAndroid古いバージョンに対応(クロスルート設定)

Saveクリック

サイトにhttpsでアクセスしてみる。
鍵マークをクリックしてみると、ちゃんと「このサイトIDはRapidSSL CAにより確認済みです」とメッセージが出ました!

うまくできた。
どうせ、来年も更新する時、やり方忘れてこの記事を見ることになると思う。
2012-11-08 : AWS : コメント : 0 : トラックバック : 0
Pagetop
ホーム  次のページ »

広告

読みたいと思っている書籍

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく Amazon Web Services 定番業務システム12パターン 設計ガイド イラストで学ぶ 機械学習 最小二乗法による識別モデル学習を中心に (KS情報科学専門書) イラストで学ぶ ディープラーニング (KS情報科学専門書)

カウンタ

メールフォーム

名前:
メール:
件名:
本文:

GoogleTranslate

管理人のつぶやき

人気記事ランキング

カテゴリ

openclose

ブログ内検索

全記事表示リンク

全ての記事を表示する

ブログパーツ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。