LoginSignup
1
1

More than 5 years have passed since last update.

iTextSharpのB4はISO B4。日本はJIS B4。プリンタが認識しない!

Posted at

リコー社のPDF directプリント対応の複合機で、PageSize.B4だと 不定形 エラーが出たので調べていたら、
生成したPDFの用紙サイズが日本のB4(JIS B4)の定義と数ミリ違っていました。
原因は ISO B4 と JIS B4 とではサイズが異なる というのが原因でした。
日本で利用するにはJISのBサイズを定義して利用します。
iTextSharpは独自の単位で float型で持っているので、誤差の割合分だけ修正したところ、用紙の自動選択が
正常に機能しました。

ということで、以下が修正後の値です。

float B4_width = 1031.74f;
float B4_height = 728.4f;
float B5_width = 728.4f;
float B5_height = 517.92f;

以下は用紙の縦・横を考慮して、PageSize.B4.Rotate()相当にしたものを用意してみたものです。

case "B4":
case "B4縦":
return new iTextSharp.text.Rectangle(B4_height, B4_width, 90);
case "B4横":
return new iTextSharp.text.Rectangle(B4_width, B4_height, 0);

PDF表示のソフトウェアからの印刷ではエラーは出ないし、微妙に引き延ばされた程度なので気づきにくく、
等倍ならなおさら判明しません。

B4は

「日本で江戸時代に使われていた「美濃判」の寸法がもととなってできた日本独自の規格。こちらは面積が1.5㎡の長方形をB0」リンク

のようにJISが本家だと勝手に思っていました。
なのでISO と JIS では同一だと勝手に思っていました。ちなみに何故か A4はISOとJISは同一でした・・・
iTextSharpは外国製なので、B4にしてもISOを標準としてISO B4 の実装は当然です。

整理すると、

iTextSharpは、ISO 216 で画定されている国際標準(ISO-Bシリーズ) ISO B4の大きさは 250mm×353mm

日本は JIS P0138 縦横比は 1:√2 JIS B4の大きさは 257mm×364mm

印刷はリコー MPC4503 で試しました。

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1