Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
既定のプリンターと用紙サイズの変更
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30697#CommentId85008
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
るきお
 (社会人)
投稿日時
2022/2/19 22:51:40
どうしてもプリンターの設定を変更しようと思うと、DEVMODE構造体まわりの話になってくると思うのですよね。
https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.printing.printersettings.gethdevmode?view=dotnet-plat-ext-6.0
この構造体は本当に意地悪で多くのプログラマーを苦しめているんです。
そして、引用したサイトに書いてある
>DEVMODE 構造体はデバイス固有です。
の部分が、私が最初に書いた
>この設定はプリンターごとに違う部分になるかもしれないので、使用されているプリンターのデバイスドライバーの仕様を確認する必要があるかもしれません。
の部分です。
過去にチャレンジした人の名残がネット上に見つかりました。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=2377&KLOG=2
https://atmarkit.itmedia.co.jp/bbs/phpBB/viewtopic.php?topic=42909&forum=7
https://dobon.net/vb/bbs/log3-47/28144.html
デバイスごとに仕様が違うとすると、あるプリンターで成功しても別のプリンターでは通用しないということがありえます。
だから、既定の用紙サイズを変更する方法はこれだという決定的な情報が古していないのだと思います。
VB6版ですがサンプルを公開している人はいました。
この方はカスタムサイズを設定する方法を公開しているようです。
https://binaryworld.net/main/CodeDetail.aspx?CodeId=3093
プログラムが複雑なので中身は見ていないのですが、どのプリンターでも通用するものなのかどうかは疑問です。