值得注意的是 PDF 的座標系統跟螢幕是不一樣的,PDF 是從左下開始算,而螢幕是從左上開始算,只是我目前還不曉得 SetTextMatrix(x,y) 這個Method其中的x,y單位是什麼,另外範例中的這個 PDF範本,有一個很奇怪的地方,它的座標原點並不是在左下角,而是在文件中間?????
using System;
using System.IO;
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace PDF1
{
/// <summary>
/// Class1 的摘要描述。
/// </summary>
class Class1
{
/// <summary>
/// 應用程式的主進入點。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此加入啟動應用程式的程式碼
//
PdfReader reader = new PdfReader("c:\\960621officer_fee.pdf");
int n = reader.NumberOfPages;
PdfStamper stamp = new PdfStamper(reader, new FileStream("c:\\sample2.pdf", FileMode.OpenOrCreate));
PdfContentByte over;
BaseFont bfChinese = BaseFont.CreateFont("C:\\windows\\fonts\\KAIU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
over = stamp.GetOverContent(1);
over.BeginText();
over.SetFontAndSize(bfChinese, 18);
over.SetTextMatrix(-325, -340);
over.ShowText("ˇ");
over.SetFontAndSize(bfChinese, 26);
over.SetTextMatrix(-210, 145);
over.ShowText("游 錫 堃");
over.SetFontAndSize(bfChinese, 18);
over.SetTextMatrix(33, 148);
over.ShowText("A 1 2 0 4 3 5 X X X");
over.EndText();
Barcode39 barcode = new Barcode39();
barcode.Code = "0123456789";
barcode.PlaceBarcode(over,Color.BLACK,Color.BLUE);
// over.SetLineWidth(1f);
// over.SetColorStroke(Color.ORANGE);
// over.MoveTo(-320,-335);
// over.LineTo(-300, -335);
// over.Stroke();
stamp.Close();
}
}
}
沒有留言:
張貼留言