ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Webデザインコミュのホームページの背景画像も、うまく印刷できるようにする方法について

  • mixiチェック
  • このエントリーをはてなブックマークに追加

こんにちは。たくまと申します。

ホームページの背景画像も、うまく印刷できるようにする方法について、
お聞きしたいことがあります。


まず、下記のクーポンを掲載したページがあります。
http://toremise.com/coupon.html


そして、上記ページを印刷すると、背景の画像が消えてしまい、
文字の部分しか、印刷ができない状況です。

これを、背景の画像も、綺麗に印刷するように、
「ページを作成する方法」を探しています。


背景の画像が消えてしまう理由は、WEBデザイナーの方なら、ソースを
見て分かると思いますが、画像をバックグラウンドで表示させているためです。

本来であれば、すべて画像にしてしまえば、綺麗に印刷ができるのですが、、
文字の部分は流動的に変えるため、文字のままにしておきたいと思っています。


上記のクーポンを、背景の画像も綺麗に印刷できるように、
ページを作成する方法をご存知の方がいらっしゃいましたら、
教えていただけると、とても助かります。

どうぞ、よろしくお願いいたします。

コメント(36)

「印刷 背景 CSS」で検索するといろいろな方法が出てきます。

http://ameblo.jp/linking/entry-10057836400.html
http://www.lucky-bag.com/archives/2005/12/print-background-image.html
などから下記を引用いたします。

(引用ここから)
cssのメディアタイプをprintにする。
<link rel="stylesheet" type="text/css" href="css/print.css" media="print">

cssで対象となる箇所を
display:list-item;

にする。そして
list-style-image

に印刷したい画像を指定する。
(引用ここまで)

検索すれば自分の得たい情報をすぐに得ることが出来るので、先に検索してみたら、案外すぐに片付いたりしますよー。頑張ってくださいねー
ありがとうございます!
このような方法があるとは、まったく知りませんでした。

実現可能なのですね。
ありがとうございます。
。ちふみん=¢いわさ さんに教えていただいたサイトを元に、
サイトを作ったところ、印刷時に画像が表示されるようになりました。

ただ、今度は、画像の中に文章が入らなくなってしまいました・・・。
作成したページは、下記のページです。

http://toremise.com/coupon2.html


いろいろと試してみたのですが、画像の中に文章を入れることは、
できないのでしょうか?

どうぞ、よろしくお願いします。

たくまさんって WEBデザイナーを育てるってプロフィールに書いてあるんだけど・・・
>OBAKABOさん
では、あなたは、分かりますか?
CSS的な話ですよね。
Position や z-index などがキーワードではないでしょうか。
OBAKABOさんは、
「このぐらいのことを、自分で検索して探せない人が、Webデザイナーを育てる、と言うのかー」
という意味で言われてるんだと思いますよ。
ありゃりゃ、しばらく見てなかった間にトピが育ってたw

私の解説が片手落ちだったから再質問させてしまい、さらに、なんか話が逸れてしまってたですね。
ひこさん、モリオさん、フォローありがとうございます。
とくに技術的な面に関しては、ひこさんの仰るとおりで、positionで上に文字がくるように配置すればOKです。

たくまさんが、Webデザイナーを育てる、というのは、ざっとプロフィールや日記に目を通した感じだと、技術的な側面から育てるわけではなく、経営的な面からの支援ぽいなーって印象を受けました(ざっと見ただけなので、ズレてたらごめんなさい)。

ですので、技術的に不足してても構わないんじゃないですか?メディチ家が芸術家を育てたからといって、彼らが芸術家として名を馳せたわけでもないんですから。それよか、まぁ、必要以上に噛み付いたりせず、まったりやりましょうよー。

で、この後は蛇足になってしまうかもしれませんが、ちょっと思ったこと。
たくまさんは周囲に技術者が沢山いらっしゃるみたいですから、彼らに直接聞くという方法の方が早かったかもしれませんね。ネットで尋ねると…回答者の性格は分かりませんし、文字で質問するって意外と難しいし、時に些細な考え方の相違や勘違いで衝突することもありますから、僕の場合は、ネットで質問するのは最後の手段で、なるべくは周囲の技術者と相談して解決するようにしてます。
本当に、「mixiで質問する=調べていない」ってなりますよね。
誰も、「調べてないけど質問します」って、書いてないのに・・・・。

