如何将字段打印到特定页面位置? 例如,我有一个打印的表单,我想在那些特定/分隔的空格中打印数据。
我见过一些例子,但它们并不适用于我的需要。
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
最后一个如果没有关闭,我认为它有答案。
有什么想法吗?
感谢。
答案 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的字段。