سؤال
وكنت في حاجة إلى القدرة على إنشاء مغلف PDF، ولم تجد حلا جيدا للقيام بذلك، لذلك أعتقد أن هذا قد يكون من بعض الفائدة.
المحلول
ونحن نستخدم PDFSharp أو وثيقة أداة مجانية PDF. إنها تعمل بشكل جيد. وهنا طريقة للقيام بذلك. فإنه سيتم إنشاء وثيقة قوات الدفاع الشعبي جديدة، المغلف الحجم، ومركز العنوان. GetAddress () هو مجرد وسيلة تستخدم لاسترداد عنوان من DB. مجرد استخدام \ ن على السطر خطوط مختلفة في العنوان.
protected void DisplayPDFEnvelope()
{
try
{
PdfDocument document = new PdfDocument();
PdfPage pdfpage = new PdfPage();
XUnit pdfWidth = new XUnit(4.125, XGraphicsUnit.Inch);
XUnit pdfHeight = new XUnit(9.5, XGraphicsUnit.Inch);
pdfpage.Height = pdfHeight;
pdfpage.Width = pdfWidth;
pdfpage.Orientation = PageOrientation.Landscape;
XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always);
document.AddPage(pdfpage);
// Create a font
XFont font = new XFont("ARIAL", 1, XFontStyle.Regular, options);
// Get an XGraphics object for drawing
XGraphics gfx = XGraphics.FromPdfPage(pdfpage, XGraphicsPdfPageOptions.Append);
string address = GetAddress();
// Get the size (in point) of the text
XSize size = gfx.MeasureString(address, font);
// Create a graphical path
XGraphicsPath path = new XGraphicsPath();
path.AddString(address, font.FontFamily, XFontStyle.Regular, 10,
new XPoint(345, 160), XStringFormats.Default);
// Create a dimmed pen and brush
XPen pen = new XPen(XColor.FromGrayScale(0), 0);
XBrush brush = new XSolidBrush();
// Stroke the outline of the path
gfx.DrawPath(pen, brush, path);
MemoryStream stream = new MemoryStream();
document.Save(stream, false);
Page.Response.Clear();
Page.Response.ContentType = "application/pdf";
Page.Response.AppendHeader("Content-Length", stream.Length.ToString());
Page.Response.AppendHeader("Content-Type", "application/pdf");
Page.Response.AppendHeader("Content-Disposition", "inline;filename=envelope.pdf");
Page.Response.BinaryWrite(stream.ToArray());
Page.Response.Flush();
stream.Close();
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
catch (Exception ex)
{
throw ex;
}
}
نصائح أخرى
وPDFSharp هو جيد، وذلك هو iTextSharp ، ميناء جافا من iText، واحدة من المكتبات PDF الأولى حولها.
لا تنتمي إلى StackOverflow