using it.stefanochizzolini.clown.documents;
using it.stefanochizzolini.clown.documents.contents.composition;
using it.stefanochizzolini.clown.documents.contents.fonts;
using it.stefanochizzolini.clown.files;
using System.Drawing;
namespace it.stefanochizzolini.clown.samples{
/**
<summary>This sample is a minimalist introduction to the use of PDF Clown.</summary>
*/
public class HelloWorldSample
: ISample
{
#region dynamic
#region interface
#region public
#region ISample
public void Run(
SampleLoader loader
)
{
// 1. Instantiate a new PDF file!
/* NOTE: a File object is the low-level (syntactic) representation of a PDF file. */
File file = new File();
// 2. Get its corresponding document!
/* NOTE: a Document object is the high-level (semantic) representation of a PDF file. */
Document document = file.Document;
// 3. Insert the contents into the document!
Populate(document);
// (boilerplate metadata insertion -- ignore it)
loader.BuildAccessories(document,this.GetType(),"Hello world","a simple 'hello world'");
// 4. Serialize the PDF file (again, boilerplate code -- see the SampleLoader class source code)!
loader.Serialize(file,this.GetType().Name,false);
}
#endregion
#endregion
#region private
/**
<summary>Populates a PDF file with contents.</summary>
*/
private void Populate(
Document document
)
{
// 1. Add the page to the document!
Page page = new Page(document); // Instantiates the page inside the document context.
document.Pages.Add(page); // Puts the page in the pages collection.
// 2. Create a content builder for the page!
PrimitiveFilter builder = new PrimitiveFilter(page);
// 3. Inserting contents...
// Set the font to use!
builder.SetFont(
new StandardType1Font(
document,
StandardType1Font.FamilyNameEnum.Courier,
true,
false
),
32
);
// Show the text onto the page!
builder.ShowText(
"Hello World!",
new PointF(32,48)
);
// 4. Flush the contents into the page!
builder.Flush();
}
#endregion
#endregion
#endregion
}
}
|