| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Shapes;
- using System.Printing;
-
- namespace WpfApplication19
- {
- public class Printer
- {
- //public int c;
- public static void Print(string s)
- {
- PrintDialog printDialog = new PrintDialog();
- printDialog.PrintQueue = LocalPrintServer.GetDefaultPrintQueue();
- //string line1 = "x.23 2.42 5.23 23.23 23.42 23.42 23.42\n";
- Run run = new Run(s);
-
- /*
- Viewbox vb = new Viewbox();
- vb.Stretch = Stretch.Uniform;
- vb.VerticalAlignment = VerticalAlignment.Top;
- vb.HorizontalAlignment = HorizontalAlignment.Left;
- */
- // Wrap it in a TextBlock.
- TextBlock visual = new TextBlock(run);
-
- //RotateTransform rt = new RotateTransform();
- //rt.Angle = 90;
- //visual.LayoutTransform = rt;
- //visual.RenderTransform = rt;
- visual.Margin = new Thickness(10);
- // Allow wrapping to fit the page width.
- visual.TextWrapping = TextWrapping.WrapWithOverflow;
- visual.FontSize = Int32.Parse(Utils.getSetting("fontSize"));
- visual.FontFamily = new FontFamily(Utils.getSetting("fontName"));
- visual.FontWeight = FontWeights.Bold;
- //visual.FontStretch = FontStretches.ExtraCondensed;
- // Scale the TextBlock in both dimensions.
-
- //visual.LayoutTransform = new ScaleTransform(zoom / 100, zoom / 100);
-
- // Get the size of the page.
- Size pageSize = new Size(printDialog.PrintableAreaWidth, printDialog.PrintableAreaHeight);
- // Trigger the sizing of the element.
- visual.Measure(pageSize);
- visual.Arrange(new Rect(0, 0, pageSize.Width, pageSize.Height));
- visual.HorizontalAlignment = HorizontalAlignment.Left;
- visual.VerticalAlignment = VerticalAlignment.Top;
- // Print the element.
-
- //vb.Child = visual;
- //printDialog.PrintVisual(visual, "A Scaled Drawing");
- printDialog.PrintVisual(visual, "A Scaled Drawing");
-
-
- }
- public static void Print(string s, int ncol){
-
- var n = s.Split('\n').Length - 1;
-
-
- int fn;
- if( ncol >= 3 && n <= 5){
- fn = 10;
-
- }
- else{
- fn = 16 - n;
- if (fn < 10)
- fn = 10;
- }
-
-
-
- char last = s[s.Length - 1];
- if( last != '\n'){
- s = s + '\n';
- }
- var s3 = s.Split('\n');
- n = s3.Length - 1;
- for (int i = 0; i < n; i += 7)
- {
- string k;
- if (i + 7 > n)
- {
- k = string.Join("\n", s3, i, n - i);
- //Console.WriteLine("*" + k);
-
-
- }
- else
- {
-
- k = String.Join("\n", s3, i, 7);
- //visual.Text = k;
- //Console.WriteLine(k);
- }
- PrintRawLabel(k, fn);
-
- }
-
- }
- static void PrintRawLabel(string s, int fontSize){
- //
- PrintDialog printDialog = new PrintDialog();
-
- printDialog.PrintQueue = LocalPrintServer.GetDefaultPrintQueue();
-
-
- Run run = new Run(s);
-
- // Wrap it in a TextBlock.
- TextBlock visual = new TextBlock(run);
- //visual.FontFamily = new FontFamily("Cordia New");
- visual.Margin = new Thickness(15);
- // Allow wrapping to fit the page width.
- visual.TextWrapping = TextWrapping.Wrap;
- visual.FontStretch = FontStretches.ExtraCondensed;
-
- visual.FontSize = Int32.Parse(Utils.getSetting("fontSize"));
- visual.FontFamily = new FontFamily(Utils.getSetting("fontName"));
- visual.FontWeight = FontWeights.Bold;
- // Scale the TextBlock in both dimensions.
-
-
-
- Size pageSize = new Size(printDialog.PrintableAreaWidth, printDialog.PrintableAreaHeight);
- visual.Measure(pageSize);
- visual.Arrange(new Rect(0, 0, pageSize.Width, pageSize.Height));
-
- printDialog.PrintVisual(visual, "InspectionLabel");
- }
- }
- }
|