Tag: 打印

从C#打印信封

我正在尝试制作一个打印信封的应用程序(自定义和普通)。 我设置要打印的尺寸和页面,但是当打印或查看打印预览时,页面尺寸仍然相同。 基本上,该应用程序是3个combobox(0:挑选自定义尺寸,1:挑选打印机,2:挑选进纸器)和按钮’打印’ 我错过了什么吗? PrintDocument pd = new PrintDocument(); PaperSize paperSize; private void combo0_pick(object sender, EventArgs e) { if (comboBox0.SelectedIndex != -1) { switch (comboBox0.SelectedItem.ToString()) { //constructor “name”, inch, inch case “A3”: paperSize = new PaperSize(“A3”, 1170, 1650); break; case “A4”: paperSize = new PaperSize(“A4”, 830, 1170); break; case “A5”: paperSize = new PaperSize(“A5”, 580, […]

使用PrintDocument打印多个页面

我正在尝试打印发票。 发票应该可以打印在多个页面上,但这就是问题所在。我可以在一个页面上完美地打印发票,但是一旦发票不适合单个页面,打印工作就会退出第一页。 这是我正在使用的代码。 ‘artikelen’是一个文章列表(列表)。 我已经阅读了几个类似的例子,我很确定我在这里遗漏了一些东西。 (编辑:删除了一些不必要的代码) public void PrintA4Factuur() { p = new PrintDocument(); p.PrintPage += new PrintPageEventHandler(printPage); printPreviewDialog.Document = p; printPreviewDialog.ShowDialog(); } void printPage(object sender1, PrintPageEventArgs e1) { Graphics g = e1.Graphics; int yPos = 320; float pageHeight = e1.MarginBounds.Height; int artikelPosition = 0; while (yPos + 100 < pageHeight && artikelPosition < this.artikelen.Count) […]

Windows如何批量打印PDF文档?

在我的机器上,在Windows资源管理器中选择多个PDF文档时,右键单击并选择“ 打印” ,Adobe Acrobat Reader将被最小化打开,所有文档将以静默方式发送到打印机。 我想和Windows一样,但它是如何完成的? 我正在使用带有PrintTo动词的ProcessStartInfo ,正如您在上一个问题中看到的那样。 不幸的是,这一切都是沉默的,而且在打印多个文档时我遇到了很大的问题。 我如何知道应用程序(通常是Adobe Reader)何时完成打印? 如果连续启动多个printTo进程,则在上一次完成打印之前,一个文档似乎打开。 我想避免硬编码Adobe Reader,因为我的一些用户已经将它交换为福昕阅读器或其他人。

在多个页面上打印c#

我想用c#打印更多页面。 在函数printDocument1_PrintPage中打印我有的文件: int values = 0; foreach (DataRow row in rows.Rows) values++; if (values > 48) { e.HasMorePages = true; values = 0; } else { e.HasMorePages = false; } 问题是它不停地打印页面。 如何跟踪页面上要打印的行数?

如何以编程方式打印各种文件类型

我正在编写一个应用程序,它执行一些测试并生成许多不同的报告。 这些可以是标签的任意组合,最终客户的PDF,维修部门的PDF,XML文件等。 根据报告类型,我需要将文件发送到文件系统或许多不同的打印机之一(A4,标签等)。 理想情况下,应该没有弹出窗口 – 只是直接用纸。 如何将文件(PDF,XML)发送到打印机? 我曾经想过,对于XML / Text我只能将File.Copy转换为LPTn,但这似乎不起作用。 对于PDF我猜我可以使用一些导致打印PDF的参数调用Acrobat。 我使用的打印机映射到LPTn。 有没有更好的方法来执行此操作并将定义存储在应用程序中? 即标签转到MyLabelPrinter,A4 PDF转到MyA4Printer。 有没有人这样做过?

如何在C#中使用PrintDialog打印文档

这是我的示例代码。 但它打印的是一个空页面 printDocument1.DocumentName = “C:\a.pbf”;// PrintDocument printDocument1 printDialog1.Document = printDocument1; printDialog1.AllowPrintToFile = true; printDialog1.AllowSelection = true; printDialog1.AllowSomePages = true; printDialog1.PrintToFile = true; if (printDialog1.ShowDialog() == DialogResult.OK) printDocument1.Print(); 这有什么不对吗? 请帮我

如何在UWP应用程序中打印?

我正在尝试从我的UWP应用程序中打印出一些内容。 基本上我已经使用WebViewBrush将一些数据绘制到一些FrameworkElement (Windows.UI.Xaml.Shapes.Rectangle)上 – 我想在每个页面上打印其中一个矩形(每页一个矩形) 我真的希望有人可以提供一个非常简单的例子,说明如何在UWP中进行打印。 我自己尝试了,我很乐意提供我的代码,但实际上有数千行 – 所有这些都是我从Microsoft GitHub示例中获取并尝试调整: https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/Printing 老实说,我认为这些例子太复杂了。 我想要的只是一种非常简单的打印方式。 我也找不到关于这个主题的任何教程,但我想如果有人有一个我可以开始工作的小代码片段,也许我可以在它上面构建它所以它可以使用矩形(而不是我现在正在做的事情 – 采取微软的一个很好的例子,试图找出我不需要的部分。 谢谢。 我想任何能够以简单的方式回答这个问题的人都会发现这将成为未来的权威参考点 – 因为有关这个主题的在线信息是如此稀缺。

打印包含WPF Visual的图像

我正在尝试打印包含多个图像的WPF视觉效果(精确的canvas)。 图像源从base64字符串加载,转换为BitmapSources。 当canvas显示在窗口中时,2个图像正确显示,但是当使用PrintDialog的PrintVisual方法打印时,图像看起来都是相同的。 我创建了一个缩小的示例,展示了我所看到的行为。 这是我正在使用的XAML: 这就是背后的代码: public partial class MainWindow : Window { string ABC_DATA = @”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”; string DEF_DATA = @”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”; public MainWindow() { InitializeComponent(); ImageA.Source = Convert(ABC_DATA); ImageB.Source = Convert(DEF_DATA); } private void Button_Click(object sender, RoutedEventArgs e) { PrintDialog printDialog = new PrintDialog(); if (printDialog.ShowDialog() == true) { printDialog.PrintVisual(ImageCanvas, “image print test”); } } […]

如何在打印之前预先测量字符串?

您好,我正在学习使用C#VS 2010 EE进行编程,我正在编写一个应用程序来填充预打印表单。 这个表格在不同的坐标中有几个地方。 纸上的三个盒子是多行5“W x 2”H盒子。 我已经为纸质表单上的每个位置创建了一个带有一个TextBox的窗体。 问题是当在这些多行文本框中输入信息时,我需要知道在纸上留下多少行以输入更多文本,以及何时停止输入,因为PrePrinted框中没有更多可用空间。 我做了很多搜索,但我发现的一切都是关于在屏幕上进行测量,这与纸张上的最终结果不符。 换句话说,我需要知道如何在输入TextBoxes时找出纸张上的字符串尺寸,并将其与PrePrinted表单上的可用空间进行比较,这样我就可以在它经过之前停止在纸上的框的底部边框。 纸上的第一个盒子的高度为5英寸,宽度为2英寸,从“ new RectangleF(60.0F, 200.0F, 560.0F, 200.0F) ”开始。 我明白这些数字是百分之一英寸。 所有这一切,考虑到我不能通过字符数限制TextBoxes,因为并非所有字符占据相同的空间,如H != I; M != l; 等等 预先感谢您的帮助。 今天是2011年9月5日,基于您的意见和建议,我已将代码更改为使用Graphics.MeasureString。 这是我现在使用Graphics.MeasureString和只有一个richTextBox的代码:从printDocument1_PrintPage事件中完美运行, 但我不知道如何使它从richTextBox1_TextChanged事件中运行 。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Printing;//Needed for the PrintDocument() using System.Linq; using System.Text; using System.Windows.Forms; namespace Printing { […]

在C#中打印Form / UserControl

我的程序:包含一个包含少量文本框和一个按钮的表单。 “默认打印机”在我的计算机上设置为Adobe PDF 。 我的目标:当用户点击“打印”按钮时,想要截取表单/ usercontrol的屏幕截图。 然后屏幕截图以.pdf格式保存在桌面上。 我的问题:我在代码中遇到两个问题: 屏幕截图的大小:屏幕截图的大小太大,打印/转换为.pdf时,它不适合页面大小(默认页面大小)。 请参考下面的两张图片。 我希望整个屏幕截图适合页面。 询问两次转换和保存的位置:当我点击“打印表单”按钮时,程序会询问我TWICE在哪里打印/转换并保存文件。 我希望程序只询问一次,在哪里打印并保存文件。 问题1:程序捕获的屏幕截图在打印时不适合页面。 我希望截图图像在.pdf的一页上适合这样: 码: public partial class Form1 : Form { public Form1() { InitializeComponent(); button1.Text = “Print Form”; button1.Click += new EventHandler(button1_Click); printDocument1.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage); this.Controls.Add(button1); } private void button1_Click(object sender, EventArgs e) { CaptureScreen(); printDocument1.Print(); } Bitmap memoryImage; private void […]