Datagridに表示されているすべての選択されたファイルを印刷します。FinePrintを使用して複数のファイルを1つの印刷ジョブとして印刷する
私はFinePrintを使用したいので、それらをすべてプリントキューに追加したいと思います。
FinePrintは、プリントキュー内のすべてのドキュメントを1つのファイルに追加して印刷できるプリンタドライバです。 Windowsエクスプローラでファイルを選択し、Print
を右クリックします。 FinePrintをデフォルトプリンタとして選択すると、FinePrintウィンドウが開き、選択したすべてのファイルが1つのファイルに添付されます。次に、ページにスタンプを設定するなどの他の処理を行うことができます。
私のWPFプロジェクトで同じことを作成したいのですが、ファイルを選択してボタンをクリックするだけで十分です。
EDIT:
完全な方法:
void btnPrint_Click(object sender, RoutedEventArgs e)
{
List<ZeichnungInDB> selectedItemsList = dataOutOfDb.SelectedItems.Cast<ZeichnungInDB>().ToList();
if(selectedItemsList.Count > 0)
{
PrintDialog printDialog = new PrintDialog();
FileInfo fileInfo;
if (printDialog.ShowDialog() == true)
{
foreach (ZeichnungInDB zeichnung in selectedItemsList)
{
fileInfo = new FileInfo(@"..." + zeichnung.Zeichnungsnummer + "_" + zeichnung.Index + "_VIN_" + zeichnung.Volante_Index + zeichnung.Extension);
using (FileStream file = fileInfo.OpenRead())
{
System.Windows.Markup.ParserContext context = new System.Windows.Markup.ParserContext();
context.BaseUri = new Uri(fileInfo.FullName, UriKind.Absolute);
object doc = (System.Windows.Markup.XamlReader.Load(file, context));
DocumentPaginator paginator = ((IDocumentPaginatorSource)doc).DocumentPaginator;
printDialog.PrintDocument(paginator, "Printing from MMS");
}
}
}
}
}
それは私が直接、ファイルの先頭に、docオブジェクトを作成XamlParseException
をスローします。
どういう意味ですか?何も思いつきません。私はPDFファイルを印刷するためにたくさんの例を見つけましたが、これだけを印刷したくありません。私はすべてのファイルを印刷したいだけです。 – Only3lue
これは私かもしれませんが、あなたのコメントは私には意味がありません。私はあなたの質問を "1つの印刷ジョブに複数のファイルを追加するにはどうすればいいですか"と解釈しました。いくつかのサンプルコードで質問を洗練し、問題の内容を説明してください。 – SilentStorm
これでレジストリキーを作成する方法がわかりません。そして、私はPrintDialogを表示し、次にPrintDocumentメソッドを使用して、DataGridで選択したすべてのファイルを印刷したいだけです。しかし、私はDocumentPaginatorが必要ですが、私はそれを作成するアイデアはありません。なぜなら、私は多くの異なる拡張機能を持っていて、それを構築できないからです。 – Only3lue