using org.pdfclown.documents;
using org.pdfclown.documents.contents.composition;
using org.pdfclown.documents.contents.fonts;
using org.pdfclown.files;
using System.Drawing;
namespace org.pdfclown.samples.cli
{
/**
This sample is a minimalist introduction to the use of PDF Clown.
*/
public class HelloWorldSample
: Sample
{
public override bool Run(
)
{
// 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)
BuildAccessories(document,"Hello world","a simple 'hello world'");
// 4. Serialize the PDF file!
Serialize(file,false);
return true;
}
/**
Populates a PDF file with contents.
*/
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 composer for the page!
PrimitiveComposer composer = new PrimitiveComposer(page);
// 3. Inserting contents...
// Set the font to use!
composer.SetFont(
new StandardType1Font(
document,
StandardType1Font.FamilyEnum.Courier,
true,
false
),
32
);
// Show the text onto the page!
/*
NOTE: PrimitiveComposer's ShowText() method is the most basic way
to add text to a page -- see BlockComposer for more advanced uses
(horizontal and vertical alignment, hyphenation, etc.).
*/
composer.ShowText(
"Hello World!",
new PointF(32,48)
);
// 4. Flush the contents into the page!
composer.Flush();
}
}
}