質問編集履歴
3
showDialogすると出力できることを確認できたことを追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,6 +12,12 @@
|
|
12
12
|
|
13
13
|
|
14
14
|
|
15
|
+
※追記:PrinterDialogをいったんshowDialogすれば出力することはできました。
|
16
|
+
|
17
|
+
しかし、業務要件上PrinterDialogを見せるのはまずいので見せない方法でお願いします。
|
18
|
+
|
19
|
+
|
20
|
+
|
15
21
|
開発環境
|
16
22
|
|
17
23
|
OS:Windows7
|
2
PageContent作成部、印刷実行部のコードを追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -230,6 +230,100 @@
|
|
230
230
|
|
231
231
|
```
|
232
232
|
|
233
|
+
|
234
|
+
|
235
|
+
ReportPrintClass PageContent作成・印刷実行部
|
236
|
+
|
237
|
+
```C#
|
238
|
+
|
239
|
+
/// <summary>
|
240
|
+
|
241
|
+
/// ページデータ作成処理
|
242
|
+
|
243
|
+
/// </summary>
|
244
|
+
|
245
|
+
/// <param name="uiElement"></param>
|
246
|
+
|
247
|
+
/// <param name="width"></param>
|
248
|
+
|
249
|
+
/// <param name="height"></param>
|
250
|
+
|
251
|
+
/// <returns></returns>
|
252
|
+
|
253
|
+
public static PageContent CreateContent(UIElement uiElement, double width, double height)
|
254
|
+
|
255
|
+
{
|
256
|
+
|
257
|
+
FixedPage.SetLeft(uiElement, DocumentPoint.X);
|
258
|
+
|
259
|
+
FixedPage.SetTop(uiElement, DocumentPoint.Y);
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
FixedPage fp = new FixedPage();
|
264
|
+
|
265
|
+
fp.Width = width;
|
266
|
+
|
267
|
+
fp.Height = height;
|
268
|
+
|
269
|
+
fp.Children.Add(uiElement);
|
270
|
+
|
271
|
+
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
PageContent page = new PageContent();
|
276
|
+
|
277
|
+
IAddChild p = page as IAddChild;
|
278
|
+
|
279
|
+
p.AddChild(fp);
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
return page;
|
284
|
+
|
285
|
+
}
|
286
|
+
|
287
|
+
|
288
|
+
|
289
|
+
/// <summary>
|
290
|
+
|
291
|
+
/// 印刷処理
|
292
|
+
|
293
|
+
/// </summary>
|
294
|
+
|
295
|
+
/// <param name="document"></param>
|
296
|
+
|
297
|
+
public static void ExecutePrint(FixedDocument document, string printTitle)
|
298
|
+
|
299
|
+
{
|
300
|
+
|
301
|
+
PrintDialog dialog = new PrintDialog();
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
dialog.MinPage = 1;
|
306
|
+
|
307
|
+
dialog.MaxPage = (uint)document.Pages.Count;
|
308
|
+
|
309
|
+
dialog.UserPageRangeEnabled = true;
|
310
|
+
|
311
|
+
|
312
|
+
|
313
|
+
dialog.PrintTicket.PageMediaSize = new PageMediaSize(PageMediaSizeName.ISOA4Rotated);
|
314
|
+
|
315
|
+
dialog.PrintTicket.PageOrientation = PageOrientation.Landscape;
|
316
|
+
|
317
|
+
|
318
|
+
|
319
|
+
dialog.PrintDocument(document.DocumentPaginator, printTitle);
|
320
|
+
|
321
|
+
}
|
322
|
+
|
323
|
+
|
324
|
+
|
325
|
+
```
|
326
|
+
|
233
327
|
Total部のXAMLのみ載せていますが、DataContextでデータ指定している個所はすべて出力されていません。
|
234
328
|
|
235
329
|
ItemsSourceでデータ指定している個所は出力できています。
|
1
誤字の訂正、XPSをフルネームに変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
データバインドした値
|
1
|
+
データバインドした値をXPSでは出力できるのにプリンタからだと印刷できない
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
題の通りDataContextで設定したデータを
|
4
4
|
|
5
|
-
XPSでは出力できるのですが、プリンタからでは印刷できません。
|
5
|
+
Microsoft XPS Document Writerでは出力できるのですが、実際のプリンタからでは印刷できません。
|
6
6
|
|
7
7
|
(該当箇所が空白になります)
|
8
8
|
|