- 題名: itextsharpの印刷プレビューの向き設定
- 日時: 2010/02/13 12:18:33
- ID: 26402
- この記事の返信元:
- (なし)
- この記事への返信:
- [26405] Re[1]: itextsharpの印刷プレビューの向き設定2010/02/14 21:11:59
- ツリーを表示
■No26406に返信(ゆきさんの記事) > →プログラム側でプリンターの向きを変更するということでしょうか? > もしくはユーザー側で印刷プロパティを気にしないといけないのでしょうか? ユーザー側で印刷の向きを変えるという意味で書きました。 ゆきさんの期待されているものとは少し違ったみたいです。 > itextSharpかdocumentのプロパティで作成するPDFの向きではなくて(A4.rotate)、PDF > 自体が持つ「印刷の向き」のようなプロパティがあればと思ったのですが見当たらない > ですね。。。。 Adobe Reader 9 にて印刷ダイアログを表示するとページ処理の欄に PDF のページサイズ に合わせて用紙を選択というチェックボックスがあります。これをデフォルトでチェック 状態にしてみてはいかがでしょうか。 Dim writer As PdfWriter = PdfWriter.GetInstance(document, New FileStream(FilePath_, FileMode.Create)) writer.AddViewerPreference(PdfName.PICKTRAYBYPDFSIZE, PdfBoolean.PDFTRUE) ただし、PickTrayByPDFSize は PDF1.7 から導入されたオプションのようで Adobe Reader 8 以前のバージョンでは対応していない可能性があります。 PDF-XChange Viewer では未対応でした。
■No26412に返信(ゆきさんの記事) > ちなみに自動回転のチェックもあるのでしょうか? > writer.Add〜系ではないように見受けれたので。 私も見つけることが出来ませんでした。 JavaScript で suppressRotate フラグと suppressCenter フラグを外して 印刷するという方法はあるようです。 ただし、印刷ダイアログが自動的に表示されてしまいます。 Dim document As New Document() Dim writer As PdfWriter = PdfWriter.GetInstance(...) document.Open() writer.AddJavaScript(GetAutoRotateAndCenterAction(writer)) ... Function GetAutoRotateAndCenterAction(ByVal writer As PdfWriter) As PdfAction Return PdfAction.JavaScript(GetAutoRotateAndCenterScript(), writer) End Function Function GetAutoRotateAndCenterScript() As String Dim buffer As New System.Text.StringBuilder() buffer.AppendLine("var pp = this.getPrintParams();") buffer.AppendLine("var fv = pp.constants.flagValues;") buffer.AppendLine("pp.flags &= ~(fv.suppressRotate | fv.suppressCenter);") buffer.AppendLine("this.print(pp);") Return buffer.ToString() End Function
分類:[ASP.NET]
はじめまして。
いつも拝見させていただいてます。
早速ですが、itextsharp にてASP.NET(VB.NET)にてPDFを作成しています。
生成したPDFを開くと出力の向きをA4.rotateで横向きにしているので、横向きに表示されるのですが、そこから印刷ダイアログを開くと縦設定でプレビューが開いてしまいます。(縦の中に生成したA4横の印刷物を縮小して表示)
何かプロパティで設定できるのでしょうか?
ご教授お願いいたします。