none
XPSライターの書き出し先のデフォルトフォルダーの指定について RRS feed

  • 質問

  • Windows8.1端末で、Office付属のXPSライターを利用して印刷イメージをXPSファイルとして保存する運用を検討しています。このXPSライターのXPSファイル保存先のデフォルト値がデスクトップになっているのですが、このデフォルトの保存先を他のフォルダーに変更することは可能でしょうか?可能でしたらその指定はどのよう行うのでしょうか?もしご存知の方いらっしゃいましたらよろしくお願いいたします。
    • 移動 星 睦美 2016年11月9日 2:03 Windows クライアント開発 から
    • 移動 星 睦美 2016年11月9日 2:13 Windows8 から
    2016年11月8日 7:33

すべての返信

  • XPSライターというのはOfficeのファイル保存においてXPS形式で保存するということを指していますか?
    であれば、VBAにて、
    ExcelならWorkSheet.ExportAsFiexedFormatもしくはWorkBook.ExportAsFiexedFormatでTypeをxlTypeXPSにし、Filenameで出力先ファイル名を指定できます。
    WordならDocument.ExportAsFiexedFormatでExportFormatをwdExportFormatXPSにし、OutputFileNameで出力先ファイル名を指定できます。
    つまり、先にデフォルトの出力先を指定したファイル保存ダイアログを表示させてやり、その結果のファイル名を使って上記のコマンドで印刷を行えばよいということになります。
    ファイル保存ダイアログはApplication.GetSaveAsFilenameではカレントフォルダがデフォルトフォルダになります。

    Officeの機能ではなく、Windowsの機能としてのプリンタであるMicrosoft XPS Document Writerを使って印刷してXPSファイルを作るということを指していますか>
    であれば印刷機能においてファイルに出力すると指定して出力先ファイルを指定してやればできますので、同様にファイル保存ダイアログで保存先を決めて印刷すればよいことになります。
    C#+WinFormsだと以下のように。

    private void button1_Click(object sender, EventArgs e)
    {
        using (SaveFileDialog dlg = new SaveFileDialog())
        {
            dlg.Filter = "oxps|*.oxps";
            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                var doc = new System.Drawing.Printing.PrintDocument();
                doc.PrinterSettings.PrinterName = "Microsoft XPS Document Writer";
    
                doc.PrinterSettings.PrintToFile = true;
                doc.PrinterSettings.PrintFileName = dlg.FileName;
                doc.PrintController = new System.Drawing.Printing.StandardPrintController();
    
                doc.PrintPage += (sp, ep) =>
                {
                    ep.Graphics.DrawString("A", this.Font, Brushes.Black, new PointF(100, 100));
                    ep.HasMorePages = false;
                };
    
                doc.Print();
            }
        }
    }

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2016年11月9日 3:57
  • gekka 様、回答ありがとうございます。

    今回の質問はMicrosoft XPS Document Writerを使って印刷してXPSファイルを作るということを指しています。

    早速ご教示いただいた方法を試してみます。

    2016年11月11日 2:13
  • XPS Printer は 最後に保存した場所を規定値として記憶します。

    希望される 場所に一度保存すると、 その場所が最初の保存先の候補に表示されるようになります。

    2016年11月11日 19:30
  • 回答ありがとうございます。

    保存場所は1箇所に限定しているため、初回時から指定の一定の場所に保存できるようにしたいです。一度保存すると次からその場所が表示されるのであれば、どこかにその保存場所を記憶しているはずであり、その記憶場所を強制的に変更することはできないでしょうか?

    2016年11月15日 8:12