質問編集履歴

3

showDialogすると出力できることを確認できたことを追記

2016/09/29 05:19

投稿

kutsulog
kutsulog

スコア985

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作成部、印刷実行部のコードを追加

2016/09/29 05:19

投稿

kutsulog
kutsulog

スコア985

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をフルネームに変更

2016/09/28 04:15

投稿

kutsulog
kutsulog

スコア985

test CHANGED
@@ -1 +1 @@
1
- データバインドした値XPSでは出力できるのにプリンタからだと印刷できない
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