記入しなければならない紙のフォームが大量にストックされています。これを手作業で行うのは非常に面倒なので、アプリケーションを作成しています。データを入力するためのフォームを提供し、印刷プレビューを表示し、紙のフォームにデータを印刷し、履歴を保持できる必要があります。
現在、次のFixedPage
ように印刷しています。
var dlg = new PrintDialog();
if (dlg.ShowDialog() == true)
{
var doc = new FixedDocument();
doc.DocumentPaginator.PageSize = new Size(11.69 * 96, 8.27 * 96); // A4 Landscape
var fp = Application.LoadComponent(new Uri("/FixedPage.xaml", UriKind.Relative)) as FixedPage;
fp.DataContext = this;
fp.UpdateLayout();
var pc = new PageContent();
((IAddChild)pc).AddChild(fp);
doc.Pages.Add(pc);
dlg.PrintTicket.PageOrientation = System.Printing.PageOrientation.Landscape;
dlg.PrintDocument(doc.DocumentPaginator, string.Format("Form #{0}", FormNumber));
}
印刷プレビュー用UserControl
に、紙のフォームを背景に、データを前景にスキャンした画像を使用したカスタムがあります。基本的に、レイアウトを繰り返しているFixedPage
だけで、設計に欠陥があると思わせてしまいます。
私たちが望むことを行うためのより良い方法はありますか?