Friday, May 16, 2014

Create PDF file from scratch using Spire.PDF


Previewscreenshot of the result PDF file.



Here is the code to create the above PDF file. Just use the API and test the following code, PDF file will be successfully created. And I hope this article can do you some help.
//create a pdf document.
PdfDocument doc = newPdfDocument();

// create one page
PdfPageBase page = doc.Pages.Add();
floatpageWidth = page.Canvas.ClientSize.Width;
float y = 0;

//page header
PdfPen pen1 = newPdfPen(Color.LightGray, 1f);
PdfBrush brush1 = newPdfSolidBrush(Color.LightGray);
PdfTrueTypeFont font1 = newPdfTrueTypeFont(newFont("Arial", 8f, FontStyle.Italic));
PdfStringFormat format1 = newPdfStringFormat(PdfTextAlignment.Right);
String text = "Demo of Barcode";
page.Canvas.DrawString(text, font1, brush1, pageWidth, y, format1);
SizeF size = font1.MeasureString(text, format1);
y = y + size.Height + 1;
page.Canvas.DrawLine(pen1, 0, y, pageWidth, y);

//title
y = y + 5;
PdfBrush brush2 = newPdfSolidBrush(Color.Black);
PdfTrueTypeFont font2 = newPdfTrueTypeFont(newFont("Arial", 16f, FontStyle.Bold));
PdfStringFormat format2 = newPdfStringFormat(PdfTextAlignment.Center);
format2.CharacterSpacing = 1f;
text = "Summary of Science";
page.Canvas.DrawString(text, font2, brush2, pageWidth / 2, y, format2);
size = font2.MeasureString(text, format2);
y = y + size.Height + 6;

//add barcode
PdfCode128BBarcode barcode = newPdfCode128BBarcode("Hello 00-123");
barcode.BarHeight = 20;
barcode.BarcodeToTextGapHeight = 1f;
barcode.TextDisplayLocation = TextLocation.Bottom;
barcode.TextColor = Color.Blue;
barcode.Draw(page, newPointF(0, y));
y = y + 30;

//add picture
PdfImage image = PdfImage.FromFile("Science.png");
page.Canvas.DrawImage(image, newPointF(pageWidth - image.PhysicalDimension.Width, y));
floatimageLeftSpace = pageWidth - image.PhysicalDimension.Width - 2;
floatimageBottom = image.PhysicalDimension.Height + y;

//add text content
PdfStringFormat format4 = newPdfStringFormat();
text = System.IO.File.ReadAllText("ScienceText.txt");
PdfTrueTypeFont font5 = newPdfTrueTypeFont(newFont("Arial", 10f));
format4.LineSpacing = font5.Size * 1.5f;
PdfStringLayoutertextLayouter = newPdfStringLayouter();
floatimageLeftBlockHeight = imageBottom - y;
PdfStringLayoutResult result
    = textLayouter.Layout(text, font5, format4, newSizeF(imageLeftSpace, imageLeftBlockHeight));
if (result.ActualSize.Height<imageBottom - y)
{
imageLeftBlockHeight = imageLeftBlockHeight + result.LineHeight;
result = textLayouter.Layout(text, font5, format4, newSizeF(imageLeftSpace, imageLeftBlockHeight));
}
foreach (LineInfo line inresult.Lines)
{
page.Canvas.DrawString(line.Text, font5, brush2, 0, y, format4);
    y = y + result.LineHeight;
}
PdfTextWidgettextWidget = newPdfTextWidget(result.Remainder, font5, brush2);
PdfTextLayouttextLayout = newPdfTextLayout();
textLayout.Break = PdfLayoutBreakType.FitPage;
textLayout.Layout = PdfLayoutType.Paginate;
RectangleF bounds = newRectangleF(newPointF(0, y), page.Canvas.ClientSize);
textWidget.StringFormat = format4;
textWidget.Draw(page, bounds, textLayout);

//save pdf file.
doc.SaveToFile("result.pdf");
doc.Close();

//view the result file
System.Diagnostics.Process.Start("result.pdf");

No comments:

Post a Comment