Tag: 打印

在C#中打印控件的内容?

我从未使用C#打印任何东西。 我只是想知道这样做的标准方法是什么。 在我的表单上,我有一些列表框和一些文本框。 我想打印他们的内容并在打印预览中显示它们,在表格中有一个很好的布局。 然后从他们我希望用户能够打印。 提前致谢!

`PrintQueue.AddJob`没有完成

我尝试在某些PC上使用代码。 using (var lps = new LocalPrintServer()) using(var pqueue = lps.GetPrintQueue(“PRINTER-NAME”)) { pqueue.AddJob(“job-name”, @”C:\example.xps”, false, pticket); } 仅在一台PC上,它无法正常工作。 该应用程序冻结在AddJob方法。 即使等了很长时间,它也从未结束。 没有例外。 出现此问题的PC是Windows10并应用了CreatorsUpdate。 其他PC是Windows7,Windows8.1和Windows10应用的AnniversaryUpdate。 这个问题是CreatorsUpdate的错误吗? 补充: 具有CreatorsUpdate的PC可以通过此代码打印xps文件。 using (var lps = new LocalPrintServer()) using(var pqueue = lps.GetPrintQueue(“PRINTER-NAME”)) using (var doc = new XpsDocument(@”C:\example.xps”, System.IO.FileAccess.Read)) { var writer = PrintQueue.CreateXpsDocumentWriter(pqueue); var docSeq = doc.GetFixedDocumentSequence(); writer.Write(doc, pticket); }

用于扫描仪颜色意图的WIA Automation无法正常工作

我无法让我的Canon Pixma MP150从c#代码扫描彩色扫描。 以下代码生成黑白图像,或者如果我将6146的值更改为2,则会创建灰度图像。 我希望能够从代码中进行彩色扫描。 我知道扫描仪会对彩色图像进行彩色处理,因为我可以通过“扫描仪和相机”中的xp向导执行此操作。 任何人都可以帮我弄清楚我没有为彩色扫描设置什么值。 我可以找到的所有文档和示例都只是为了更改6146的值。 感谢您抽出时间来阅读! private void ScanAndSaveOnePage () { WIA.CommonDialog Dialog1 = new WIA.CommonDialogClass(); WIA.DeviceManager DeviceManager1 = new WIA.DeviceManagerClass(); System.Object Object1 = null; System.Object Object2 = null; WIA.Device Scanner = null; Scanner = Dialog1.ShowSelectDevice(WIA.WiaDeviceType.ScannerDeviceType, false, false); WIA.Item Item1 = Scanner.Items[1]; setItem(Item1, “6146”, 1); setItem(Item1, “6147”, 150); setItem(Item1, “6148”, 150); setItem(Item1, […]

如何通过PaperKind获取预定义的纸张尺寸

我需要通过System.Drawing.Printing.PaperKind获取纸张大小。 有预定义的值吗? 我不想硬编码或计算纸张尺寸,我只是想以编程方式获取它。 谢谢。

使用GhostScript打印PDF

