1

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

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

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

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

有任何想法吗?

谢谢。

4

2 回答 2

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

于 2012-10-22T16:57:52.290 回答
0

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

PrintDocument.PrintPage事件有一个图形参数,您可以使用该参数在页面上绘制任何您想要的东西。

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

只需使用它在任何您想要的地方绘制文本。

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

于 2012-10-22T17:15:16.393 回答