92 lines
2.1 KiB
Plaintext
92 lines
2.1 KiB
Plaintext
Uses TSPdfEnumerations;
|
|
{$IFDEF LINUX}
|
|
separator := "/";
|
|
{$ELSE}
|
|
separator := "\\";
|
|
{$ENDIF}
|
|
|
|
alias := "";
|
|
path := "";
|
|
InitCmdParams(alias, path);
|
|
output_file := "ttfont_demo.pdf";
|
|
output_file := path + separator + output_file;
|
|
|
|
SAMP_TXT := "这是中文";
|
|
|
|
pdf := new PdfFile();
|
|
|
|
// declaration for using Chinese encoding.
|
|
pdf.UseUTFEncodings();
|
|
pdf.SetCompressionMode(TSPdfEnumerations.COMP_ALL);
|
|
|
|
// load ttc file
|
|
ttf_file := path + separator + "ttfont" + separator + "simhei.ttf";
|
|
detail_font_name := pdf.LoadTTFontFromFile(alias, ttf_file, true);
|
|
|
|
// add a new page object.
|
|
page := pdf.AddPage();
|
|
|
|
title_font := pdf.GetFont("Helvetica", "");
|
|
|
|
detail_font := pdf.GetFont(detail_font_name, "UTF-8");
|
|
|
|
page.SetFontAndSize(title_font, 10);
|
|
page.BeginText();
|
|
|
|
// move the position of the text to top of the page.
|
|
page.MoveTextPos(10, 190);
|
|
page.ShowText(detail_font_name);
|
|
page.ShowText("(");
|
|
encoding_name := detail_font.GetEncodingName();
|
|
page.ShowText(encoding_name);
|
|
page.ShowText(")");
|
|
|
|
page.SetFontAndSize(detail_font, 15);
|
|
page.MoveTextPos(10, -20);
|
|
page.ShowText("abcdefghijklmnopqrstuvwxyz");
|
|
page.MoveTextPos(0, -20);
|
|
page.ShowText("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
|
|
page.MoveTextPos(0, -20);
|
|
page.ShowText("1234567890");
|
|
page.MoveTextPos(0, -20);
|
|
|
|
page.SetFontAndSize(detail_font, 10);
|
|
page.ShowText(SAMP_TXT);
|
|
page.MoveTextPos(0, -18);
|
|
|
|
page.SetFontAndSize(detail_font, 16);
|
|
page.ShowText(SAMP_TXT);
|
|
page.MoveTextPos(0, -27);
|
|
|
|
page.SetFontAndSize(detail_font, 23);
|
|
page.ShowText(SAMP_TXT);
|
|
page.MoveTextPos(0, -36);
|
|
|
|
page.SetFontAndSize(detail_font, 30);
|
|
page.ShowText(SAMP_TXT);
|
|
page.MoveTextPos(0, -36);
|
|
|
|
pw := page.TextWidth(SAMP_TXT);
|
|
page_height := 210;
|
|
page_width := pw + 40;
|
|
|
|
page.SetWidth(page_width);
|
|
page.SetHeight(page_height);
|
|
|
|
// finish to print text.
|
|
page.EndText();
|
|
|
|
page.SetLineWidth(0.5);
|
|
|
|
page.MoveTo(10, page_height - 25);
|
|
page.LineTo(page_width - 10, page_height - 25);
|
|
page.Stroke();
|
|
|
|
page.MoveTo(10, page_height - 85);
|
|
page.LineTo(page_width - 10, page_height - 85);
|
|
page.Stroke();
|
|
|
|
err := pdf.SaveToFile(alias, output_file);
|
|
echo "SaveToFile::\t", "err := ", format("%x", err), "\toutput_file := ", output_file, "\n";
|
|
return;
|