因为它拉了我一段时间,所以我需要你对以下问题的支持。 我们有一个小的c#实用程序,它使用GhostScript打印给定PDF 。 此打印按预期方式但未能保留页面格式。 但是,当我切换Adobe Acrobat代替GhostScript时,页面会按预期打印。 所以我认为,我在GhostScript的命令行参数上犯了一些明显的错误。 背景 以下是核心c#逻辑,它在每个页面上打印具有不同样式的给定PDF文件。 给定的PDF文件有页面; 字体样式和颜色不一致 某些页面具有正常的字体大小,而其他页面的打印格式非常小 一些页面有推荐的保证金,但其他页面的保证金很小 有些页面是彩色的,其余的是灰色的。 有些页面是风景风格,其他是肖像 简而言之,我试图打印的PDF只是一个整合(将单个pdf加入一个大型pdf)的大量小尺寸pdf文档,具有不同的字体样式,大小,边距。 问题 以下逻辑使用GhostScript(v9.02)打印PDF文件。 虽然以下逻辑打印任何给定的PDF,但它无法保留页面格式,包括页眉,页脚,字体大小,边距,方向 (我的pdf文件包含横向和纵向的页面)。 有趣的是,如果我使用acrobat reader打印相同的PDF,那么它将按预期打印以及所有页面级格式。 PDF标本: 第一节 , 第二节 void PrintDocument() { var psInfo = new ProcessStartInfo(); psInfo.Arguments = String.Format( ” -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies=1 -sDEVICE=ljet4 -sOutputFile=\”\\\\spool\\{0}\” \”{1}\””, GetDefaultPrinter(), @”C:\PDFOutput\test.pdf”); psInfo.FileName = @”C:\Program Files\gs\gs9.10\bin\gswin64c.exe”; psInfo.UseShellExecute = […]

如何在使用PrinterDialog时设置纸张类型?

我正在尝试静默打印图片文件,我需要在特殊纸张类型(“光面相纸”)上打印,并在一定尺寸(10厘米,15厘米)上打印。 在普通的Windows 7打印对话框中,我可以选择: 纸张尺寸 , 纸张质量 (例如 – “自动”,“高”,“标准”,“自定义”) 纸张类型 (“普通纸”,“光面照片纸”,“高级光面照片纸”,“白金相纸”,“Hagaki”等…) 但是,通过c#代码,我设法只设置PaperSize (在6英尺上是4英尺= 15厘米上的10厘米)。 我的问题是如何获得设置纸张类型的选项,而不是 PaperSource (“纸盘1”,“纸盘2”等)…. 我知道每台打印机都有自己支持的纸张类型,所以我可能需要遍历所有,但我无法弄清楚如何。 这是我目前的代码: string strPrinterName = “Canon iP4850”; PrintDocument printDoc = new PrintDocument(); // We set the paper size printDoc.DefaultPageSettings.PaperSize = new PaperSize(“PhotoPaper”, 400, 600); // Inside the event i actually draw the image all over the paper by […]

使用c#winform打印和制作报告

我在Delphi QuickReport中用来创建报表和打印。 我可以用什么在.NET C#中执行此操作? 我向我的项目(Winforms应用程序)添加了一些报告元素(Microsoft报告和Crystal报告),但我看到的是,我只能从数据库中插入数据。 我想要的是使用在运行时创建的对象的值。 这是因为我的报告实际上包含收据和发票。 哪个是最适合我需要的工具?

打印Windows客户端(非Web应用程序)的最佳方式?

从c#/ .net打印东西的最佳方法是什么? 问题在于单页以及包含大量页面的报告。 获得最常见的打印库列表会很棒,其中包含每个打印库的主要function和陷阱。 请更新标准Windows客户端(或服务器),而不是Web应用程序。

如何在WPF中没有Print Dialog的情况下直接打印?

我只想知道如何打印流文档而不在WPF中显示Print Dialog。 感谢帮助…

如何使用winforms中的自定义纸张尺寸进行打印

我正在尝试在我的应用程序中打印文档。 但在不同的打印机上我得到不同的结果。 这是我的代码: PaperSize paperSize = new PaperSize(“My Envelope”, 440, 630); paperSize.RawKind = (int)PaperKind.Custom; PrintDocument pd = new PrintDocument(); pd.PrintPage += (sender, args) => Console.Out.WriteLine(“Printable Area for printer {0} = {1}”, args.PageSettings.PrinterSettings.PrinterName, args.PageSettings.PrintableArea); pd.DefaultPageSettings.PaperSize = paperSize; pd.DefaultPageSettings.Landscape = true; pd.DefaultPageSettings.Margins = new Margins(60, 40, 20, 20); Console.Out.WriteLine(“My paper size: ” + pd.DefaultPageSettings.PaperSize); PrintDialog printDialog = […]