アカウント名:
パスワード:
日本は年賀状の文化があったので昭和の時代には理想科学のプリントゴッコが普及しその後はインクジェットプリンターで年賀ハガキを印刷するのが10年前くらいまであったのですがここ最近はスマホの普及もあって あ・け・お・めで終わってるので年賀状を印刷しなくなった。当然プリンタも減ってくるわけですね。
ここ最近はテレワークでプリンターの需要も増えているのですが半導体不足もあって生産数が減っている状況に、需要が増えたので2ヶ月待ち3ヶ月待ちの状態品薄になっている製品が結構あります。今年国内メーカーのプリンターが入手しようにも買えなかったってのは結構ありました。HPが増えた
これってWindowsの問題だった?Excelの問題だと思っていたけど、Wordはそんなことないですよね?もともとExcelは文書整形用としての用途を想定されていなかったのと、昔のPCの処理速度が不足していたのでそうなっていると聞いていたように思いますが。
原因は、GDIが整数で座標を管理してることで、プリンタと画面の解像度で生じてる誤差の問題ExcelだとかWordだとかに限らず、GDI使って印刷にDDI使ってるアプリは、印刷したら位置がずる。Windowsで開発やってれば常識レベルというか、最低限知ってないとヤバイというレベルの基本だが、最近はDDIで印刷しなくても良くなって、こういうレベルの話を知らなくてもやってけるようになってきたのか。
具体的な例として600dpiのプリンタで、1文字の幅を28ドットで印刷しようとする。この場合、画面(96dpi)のプレビューでは、1文字あたり4ドット(600/96 = 28/4.48で少数は切り捨て)10文字印刷すると プリンタで280(28*10)ドット分右に移動。画面のプレビューでは40(4*10)ドット分右に移動。600/96 = 280/44.8 なので、この時点で1文字分の誤差がでる。プレビューと印刷で、誤差が出るのはこのため。
最近、SVGファイルの表示/印刷で似たような問題にでくわしました。SVG中の文字列を入れた場合、Chrome/Edge/Firefoxでは、表示と印刷で文字列幅がずれる。それどころか、画面表示での表示倍率(ズーム)変更でも文字列幅が変わる。でも、IEだけは大丈夫。ズームしても印刷しても文字列幅は一定。
この問題の対策はないのか調べたら「SVGに文字列入れるのはやめとけ。文字単位でレイアウトしろ」と。すでに文字列で入れちゃったSVGはどうしようもなさそう。IEだけは大丈夫なのは、たぶん内部的に自前で文字単位でレイアウトしてから表示/印刷してるんでしょう。
同じことをExcelの印刷でもやればいいだけだし、WYSIWYG指向ののソフトならそれをしない方が手抜きって言われるだけなんだろうけど、昔っから文句をつけられても直す気配がないってことは、MicrosoftにとってExcelはそういうソフトじゃないって扱いなんだと思う。
WYSIWYGを実現するとなると、基本は印刷物優先ですから、画面表示がガタつくんですよ。Windows機のディスプレイは未だに解像度低め(96DPI~120DPI)が主流なので、ピクセル誤差が目に見える。1-2文字目と2-3文字目のピッチが違う、みたいなことが出てくるんです。罫線なんかも、印刷優先だと画面上の描画に違和感が出ること多々あり。(細線と太線が同じ太さになる、とか。低解像度では区別のために誇張を行うことがしばしばある)でも、印刷主体の描画は、そもそも印刷する意図がないユーザーにとっては余計なお世話ですよね。
画面が高解像度主流になって、かつ座標系が整数でないAPIが使われるようになれば、自然と解消されるはず。……と10年ぐらい前から思っているんですけど、なかなか解消されませんねー。
未だにWindowsのPCだけ解像度が低い、これ不満というよりもはや不快ですね。今どき15000円のスマホだってフルHD以上だというのに、今年発売の製品にも1366*768のモデルが多くあるという。しかも東芝のようなメーカーが16万円もするPCに1366*768ですよ。まったくどうにかしている。
Excelはそれとして、Wordでは計算違うんじゃないかなあ。Word6.0でちょっとだけ改善され、今に至ってるという記憶がある。
Excelはそれとして、とかじゃなく、ExcelやWordに限らず、GDI/DDI使ってるアプリは漏れなく同じ問題もってるんだよ。根本的に整数で座標指示してるAPIつかっておいて、解像度の違うもので同じ表示が出来るはずがないぐらい、自明だろう。
もちろん改善方法は、いくつかあって(浮動小数点使える)別の座標系使って全て自分でレンダリングしたあと、出力時にDDIに投げる。TextOutやExtTextOutに文字を投げずに文字列を投げるだけでも、同じフォント、同じサイズ、同じ修飾だけの文字列なら改善する。(WinNT系になってから文字列の場合には基準座標の計算が先頭だけになった。計算が一回なので計算誤差は起きにくくなってる)とか、他にもやりようはあるし、みんなそれぞれ会社ごとのやり方で、補正したし、DDI使ってれば今でもやってるんだよ。
Excelがいつまでも改善されんのは、明確な理由はわからんけど、Wordのように文字列が全て出るとか改行位置が揃うのが必須機能とは見做されてないからだろうな。
>GDI/DDI使ってるアプリは漏れなく同じ問題もってるんだよ。いや、別にそこを否定したわけじゃなくて例示された計算式についてだったんだが。
今の感覚ではこんなの仕様というよりはバグですね。文字のドット幅が整数になっていてその整数倍の位置にしか文字が置かれないというのはまさに「昔のPCの処理速度が不足していたので」ということなんじゃないですかね。
Wordでも結構ずれる。以前業務向けマニュアルつくった際に画面上と印刷でずれてて修正が面倒だった。今時印刷に合わせろというのがどうかしてるが。
PDFで出力することを前提にすればいい。目視はWindows以外がそうなると思えばいい。色々なデバイスが増えると共通の表示形式は共通の表示が必要になるがWindowsだけ合わないのが課題じゃないのかな。究極的な回答はWindowsだけなくなると合わせられる
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
普通のやつらの下を行け -- バッドノウハウ専門家
あけおめが悪い。 (スコア:0)
日本は年賀状の文化があったので
昭和の時代には理想科学のプリントゴッコが普及し
その後はインクジェットプリンターで年賀ハガキを印刷するのが10年前くらいまであったのですが
ここ最近はスマホの普及もあって
あ・け・お・め
で終わってるので年賀状を印刷しなくなった。
当然プリンタも減ってくるわけですね。
ここ最近はテレワークでプリンターの需要も増えているのですが
半導体不足もあって生産数が減っている状況に、需要が増えたので
2ヶ月待ち3ヶ月待ちの状態品薄になっている製品が結構あります。
今年国内メーカーのプリンターが入手しようにも買えなかったってのは結構ありました。
HPが増えた
Re:あけおめが悪い。 (スコア:0)
これってWindowsの問題だった?
Excelの問題だと思っていたけど、Wordはそんなことないですよね?
もともとExcelは文書整形用としての用途を想定されていなかったのと、昔のPCの処理速度が不足していたのでそうなっていると聞いていたように思いますが。
Re:あけおめが悪い。 (スコア:1)
原因は、GDIが整数で座標を管理してることで、プリンタと画面の解像度で生じてる誤差の問題
ExcelだとかWordだとかに限らず、GDI使って印刷にDDI使ってるアプリは、印刷したら位置がずる。
Windowsで開発やってれば常識レベルというか、最低限知ってないとヤバイというレベルの基本だが、最近はDDIで印刷しなくても良くなって、こういうレベルの話を知らなくてもやってけるようになってきたのか。
具体的な例として
600dpiのプリンタで、1文字の幅を28ドットで印刷しようとする。
この場合、画面(96dpi)のプレビューでは、1文字あたり4ドット(600/96 = 28/4.48で少数は切り捨て)
10文字印刷すると プリンタで280(28*10)ドット分右に移動。画面のプレビューでは40(4*10)ドット分右に移動。
600/96 = 280/44.8 なので、この時点で1文字分の誤差がでる。
プレビューと印刷で、誤差が出るのはこのため。
Re:あけおめが悪い。 (スコア:1)
最近、SVGファイルの表示/印刷で似たような問題にでくわしました。
SVG中の文字列を入れた場合、Chrome/Edge/Firefoxでは、表示と印刷で文字列幅がずれる。
それどころか、画面表示での表示倍率(ズーム)変更でも文字列幅が変わる。
でも、IEだけは大丈夫。ズームしても印刷しても文字列幅は一定。
この問題の対策はないのか調べたら「SVGに文字列入れるのはやめとけ。文字単位でレイアウトしろ」と。すでに文字列で入れちゃったSVGはどうしようもなさそう。
IEだけは大丈夫なのは、たぶん内部的に自前で文字単位でレイアウトしてから表示/印刷してるんでしょう。
同じことをExcelの印刷でもやればいいだけだし、WYSIWYG指向ののソフトならそれをしない方が手抜きって言われるだけなんだろうけど、
昔っから文句をつけられても直す気配がないってことは、MicrosoftにとってExcelはそういうソフトじゃないって扱いなんだと思う。
Re: (スコア:0)
WYSIWYGを実現するとなると、基本は印刷物優先ですから、画面表示がガタつくんですよ。
Windows機のディスプレイは未だに解像度低め(96DPI~120DPI)が主流なので、ピクセル誤差が目に見える。
1-2文字目と2-3文字目のピッチが違う、みたいなことが出てくるんです。
罫線なんかも、印刷優先だと画面上の描画に違和感が出ること多々あり。
(細線と太線が同じ太さになる、とか。低解像度では区別のために誇張を行うことがしばしばある)
でも、印刷主体の描画は、そもそも印刷する意図がないユーザーにとっては余計なお世話ですよね。
画面が高解像度主流になって、かつ座標系が整数でないAPIが使われるようになれば、自然と解消されるはず。
……と10年ぐらい前から思っているんですけど、なかなか解消されませんねー。
Re: (スコア:0)
未だにWindowsのPCだけ解像度が低い、これ不満というよりもはや不快ですね。
今どき15000円のスマホだってフルHD以上だというのに、今年発売の製品にも1366*768のモデルが多くあるという。
しかも東芝のようなメーカーが16万円もするPCに1366*768ですよ。まったくどうにかしている。
Re: (スコア:0)
Excelはそれとして、Wordでは計算違うんじゃないかなあ。
Word6.0でちょっとだけ改善され、今に至ってるという記憶がある。
Re: (スコア:0)
Excelはそれとして、とかじゃなく、ExcelやWordに限らず、GDI/DDI使ってるアプリは漏れなく同じ問題もってるんだよ。
根本的に整数で座標指示してるAPIつかっておいて、解像度の違うもので同じ表示が出来るはずがないぐらい、自明だろう。
もちろん改善方法は、いくつかあって
(浮動小数点使える)別の座標系使って全て自分でレンダリングしたあと、出力時にDDIに投げる。
TextOutやExtTextOutに文字を投げずに文字列を投げるだけでも、同じフォント、同じサイズ、同じ修飾だけの文字列なら改善する。
(WinNT系になってから文字列の場合には基準座標の計算が先頭だけになった。計算が一回なので計算誤差は起きにくくなってる)
とか、他にもやりようはあるし、みんなそれぞれ会社ごとのやり方で、補正したし、DDI使ってれば今でもやってるんだよ。
Excelがいつまでも改善されんのは、明確な理由はわからんけど、Wordのように文字列が全て出るとか改行位置が揃うのが必須機能とは見做されてないからだろうな。
Re: (スコア:0)
>GDI/DDI使ってるアプリは漏れなく同じ問題もってるんだよ。
いや、別にそこを否定したわけじゃなくて例示された計算式についてだったんだが。
Re: (スコア:0)
今の感覚ではこんなの仕様というよりはバグですね。
文字のドット幅が整数になっていてその整数倍の位置にしか文字が置かれないというのはまさに「昔のPCの処理速度が不足していたので」ということなんじゃないですかね。
Re: (スコア:0)
Wordでも結構ずれる。
以前業務向けマニュアルつくった際に画面上と印刷でずれてて修正が面倒だった。
今時印刷に合わせろというのがどうかしてるが。
Re: (スコア:0)
PDFで出力することを前提にすればいい。
目視はWindows以外がそうなると思えばいい。
色々なデバイスが増えると共通の表示形式は共通の表示が必要になるが
Windowsだけ合わないのが課題じゃないのかな。
究極的な回答はWindowsだけなくなると合わせられる