[cbuilder:40084] RichTextをBitmapへ変換

57 views
Skip to first unread message

Nakagawa

unread,
Jul 4, 2009, 12:44:58 PM7/4/09
to cbui...@sfdata.ne.jp
中川と申します。

[cbuilder:39685] TRichEditの印刷で質問をさせていただき、無事プレビューの
作成を
することができました。

この度、プレビュー内容を任意のDPIで保存しなければならなくなりました。
TBitmapのサイズをDPIに合わせて変更したり、ヘッダに解像度の情報を入れこんだり
したのですが、RichEditの内容は小さいままになってしまいます。
同じコードで印刷を行った場合は、プリンタの解像度に合わせてRichEditのサイズも
拡大縮小して印刷されるのですが、TBitmapの場合だと変化がありません。

ご教授お願いします。

__________ ESET NOD32 Antivirus からの情報, ウイルス定義データベースのバージョン 4216 (20090704) __________

このメッセージは ESET NOD32 Antivirus によって検査済みです。

http://canon-its.jp

kanazawa

unread,
Jul 5, 2009, 9:52:53 PM7/5/09
to cbui...@sfdata.ne.jp
TO 中川様

バードランドの金沢です。
TRichEditからwmf形式(メタファイル)でクリップボードにコピーしてはいかが
ですか?
貼り付け時に解像度を変更できると思います。
EXCELからは任意解像度貼り付けはやったことがあります。

その時の貼り付けソースです。
Graphics::TBitmap* bmp = new Graphics::TBitmap;
Close1Click(NULL);
if ( Clipboard()->HasFormat(CF_METAFILEPICT) ){
//だめならメタファイルから取得
TPicture* picture = new TPicture;
TMetafile *metafile = new TMetafile;
metafile->Assign(Clipboard());�
picture->Assign( metafile );
delete metafile;
if( picture->Width > 1024 ){
picture->Height = picture->Height*1024/picture->Width;
picture->Width = 1024;
}
bmp->PixelFormat = pf24bit;
bmp->Width = picture->Width;
bmp->Height = picture->Height;
bmp->Canvas->Draw(0,0,picture->Graphic);
delete picture;
}else if( Clipboard()->HasFormat(CF_BITMAP) ){
bmp->Assign(Clipboard());
}

まるっきりダメだったらごめんなさい。


Nakagawa さんは書きました:


> 中川と申します。
>
> [cbuilder:39685] TRichEditの印刷で質問をさせていただき、無事プレビューの
> 作成を
> することができました。
>
> この度、プレビュー内容を任意のDPIで保存しなければならなくなりました。
> TBitmapのサイズをDPIに合わせて変更したり、ヘッダに解像度の情報を入れこんだり
> したのですが、RichEditの内容は小さいままになってしまいます。
> 同じコードで印刷を行った場合は、プリンタの解像度に合わせてRichEditのサイズも
> 拡大縮小して印刷されるのですが、TBitmapの場合だと変化がありません。
>
> ご教授お願いします。
>

> ?


>
> __________ ESET NOD32 Antivirus からの情報, ウイルス定義データベースのバージョン 4216 (20090704) __________
>
> このメッセージは ESET NOD32 Antivirus によって検査済みです。
>
> http://canon-its.jp
>
>
>
>
>
>


--
株式会社バードランド

本社:
〒003-0006
北海道札幌市白石区東札幌6条3丁目1-60-603
株式会社バードランド


TEL 080-1865-8214


代表取締役社長
金沢良次

Nakagawa

unread,
Jul 6, 2009, 11:36:43 AM7/6/09
to cbui...@sfdata.ne.jp
金沢様

コメントありがとうございます。

TRichEditをwmf形式にしてクリップボードにコピーとのことですが、wmf形式に
する方法が
調べたのですがわかりません。

お手数ですが、ご教授お願いします。

kanazawa さんは書きました:


> TO 中川様
>
> バードランドの金沢です。
> TRichEditからwmf形式(メタファイル)でクリップボードにコピーしてはいかが
> ですか?
> 貼り付け時に解像度を変更できると思います。
>

__________ ESET NOD32 Antivirus からの情報, ウイルス定義データベースのバージョン 4219 (20090705) __________

kanazawa

unread,
Jul 6, 2009, 8:39:08 PM7/6/09
to cbui...@sfdata.ne.jp
TO 中川様

金沢です。
ソースを移植する気力がなくて申し訳ないんですが、
http://rakasaka.fc2web.com/delphi/copyasemf.html
あたりを参考に、TMetafile経由でコピーすればいいかと
思われます。
よろしくお願い申し上げます。

Nakagawa さんは書きました:


> 金沢様
>
> コメントありがとうございます。
>
> TRichEditをwmf形式にしてクリップボードにコピーとのことですが、wmf形式に
> する方法が
> 調べたのですがわかりません。
>
> お手数ですが、ご教授お願いします。
>
> kanazawa さんは書きました:
>
>> TO 中川様
>>
>> バードランドの金沢です。
>> TRichEditからwmf形式(メタファイル)でクリップボードにコピーしてはいかが
>> ですか?
>> 貼り付け時に解像度を変更できると思います。
>>
>>
>

> ?


>
> __________ ESET NOD32 Antivirus からの情報, ウイルス定義データベースのバージョン 4219 (20090705) __________
>
> このメッセージは ESET NOD32 Antivirus によって検査済みです。
>
> http://canon-its.jp
>
>
>
>
>
>

Nakagawa

unread,
Jul 11, 2009, 12:09:20 AM7/11/09
to cbui...@sfdata.ne.jp
金沢様

ありがとうございました。
TMetafileを使用して問題を解決できました。

kanazawa さんは書きました:


> TO 中川様
>
> 金沢です。
> ソースを移植する気力がなくて申し訳ないんですが、
> http://rakasaka.fc2web.com/delphi/copyasemf.html
> あたりを参考に、TMetafile経由でコピーすればいいかと
> 思われます。
> よろしくお願い申し上げます。
>
>

__________ ESET NOD32 Antivirus からの情報, ウイルス定義データベースのバージョン 4232 (20090710) __________

Reply all
Reply to author
Forward
0 new messages