- 題名: プリンタのユーザ定義ファイルのセットの仕方を教えてください
- 日時: 2011/03/01 10:43:08
- ID: 28267
- この記事の返信元:
- (なし)
- この記事への返信:
- [28270] Re[1]: プリンタのユーザ定義ファイルのセットの仕方を教えてください2011/03/01 16:00:10
- [28317] Re[1]: プリンタのユーザ定義ファイルのセットの仕方を教えてください2011/03/15 11:29:46
- ツリーを表示
参考ページ作者の雅階凡です。
実は、現在 Windows から Linux (ubuntu) に移行してしまったものですから、
手元で試すことができませんが次のような事が考えられると思います。
> PaperSize pkCustom = new PaperSize("Custom 297 x 148 mm", (int)(2970 * 100 / 25.4), (int)(2970 * 100 / 25.4));
これですと 297 cm x 297 cm の用紙サイズを対象にすることになると思いますが、
単位や用紙サイズに間違いはありませんでしょうか?
> if (ps.Kind == PaperKind.Custom)
この部分が問題になると思います。
PaperKind.A4 や PaperKind.B5 等の値と比較すする分には問題ありませんが、
カスタムサイズと直接の比較は出来なかったように思いますし、
このような比較では問題解決ができなかったと記憶しています
(今となっては確認しようがないので定かではありません)。
この場合は ps.Width, ps.Height と pkCustom.Width, pkCustom.Height を比較すべきだと思います。
また、問題解決が出来る出来ない以前に、この場合だと
if (ps.Kind == pkCustom)
のように記述すべきではないかと思います...
もちろん比較対象を ps.Width 等に変更すべきですが...
手元で試すことが出来ませんので何とも言えませんがデバッグを実行することが出来たのでしょうか?
仮に出来たとしても何の意味ももたないと思いますが...
お尋ねの場合には、事前にプリンタ側でユーザー定義サイズとしてカスタムサイズを
登録する事が必要だと思いますのでそれがなされていることを確認してください。
プリンタ側で定義されていないカスタムサイズをプログラム内で利用しようとするとプリンタにダメージを与える事も含め、
他にも様々な事をクリアする事が必要になると思います
(やって出来ないことはないと思いますがお薦めはできません)。
VS2005 でも同様だと思いますので、
<http://www.geocities.jp/gakaibon/tips/csharp2008/print-custompapervalid.html>
のサンプルコード内の下記のあたりを中心として
関連する所の用紙サイズのみを変更の上デバッグしてみることをお薦めします。
//
// プリンタで定義済みの Bible サイズ ( 95 x 171 mm )を作成.
// ( PaperSize の Kind プロパティは Custom になります )
//
szBible = new PaperSize("Bible 95 x 171 mm",
(int)( 95 * 100 / 25.4),
(int)(171 * 100 / 25.4));
追記:場合によっては小数点以下の処理を変える必要があるかもしれませんが...
分類:[.NET]
プリンタのユーザ定義ファイルのセットの仕方を教えてください。
下記のようにしてみましたが、プリンタ側は、プリンタのプロパティで登録されているA4のままになります。
PaperSize pkCustom = new PaperSize("Custom 297 x 148 mm", (int)(2970 * 100 / 25.4), (int)(2970 * 100 / 25.4));
foreach (PaperSize ps in pd.PrinterSettings.PaperSizes)
{
if (ps.Kind == PaperKind.Custom)
{
pd.DefaultPageSettings.PaperSize = (PaperSize)pkCustom;
printDoc.DefaultPageSettings.PaperSize = (PaperSize)pkCustom;
break;
}
}
上記のとおりでは、ユーザー定義はセットできないのですか?
参考にしたページ(VS2008用のコードのようですがVS2005で使いたい)
http://www.geocities.jp/gakaibon/tips/csharp2008/print-custompapervalid.html
http://www.geocities.jp/gakaibon/tips/csharp2008/print-custompaperinvalid.html