いろいろやっていますが、まだ実現できていない状態です。
もう少しでできそうなのですが。

どんどん話がずれてきますねー。


ぱっと見ですけど、
すべて画像じゃなんで駄目なんでしょうか??

フォトショやフリーの画像ソフトで、
レイヤーを背景と文字に分けたら手間かからないと思いますが・・・

レイヤー(文字)
レイヤー(背景)
結合させないで保存。

ちなみに印刷はスクリーンショットでキャプチャしてカットしてしまえば、
出来そうですが・・・??
9: たくまさん>
> 誰も、「調べてないけど質問します」って、書いてないのに・・・・。

 でも「調べたけど分からないので質問します」とも書いていないですよね……。

 たくまさんの技術レベルやお調べになった内容が分からないと、どうアドバイスしたものか悩みます。
 どの程度の事ができて、どのような環境(使用OSやソフト、ブラウザなど)で作業をされていて、どのような事を調べられたのか。

 もしアドバイスした内容が「あ、それはもう見たんですが」なんて言われたら、アドバイスした方としては「先に言ってよ……」となりますよね?
 あるいは「これくらい伝えておけばいいかな?」と思った書き込みに対して「何を言っているのか分かりません。そもそも○○って何ですか? それを知るためにはどうすればいいですか」あるいは「そこまでは分かってるんですよ」というコメントが返ってきたら、それもまた「先に言ってよ……」となりますよね?

 文字コミュニケーションはやりとりに時間がかかりますから、良好な関係を維持しながら最適解をなるべく早く得るためには「手持ちのカードを最初からすべて晒しておく」必要があると思います。
 カードが晒されていないという事は、「手持ちのカードがない=調べてない」と思われる可能性がどうしても高くなる事は否めません。質問する側としては理不尽かもしれませんが、誰も彼もが考えもせずに決めつけている訳でもない事は理解して欲しいな、と思います。(もちろん考えなしに決めつける人もいるでしょうが)

--

 これだけでは何ですので一応アドバイスしておくと、キーワードは「CSS Position 文字 重ねる」辺りです。(私はこのキーワードの検索結果を見て、必要な情報がたくさん出てきたと感じました)
僕も、すべて画像にしたいのですが、文字をプログラムによって
流動的に入れるので、画像の中に文字を入れるようにしないとダメなんですよー。


ひこ@紫のバラの人似さんが言われるとおり、本当に、
質問の仕方って、何年やってても難しいですよね。

完全に、「水掛け論」になってますし。
人のプロフィールに、余計なお世話で、なぜかケチつけられますし。
ちなみに僕がこの案件やるなら、サーバ側で画像作成するのが早いかなーと思って、そういう風に提案すると思います。
プログラムで流し込まないといけないのですか、
それなら申し訳ありません。

そうなると、上記で皆さんが言われるように、
positionで上に文字がくるように配置、
イメージ的には、HP上でレイヤーを重ねるように座標すればいいかと。
12: たくまさん>
 今回その手法をとるべきかどうかは別問題ですが、サーバーサイドで画像を自動生成する技術もあります。
 ですから特定の画像に特定の文字を重ねた画像を自動生成して表示する、という事も可能です。

----

 ちなみに「文字をプログラムによって流動的に入れる」と最初から分かっていればカケルさんがそういう提案をする必要はなかった訳で、やはり手持ちのカードの晒し方が足りなかった、という事になってしまいますよね。
 良かれと思って提案した事が「それは事情により無理」と言われるのは、私にも経験がありますがなかなか辛いものです。
>。ちふみん=¢いわささん

サーバ側で画像作成するのって、比較的簡単にできるものなのでしょうか?
プログラムの設定は、プログラマーに任せているんです。

