私は長い間、印刷の問題で戦ってきました。うまくいけば誰かが助けてくれるでしょう。印刷設定(Asposeが生成された)でWPFからWord文書を印刷
背景 私はワードテンプレートからAspose.Wordsでは、文書を作成していて、メールがそれをマージし、印刷ダイアログでWPFアプリケーションから直接それを印刷したいです。 印刷するときに、自分のプリンタで使用できるすべての異なるプリンタ設定(使用する用紙、ズーム、向き、色など)を選択できる必要があります。この最後のことは、私が見つけたすべての例がプリンタ名を指定すること、または何枚の印刷を行うかということだけで、Googleの検索結果が成功するのを妨げているようです。
テスト1から From their forum
private void Print(Document document)
{
var printDialog = new System.Windows.Forms.PrintDialog
{
AllowSomePages = true,
PrinterSettings = new PrinterSettings
{
MinimumPage = 1,
MaximumPage = document.PageCount,
FromPage = 1,
ToPage = document.PageCount
},
UseEXDialog = true
};
var result = printDialog.ShowDialog();
if (result.Equals(DialogResult.OK))
document.Print(printDialog.PrinterSettings);
}
を印刷するのAsposeの好ましい方法は、今、これは完璧のようです!しかし、私はと2つのを発行します。
テキストは、最初のデフォルトのフォントで印刷するようだと、ページ上で倍増し、第二私の特別なフォント秒で、最初の上にされています。 screencapを参照してください:これは申し訳ありませんが、それは何とか(Wordで非表示になっていても)変換されたときに前面に来たdocxファイル内の隠された画像でした。
- それはそれだけで2印刷するページ、およびなしグラフィックスだにもかかわらず、document.Printのために永遠に取り...犬遅いです。
テスト2 - (私は単語PrintToを使用して、いくつかの引数を与えることができます。これは、素敵な解決策になるだろうが、それは私のダイアログを与えるものではありません
private void Print(Document document)
{
var savePath = String.Format("C:\\temp\\a.pdf");
document.Save(savePath, SaveFormat.Pdf);
var myProcess = new Process();
myProcess.StartInfo.FileName = savePath;
myProcess.StartInfo.Verb = "Print";
//myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();
myProcess.WaitForExit();
}
(PDF)プロセスで印刷?、右、プリンタ名などのようにでもなく、私の特別な要件のため)
テスト3 - Wordのオートメーションで
を印刷私はオートメーションを使用する必要がありますか?それはうまく印刷されますが、単語アプリとドキュメントを閉じるときには問題が発生します。たとえば、「印刷可能領域外の余白」というダイアログが表示され、コードがプロセスを終了して終了することができない場合があります。 Thread.Sleepが表示されますか?私はそれを持っていない場合、Wordは印刷が終了する前に終了されます。
あなたは私のすべての試みには不足しています。これについて最善の方法は何ですか?
ありがとうございました!