Tag: printdocument

使用.NET PrintDocument打印时选择正确的纸张大小

当我遍历每个页面时,我需要决定页面的大小并选择打印它的大小。是否有一种简单的方法来确定它们的大小? 现在我的宽度和高度比例。 如果比率> = 1.64 && ratio = 1.29 && ratio <= 1.30信件大小。 但如果他们打印其他尺寸怎么样我必须为每个尺寸做这个吗?

C#PrintDocument和打印机状态

我试图使用以下代码获取PointOfSale打印机的打印机状态: Hashtable properties = new Hashtable(); ManagementObjectSearcher searcher = new ManagementObjectSearcher(“SELECT * FROM Win2_Printer”); foreach (ManagementObject obj in searcher.Get()) { if (obj[“name”].ToString() == printerName) { foreach (PropertyData data in obj.Properties) { if(data.Name.ToLower() = “printerstatus”) { int printerStatus = Convert.ToInt32(data.Value); } } } } 问题是,状态是3(空闲)或4(打印),即使拔下插头或纸张已用完。 我已经阅读了很多相同问题的post,但还没有找到答案。 它是否正确? 我怎么检查状态? 任何帮助表示赞赏。

如何跳转到PrintDocument中的下一页?

我有一个应用程序打印您想要的条形码数量,但如果条形码的数量大于PrintDocument的大小,它不会跳转到下一页。 我想知道如何在PrintDocument的下一页中添加更多页面或写入。 我正在使用PrintPreview在此Windows窗体中显示PrintDocument。

C# – 如何使用PrintDocument以编程方式打印现有PDF文件

我想用pdf打印机再次打印现有的pdf文件。 我尝试使用PrintDocument。 但是如何告诉PrintDocument现有文件的名称? 提前致谢!

用C#绘制和打印复杂文档(改进/替换我的PrintDocument)

我试图在C#中生成一个主要用于打印的文档。 基本上它是一个表单,我将从数据库中的对象填充值。 我过去使用的代码是丑陋的,冗长的,写入的痛苦和更糟糕的维护。 public class MyDoc : PrintDocument { private MyContainer _myObject; //Inherits from list. private int PageCount() { return (int)Math.Ceiling(_myObject.Count / 5f); } protected override void OnPrintPage(PrintPageEventArgs e) { Graphics g = e.Graphics; g.PageUnit = GraphicsUnit.Millimeter; Font bigFont = new Font(“Arial”, 16, FontStyle.Regular, GraphicsUnit.Point); Font mediumFont = new Font(“Arial”, 10, FontStyle.Regular, GraphicsUnit.Point); Font smallFont […]

Graphics.DrawString以printdocument宽度为中心

我试图将一个字符串放在printdocument上。 我用图像完成了以下操作并且它可以工作,但似乎对字符串不起作用。 这是我用来居中图像的代码 e.Graphics.DrawImage(logo, (e.MarginBounds.Width / 2) – (logo.Width / 2), height); 我试图居中的文本是从TabControl中的Tab提供的 using (var sf = new StringFormat()) { height = logo.Height + 15; sf.LineAlignment = StringAlignment.Center; sf.Alignment = StringAlignment.Center; e.Graphics.DrawString(tabData.Text, new Font(this.Font.Name, 10), new SolidBrush(tabData.ForeColor), (e.MarginBounds.Width / 2) – (txtData.Width / 2), height, sf); } 我也在下面尝试过并使用string_size.Width / 2代替txtData.Width SizeF string_size = e.Graphics.MeasureString(tabData.Text, tabData.Font); […]

以编程方式将XPS文件打印到物理打印机

我有一个C#WinForms应用程序。 用户上载.XPS文件并指定一些打印机设置(份数,纸盘等)。 程序需要以编程方式使用这些设置打印文档。 也就是说,不能打印用户交互。 我可以接近System.Printing AddJob方法。 ( https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/how-to-programmatically-print-xps-files )。 但是,我无法在此处定义特定设置,如纸张来源,份数等。 我更喜欢使用PrintDocument方法,但我无法弄清楚如何让PrintDocument渲染/打印XPS文档。 我看过这个资源, https://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument.printpage(v=vs.110).aspx ,但看不出我是怎么回事可以获取PrintPageEventHandler来呈现XPS文档。 关于我如何进行的任何想法? 非常感谢帮助! C#.NET 4.5 更新: 基于以下答案,我可以在添加作业时发送PrintTicket,如下所示: PrintTicket pt = printQueue.DefaultPrintTicket; pt.CopyCount = 2; // pt.InputBin = [ InputBin enum option ] printQueue.AddJob(“name”, “file”, false, pt); 我看不到为PrintTicket设置InputBin的任何简单方法。 InputBin是一个枚举,没有选项可以设置为其中一个可用的bin的名称。

有没有比这更好的方法从PrintDocument获取页数?

这是我提出的最好的: public static int GetPageCount( PrintDocument printDocument ) { printDocument.PrinterSettings.PrintFileName = Path.GetTempFileName(); printDocument.PrinterSettings.PrintToFile = true; int count = 0; printDocument.PrintController = new StandardPrintController(); printDocument.PrintPage += (sender, e) => count++; printDocument.Print(); File.Delete( printDocument.PrinterSettings.PrintFileName ); return count; } 有一个更好的方法吗? (这实际上很慢)

使用PrintDocument打印图像。 如何调整图像以适合纸张尺寸

在C#中,我尝试使用PrintDocument类使用以下代码打印图像。 图像宽度为1200像素,高度为1800像素。 我正在尝试使用小型zeebra打印机在4 * 6纸张中打印此图像。 但该程序只打印4 * 6的大图像。 这意味着它没有根据纸张尺寸调整图像! PrintDocument pd = new PrintDocument(); pd.PrintPage += (sender, args) => { Image i = Image.FromFile(“C://tesimage.PNG”); Point p = new Point(100, 100); args.Graphics.DrawImage(i, 10, 10, i.Width, i.Height); }; pd.Print(); 当我使用“窗口打印”打印相同的图像时(右键单击并选择打印,它会自动缩放到纸张大小并正确打印。这意味着所有内容都是4 * 6纸张。)我如何在C#程序中执行相同的操作?

如何使用PrintDocument在热敏打印机上打印文本文件?

我正在使用带有Winforms的C#创建一个应用程序,现在我需要在热敏打印机上打印销售收据。 要做到这一点,我正在创建一个文本文件,并使用PrintDocument读取它进行打印,但我不能这样做,因为我不知道如何配置纸张大小,在纸张上对齐文本中心,以及其他配置。 当我打印文本文件被打印,但所有杂乱,并在结束打印后纸张没有停止。 我怎么能这样做? 试。 private PrintDocument printDocument = new PrintDocument(); private static String RECEIPT = Environment.CurrentDirectory + @”\comprovantes\comprovante.txt”; private String stringToPrint = “”; private void button1_Click(object sender, EventArgs e) { generateReceipt(); printReceipt(); } private void generateReceipt() { FileStream fs = new FileStream(COMPROVANTE, FileMode.Create); StreamWriter writer = new StreamWriter(fs); writer.WriteLine(“==========================================”); writer.WriteLine(” NOME DA EMPRESA AQUI […]