この画像は、1000個くらい作るので、サーバの負荷にならず、
簡単にできるようなら、言われたとおりにやりたいのですが、、、
何か、面倒な話になってますねぇ。
人類みな兄弟!あっかんべー
この程度の質問でごたごた言うのやめましょうよ!

ってことで、やってみました↓
(mixi上で綺麗に見せるために、インデントに全角スペースを使ってます)

■案1:お気軽版
<div style="text-align:center;">
 <img src="./img/coupon.gif"><br />
</div>
<div style="margin-top:-148px;">
 <table width="700" height="140" align="center">
  〜省略〜
 </table>
</div>

■案2:真面目に CSS position 対応
<div style="position: relative; text-align: center; width: 100%;">
 <img src="./img/coupon.gif">
 <div style="position: absolute; top: 0; left: 0; text-align: center; width: 100%;">
  <table width="700" height="140" align="center">
   〜省略〜
  </table>
 </div>
</div>
>15
ひこさん。

トピ主、書いてるんですよぅー。
>本来であれば、すべて画像にしてしまえば、綺麗に印刷ができるのですが、、
>文字の部分は流動的に変えるため、文字のままにしておきたいと思っています。

まぁ、ひこさんも提示してらっしゃいますが、僕もサーバ側で画像つくっちゃう方が全然早いと思いますね。とはいえ、これはこれで面白い(失敬)テーマではあると思うので、やり取りは無意味ではないと思ってます。こういうシーンに限らず、背景を印刷したいってニーズは結構あるみたいですから。
13: ちふみんさん>
 個人的には、表示される度に画像を生成するのは無駄が多いので、何かの条件でファイルの存在をチェックしてから存在しなければ生成するような仕組みが必要だと思います。あるいは管理画面(?)から必要に応じて手動で生成プログラムを走らせるとか。(その部分は単に説明を省略された、という事であれば申し訳ありません)

 コーディング系のお仕事を多くこなす身としては、CSSで制御した方が圧倒的にに楽だと思います(笑)
 サーバーのスペックなどに左右されませんし、ブラウザごとの差異の吸収についてはインターネット上に十分なノウハウの蓄積があるので。
18: ちふみさん&トピ主さま>
 おおぅ、見落としていました。これは申し訳ない。謹んでお詫び申し上げます。
>16
サーバ側で作るのは、呼び出されたときに背景画像の上に文字をいれて表示する、という処理です。
何の言語使ってるか分かりませんが、画像生成ライブラリを呼び出せばいいと思います。

この辺りは、プログラムの方の判断を仰ぐ必要がありますが・・・この手のクーポンであれば、僕の場合
1.背景を諦める。
2.サーバサイドで合成する
の2択しか考えません。CSSで無理矢理載せるのは、あくまで無理矢理な方法でしかないと思います(18で書いたように面白いので、そのやり方をあれこれ検討するのは凄く有意義だと思いますが)

サービスによって、そこまで手間かける必要がなければさっさと諦めた方が無難だし、次のフェーズで背景を入れることを考えてもいいと思うし。
サーバサイドで合成は、そんな難しい技術と思わないですけどねぇ。先日も、某DVDの初回特典で待ちうけ合成やったばっかですけど、1日で納品しましたし。
すみません、、朝6時からこの問題に取り組んでいるので、
頭を整理して、もう一度考えます。。。
(チョコ食べないと、頭死ぬ・・・)

こういうのって、解決するまで終わらないので、
けっこう辛い仕事ですね、この業界も。。
>19
なるほどねぇ。そんな負荷かかるとは思ってなかったけど、規模によるかな。
でも、GDで生成した画像を特定のディテクトリに店舗名をつけてファイル吐き出ししておいて、んで、そのファイルがなければ、生成する、てぐらいの処理でいけないかしらね?
CSSだと、ケータイ対応の時に厄介かな。この手のサービスは、ケータイ対応も視野にいれておかないといけないと思うので、そのあたりまで考えたら、やっぱりサーバ側で処理したくなっちゃう。
まぁ、全体が見えないから、ここらへんは推測ですけどね^^
23: ちふみんさん>
 画像を生成する負荷と、存在する画像を呼び出す負荷(サーバにかかる負荷です)を比較すると圧倒的に後者が少ないはずなので、都度生成するのは避けられるなら避けた方が良いのではないかなぁ、と。
 サーバのスペックと呼び出される(画像が生成される)頻度との兼ね合いによっては、それでも良いとは思うのですが。

