3

Excel VstoプロジェクトからExcelワークシートを印刷するために、ページの向きをLandScapeに設定したいと思います。手動でページの向きは、「印刷」フォームからポップアップ表示される「プリンタ設定」ウィンドウから設定します。

ユーザーが印刷コマンドを実行するたびに向きをLandScapeに設定する自動化が必要です。

ここに画像の説明を入力してください

ExcelアプリケーションからLandScapeに向きを設定した場合、MS-wordアプリケーションから印刷したい場合、またはその逆の場合でも、向きは同じままであることに気付きました。したがって、単純なwinformアプリケーションから変更できる何らかのフラグが必要です。

プロパティを操作する方法はありますか?

4

2 に答える 2

4

個々のプリンターのプリンター設定をカスタマイズする方法が見つかりませんでした。これがEXCELアプリケーションで私のために働いたコードです。

CommonData._WORKBOOKは静的なブックオブジェクトです

Worksheet ws = CommonData._WORKBOOK.Application.ActiveSheet as Worksheet;

var _with1 = ws.PageSetup;

_with1.Orientation = Microsoft.Office.Interop.Excel.XlPageOrientation.xlLandscape;
CommonData._WORKBOOK.Application.Dialogs[Microsoft.Office.Interop.Excel.XlBuiltInDialog.xlDialogPrint].Show(Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                            Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                            Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                            Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                            Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                            Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
于 2013-02-11T07:32:54.083 に答える
0

あなたは以下のようなものを試すことができますあなたのために働くはずです

public void CustPrinting() 
{
   try 
     {
       strPrint = new StreamReader (filePath);
     try 
       {
         printFont = new Font("Arial", 10);
         PrintDocument pd = new PrintDocument(); 
         pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
         pd.PrinterSettings.PrinterName = printer;
         // Set the page orientation to landscape.
         pd.DefaultPageSettings.Landscape = true;
         pd.Print();
       } 
     finally 
     {
       strPrint.Close() ;
     }
   } 
   catch(Exception ex)
   { 
     MessageBox.Show(ex.Message);
   }
 }
于 2012-11-02T16:48:48.003 に答える