- PR -

ActiveReports印刷時の用紙サイズ設定について

1
投稿者投稿内容
納涼床
ベテラン
会議室デビュー日: 2006/06/28
投稿数: 53
お住まい・勤務地: 京都市下京区
投稿日時: 2007-05-15 11:36
ただいまActiveReportsで帳票を作成しています。
PDFのプレビュー上では指定されたサイズになるのですが、
出力しようとしているプリンタの用紙サイズが
以前設定されたプロパティのままになっています。
ActiveReports上でプリンタの用紙サイズを強制的に制御することは
できないのでしょうか?

なお、ActiveReportsで設定している用紙サイズは「B4たて」で
使用しているプリンタは「NEC Multiwriter3650N」です。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-05-15 12:02
引用:

納涼床さんの書き込み (2007-05-15 11:36) より:

PDFのプレビュー上では指定されたサイズになるのですが、出力しようとしているプリンタの用紙サイズが以前設定されたプロパティのままになっています。
ActiveReports上でプリンタの用紙サイズを強制的に制御することはできないのでしょうか?


"以前設定された" の付近の詳細が必要です。
今回は、どのタイミングで '何から' 設定しているかが重要だからです。

たとえば、

プレビュー上のプリンタ設定ダイアログを使って値を設定した。
プレビューの印刷ボタンからの印刷では値が適用されて正しく印刷されている。
しかし、Print メソッドを使って自分で印刷命令を出すと値が適用されていない。

という意味であれば仕様です。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
納涼床
ベテラン
会議室デビュー日: 2006/06/28
投稿数: 53
お住まい・勤務地: 京都市下京区
投稿日時: 2007-05-15 13:04
じゃんぬねっとさんへの回答>

今回の帳票では

Public Class CShuNohinListR
Private WithEvents mobjArp As DataDynamics.ActiveReports.ActiveReport


Public Sub New(ByRef pobjDs As Dataset)

mobjArp = New RShuNohinListR

mobjArp.PageSettings.PaperKind = Drawing.Printing.PaperKind.B4JisRotated
mobjArp.PageSettings.Orientation = DataDynamics.ActiveReports.Document.PageOrientation.Landscape

End Sub


Public Sub CreateReport()

mobjArp.Run(True)

End Sub


Public Sub PDFExport(ByVal objMStream As System.IO.MemoryStream)

Dim objPdfExp As New DataDynamics.ActiveReports.Export.Pdf.PdfExport

objPdfExp.Export(mobjArp.Document, objMStream)

objPdfExp = Nothing

End Sub


End Class

上記クラスで

@newプロシージャでレポートの用紙サイズと向きを設定
ACreateReportプロシージャでActiveReportを走らせ
BPDFExportプロシージャでPDFに出力

という手順をとっています。
Adobe Readerで表示すると、表示上ではサイズ・方向ともに
合っているのですが、Adobe Readerの「印刷」アイコンを押し
印刷ダイアログが表示された状態でダイアログの「(プリンタの)プロパティ」をクリックすると
用紙サイズが「A4」と表示されてしまいます。
プロパティを表示しないでそのまま印刷すると
A4のサイズに縮小された状態で印刷されてしまいます。

そこで、プリンタの用紙サイズを強制的にB4に
設定できないかと考えているわけです。
納涼床
ベテラン
会議室デビュー日: 2006/06/28
投稿数: 53
お住まい・勤務地: 京都市下京区
投稿日時: 2007-05-16 17:00
mobjArp.Document.PaperKind = Drawing.Printing.PaperKind.B4JisRotated
mobjArp.Document.Print()

と記述してActiveReportから直接印刷命令を出すと
プリンタの用紙サイズの設定は切り替わるのですが、
PDFにエクスポートした後にAdobe Readerのプレビューから
印刷設定ダイアログを表示すると
ActiveReportでの設定が反映されず、
windowsのプリンタのプロパティで設定した
用紙サイズがそのまま表示されるわけです。

要はAdobe Readerで表示した時の
用紙サイズ設定をコーディングの段階で切り替えられればと思うのですが・・・
納涼床
ベテラン
会議室デビュー日: 2006/06/28
投稿数: 53
お住まい・勤務地: 京都市下京区
投稿日時: 2007-05-16 17:25
あれこれ検索を使って調べましたら
参考になるページを見つけました。

・Windows業務アプリケーション開発 Q&A #4
「A3サイズのPDF文書がA4用紙に印刷されてしまう」

http://www.atmarkit.co.jp/fdotnet/vblab/appqa_04/appqa_04_01.html

コーディングによって直接PDFの印刷用紙サイズを指定するのは
どうも無理なようですね・・・
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-05-16 17:30
DataDynamics.ActiveReports.Export.Pdf.PdfExport クラスや、
DataDynamics.ActiveReports.Export.Pdf.PdfDocumentOptions クラスはご存知ですか?
これ以上のことはできないような気がします。

プリンタ ドライバを通して PDF を作るのであれば、Document プロパティにある、
Printer プロパティ以降の値を変えれば (PDF 側の自動設定が) 適用されるようになるかもしれません。
(たぶんバージョン次第ですが)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)