> でも、GDで生成した画像を特定のディテクトリに店舗名をつけてファイル吐き出ししておいて、んで、そのファイルがなければ、生成する、てぐらいの処理でいけないかしらね?

 これは私が19で発言した「何かの条件でファイルの存在をチェックしてから存在しなければ生成するような仕組み」に合致するので、この手法なら私も良いと思います。
 印刷する度に画像が生成されるのは個人的にはどうかなぁ、と思うので。

> CSSだと、ケータイ対応の時に厄介かな

 まぁ携帯の場合、そもそも印刷しないだろ的な話はありますけどね(笑)
 どのみち紙に印刷する事を想定した画像サイズだと携帯で表示するのには無理がありますから、携帯には別途対応がどうしても必要になるのではないかと。(PCでの「印刷」に対応する「クーポンを表示」というリンクを用意して、そこをクリックすると携帯用のクーポン画面が出てくるとか。この画面なら画像に文字が重なっていなくても良いんじゃないか、とか)
プログラマーに、画像で作成できるか聞いてみますね。
そうすれば、お客さんも簡単にクーポンを印刷できるので。

いろいろ教えていただいたのに、まだCSSで実現できていないので、
ちょっと、プログラマーにも確認してみます。

僕は、技術力もっと上げないとと、改めて思いました。。

27: たくまさん>
 方法はさておき、うまく実現できると良いですね。

 CSSは

・必要に迫られる
・とにかく(調べて)やってみる

事がレベルアップへの近道だと思います。
 書籍を読んだりして理解したつもりになっていても、実際にやってみようと思うとなかなかうまくいきませんから……(FloatとかPositionとかブラウザ毎の差異とかは特に)

 良い機会ですからぜひぜひいろいろやってみて下さい。
あ!
ゼルビさんのをコピペしてやってみたら、なんか出来そうです。

もうちょっとなので、頑張ります!
(そしてありがとうございます!)

でも、プログラマーに画像作成できるか聞いてみます。

たくまさん メールを頂いて返信させていただきました。

>7 さんのおっしゃるような感情でした。

失礼いたしました。

>OBAKABOさん
メールありがとうございます。

OBAKABOさんは、質問の答えが分かっているのですね。

そうであれば、私個人的なプロフィールにツッコミを入れるのではなく、
質問の回答を、教えていただけたら嬉しかったです。
(ヒントだけでも良かったので・・)


なんで、mixiに質問をすると、関係のないところを
指摘するのかなーっと、他のトピを見ていても思いました。
質問内容に対応しているかどうか???
PDFで出力するように、プログラミングされてはいかが?・・・
readerがinstされていれば、問題なく対応できると思いますが???
TABLEを避けてるわけではなさそうですので
こんな感じでスライスして、IMGで配置しても良いかもしれませんね。
(枠の左下の部分はもう少し細かくスライスが必要ですが)

あとは、思い切ってシンプルなデザインに変更してしまうとか^^;
参考)ぐるなび http://r.gnavi.co.jp/ga13300/map/
※印刷する際は「背景の色とイメージを印刷する」にチェックを入れてください

みたいな感じで運用側で、ユーザー側で設定してもらうみたいなことはダメですかね?
自分もクーポン券ではありませんが同じような案件(画像の上に文言があって、その文言は動的に出すみたいな)を受けたことがあって
CSSでなんとかしようとしましたが、同じような壁にぶち当たり、結局最後は上記のような注意文言を表示して
ユーザー側で印刷するときにページ設定の「背景と…」にチェックを入れてもらうという運用で収めたことがあります。
PDFで吐き出すという方法もありますが、結構難しいみたいです
actionscriptが書ければFlashで出せて理想的なんだけどな〜

ログインすると、残り4件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

Webデザイン 更新情報

Webデザインのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング