お世話になります。
PDFの印刷を必ず手差しから出るように設定したいのですが、記述方法がよくわかりません。
foreach (System.IO.FileInfo f in files)
{
PdfViewer viewer = new PdfViewer();
////// Open input PDF file
viewer.BindPdf(System.IO.Path.Combine(f.FullName));
////// Set attributes for printing
viewer.AutoResize = true; // Print the file with adjusted size
viewer.AutoRotate = true; // Print the file with adjusted rotation
viewer.PrintPageDialog = false; // Do not produce the page number dialog when printing
Aspose.Pdf.Printing.PrinterSettings ps = new Aspose.Pdf.Printing.PrinterSettings();
PrintDocument prtdoc = new PrintDocument();
Aspose.Pdf.Printing.PageSettings pgs = new Aspose.Pdf.Printing.PageSettings();
//////カラー
ps.DefaultPageSettings.Color = true;
//////用紙方向ヨコ
prtdoc.DefaultPageSettings.Landscape = true;
////// 給紙トレイを手差しにする
//????
viewer.PrintDocumentWithSettings(pgs,ps);
viewer.Close();
}
給紙のセッティングで手差しを指定する記述を教えてください。
よろしくお願いします。
@kuroneko14
確認していただけますか。手動フィードという場合、アプリケーション インターフェイスからトレイの仕様を入力することになりますか?どのような種類のアプリケーションを使用または構築していますか?
C#のWindowsフォームアプリで開発しています。
印刷したいPDFファイルを選択し、印刷ボタンを押すと自動的に手差しから印刷されるようにしたいのです。
@kuroneko14
お客様の要件を分析するために、問題追跡システムに調査チケットを PDFNET-57561 として記録しました。詳細を調査し、解決に向けて進展があり次第、お知らせいたします。しばらくお時間をください。
The issues you have found earlier (filed as PDFNET-57561) have been fixed in Aspose.PDF for .NET 24.8.
@kuroneko14
Windows で印刷するときに給紙元を設定する最も信頼できる方法は、要求された ptinter の PaperSources コレクションから必要な給紙元を取得し、ToAsposePaperSource 拡張メソッドを使用してそれを Aspose.PDF タイプに変換することです。
foreach (System.IO.FileInfo f in files)
{
PdfViewer viewer = new PdfViewer();
////// Open input PDF file
viewer.BindPdf(System.IO.Path.Combine(f.FullName));
////// Set attributes for printing
viewer.AutoResize = true; // Print the file with adjusted size
viewer.AutoRotate = true; // Print the file with adjusted rotation
viewer.PrintPageDialog = false; // Do not produce the page number dialog when printing
Aspose.Pdf.Printing.PrinterSettings ps = new Aspose.Pdf.Printing.PrinterSettings();
Aspose.Pdf.Printing.PageSettings pgs = new Aspose.Pdf.Printing.PageSettings();
//////カラー
pgs.Color = true;
//////用紙方向ヨコ
pgs.Landscape = true;
////// 給紙トレイを手差しにする
System.Drawing.Printing.PrinterSettings nativePrinterSettings = new System.Drawing.Printing.PrinterSettings();
nativePrinterSettings.PrinterName = ps.PrinterName;
System.Drawing.Printing.PaperSource nativePaperSource = nativePrinterSettings.PaperSources
.Cast<System.Drawing.Printing.PaperSource>()
.First(paper => paper.Kind == System.Drawing.Printing.PaperSourceKind.Manual);
pgs.PaperSource = nativePaperSource.ToAsposePaperSource();
viewer.PrintDocumentWithSettings(pgs,ps);
viewer.Close();
}
もう 1 つの方法は、Aspose.Pdf.PaperSources クラスの事前定義された用紙ソースの 1 つを使用することです。
foreach (System.IO.FileInfo f in files)
{
PdfViewer viewer = new PdfViewer();
////// Open input PDF file
viewer.BindPdf(System.IO.Path.Combine(f.FullName));
////// Set attributes for printing
viewer.AutoResize = true; // Print the file with adjusted size
viewer.AutoRotate = true; // Print the file with adjusted rotation
viewer.PrintPageDialog = false; // Do not produce the page number dialog when printing
Aspose.Pdf.Printing.PrinterSettings ps = new Aspose.Pdf.Printing.PrinterSettings();
Aspose.Pdf.Printing.PageSettings pgs = new Aspose.Pdf.Printing.PageSettings();
//////カラー
pgs.Color = true;
//////用紙方向ヨコ
pgs.Landscape = true;
////// 給紙トレイを手差しにする
pgs.PaperSource = Aspose.Pdf.Printing.PaperSources.Manual;
viewer.PrintDocumentWithSettings(pgs,ps);
viewer.Close();
}
実際の用紙ソースに Kind == PaperSourceKind.Custom がある場合、プリンターがこの用紙ソースを使用するには、正しい RawKind を渡す必要があることに注意してください。 Aspose.PDF 24.8 バージョンでは、ToAsposePaperSource() メソッドが元の PaperSource の RawKind を尊重するように修正が含まれ、パブリック プロパティ RawKind が Aspose.Pdf.Printing.PaperSource クラスに追加されるため、次のことが可能になります。正しい RawKind を渡します。
したがって、私が推奨する方法で PaperSource をセットアップする際に問題がある場合は、バージョン 24.8 以降を使用してください。