如何使用c#将文本打印到特定位置?

时间:2012-10-22 16:47:09

标签: c# .net

如何将字段打印到特定页面位置? 例如,我有一个打印的表单,我想在那些特定/分隔的空格中打印数据。

我见过一些例子,但它们并不适用于我的需要。

http://www.codeproject.com/Articles/10180/How-to-print-text-in-C

https://stackoverflow.com/questions/7703274/how-to-create-page-with-text-in-specific-location

最后一个如果没有关闭,我认为它有答案。

有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:1)

如果您有纸质表单,则可以将其扫描,然后使用CutePDF等程序将其转换为PDF表单。接下来,创建您希望能够填充的字段(通过拖动矩形),命名它们,然后保存表单。 iTextSharp是一个C#库,可让您以编程方式填写表单字段。

示例:

//Replace with path to the form
var pdfFormLocation = "C:\\pdfForm.pdf"; 

//Adjust below path to a temp location
var pdfPath = String.Format("C:\\temp\\{0}", Guid.NewGuid().ToString());
File.Copy(pdfFormLocation, pdfPath, true);

var reader = new PdfReader(pdfPath);
var output = new FileStream();
var stamper = new PdfStamper(reader, output);

//the form field names can be a little hairy
stamper.AcroFields.SetField("topmostSubform[0].Page1[0].f1_01_0_[0]", "Your Name");

//make the form no longer editable
stamper.FormFlattening = true;

stamper.Close();
reader.Close();
//now you can go print this file from pdfPath

链接: iTextSharp CutePDF

答案 1 :(得分:0)

如第一篇文章中所述,使用C#打印到打印机与绘制到画布完全相同(除非您使用报告框架)。

PrintDocument.PrintPage事件有graphics个参数,您可以使用这些参数向页面绘制任何内容。

图形具有Graphics.DrawString函数,该函数将位置作为其参数之一。

只需用它在任何地方绘制文字。

如果您还想绘制一个矩形,可以使用Graphics.MeasureString函数和Graphics.DrawRectangle方法绘制类似TextBox的字段。