如何使用PDFsharp在矩形内包装文本?
在我的尝试中,文本仍然延伸到PDF的页面。以下是尝试过的内容:
rect = new XRect(20, 300, 400, 100);
tf.Alignment = XParagraphAlignment.Left;
gfx.DrawString("\t • Please call the borrower prior to closing and confirm your arrival time and the closing location. \n", font, XBrushes.Black, rect, XStringFormats.TopLeft);
rect = new XRect(20, 320, 100, 100);
gfx.DrawString("\t • If the borrower needs to change the closing appointment time or date for any reason please have them call McDonnell Law Firm at 866-931-8793 \n", font, XBrushes.Black, rect, XStringFormats.TopLeft);
rect = new XRect(20, 340, 100, 100);
gfx.DrawString("\t • Completed documents must be received same day. Fax back to 888-612-4912 or email [email protected] \n", font, XBrushes.Black, rect, XStringFormats.TopLeft);
rect = new XRect(20, 360, 100, 100);
gfx.DrawString("\t • Documents are to be returned via Fedex or UPS with shipping label provided. Documents must be dropped same day. \n", font, XBrushes.Black, rect, XStringFormats.TopLeft);
这就是它正在做的事情>
从你的代码片段我假设tf
是XTextFormatter类的对象,而gfx
是XGraphics对象。
XGraphics.DrawString
不支持换行符。
XTextFormatter.DrawString
支持换行符。
您的代码中的错误:您正在调用gfx.DrawString
,您打算调用tf.DrawString
。
这是我的例子,它做了以下事情:
例
PdfDocument pdf = new PdfDocument();
PdfPage pdfPage = pdf.AddPage();
XGraphics graph = XGraphics.FromPdfPage(pdfPage);
var tf = new XTextFormatter(graph);
var rect = new XRect(25, 50, 200, 34);
XPen xpen = new XPen(XColors.Navy, 0.4);
graph.DrawRectangle(xpen, rect);
XStringFormat format = new XStringFormat();
format.LineAlignment = XLineAlignment.Near;
format.Alignment = XStringAlignment.Near;
XBrush brush = XBrushes.Purple;
tf.DrawString("This is some text written in a textbox over three lines bla bla bla bla bla ffffffffffffffffffffdsdsdsd",
new XFont("Helvetica", 8),
brush,
new XRect(rect.X + 5, rect.Y, rect.Width - 5, 34), format);
如何保存并运行示例:
string pdfFilename = "firstpage.pdf";
pdf.Save(pdfFilename);
Process.Start(pdfFilename);