จากโค้ด
PdfRectangle
ซึ่งกำหนดแบบ left, bottom, right, top และ นับค่า จาก ซ้ายไปขวา และ ล่างขึ้นบน ซึ่งปกติ ผมจะชินกับ บนลงล่าง ของ System.Drawing
ผมอยากจะ สร้าง เมทธอดเพิ่มเติม เพื่อ เรีบกใช้ PdfRectangle นี้ โดยจะกำหนด parameter เป็น int x, int y, int width, int height) เหมือน
rectangle
ซึ่งผมก็แยกโค้ดมาอีกคลาส เป็นดังนี้ครับ
DrawImageInPage(Image image, double PosX, double PosY, double width, double height)
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้// กำหนด margin ในหน่วย pixel
//จัดหน้ากระดาษ A4 (8.27 x 11.69 นิ้ว หรือ 21.0 x 29.7 cm หรือ 210 x 297 mm)
public readonly double PaperWidth = 595.276;//21.0 * 72 / 2.54;
public readonly double PaperHeight = 841.890;//29.7 * 72 / 2.54;
public readonly double leftMarginPixel = 30; // ระยะห่างด้านซ้ายในหน่วย pixel
public readonly double rightMarginPixel = 30; // ระยะห่างด้านขวาในหน่วย pixel
public readonly double topMarginPixel = 50; // ระยะห่างด้านบนในหน่วย pixel
public readonly double bottomMarginPixel = 40; // ระยะห่างด้านล่างในหน่วย pixel
public void DrawImageInPage(Image image, double PosX, double PosY, double width, double height)
{
//Add Element
PdfImage Image1 = new PdfImage(Document);
Image1.Resolution = 300.0;
Image1.ImageQuality = 100;
Image1.LoadImage(image);
// adjust image size and preserve aspect ratio
PdfRectangle ImageArea = new PdfRectangle(PosX,,PosY,);
PdfRectangle NewArea = PdfImageSizePos.ImageArea(Image1, ImageArea, ContentAlignment.MiddleCenter);
// clipping path
/*PdfDrawCtrl DrawCtrl = new PdfDrawCtrl();
DrawCtrl.Shape = DrawShape.Oval;
DrawCtrl.Paint = DrawPaint.Border;
DrawCtrl.BorderWidth = 0.04 * 25.4;
DrawCtrl.BorderColor = Color.DarkBlue;
DrawCtrl.BackgroundTexture = Image1;*/
// draw image
PdfContents Contents = new PdfContents(this);
Contents.DrawGraphics(DrawCtrl, NewArea);
}
คือผมจะ แปลง จาก PosX PosY width height ให้ไปเป็น left, bottom, right, top แต่ก็งงๆ กับ การคำนวณ ว่า คำนวณ ยังไง ครับ
คือค่า ดังกว่าว จะต้องไปลบ กับ Margin ซ้าย กับ บน ด้วย
เช่น หาก PosX = 20 ก็คือ PosX = leftMarginPixel + 20
แต่ PosX PosY width height คือไปไม่เป็นครับ
C# ขอสอบถามเรื่อง point ครับ
จากโค้ด
PdfRectangle
ซึ่งกำหนดแบบ left, bottom, right, top และ นับค่า จาก ซ้ายไปขวา และ ล่างขึ้นบน ซึ่งปกติ ผมจะชินกับ บนลงล่าง ของ System.Drawing
ผมอยากจะ สร้าง เมทธอดเพิ่มเติม เพื่อ เรีบกใช้ PdfRectangle นี้ โดยจะกำหนด parameter เป็น int x, int y, int width, int height) เหมือน
rectangle
ซึ่งผมก็แยกโค้ดมาอีกคลาส เป็นดังนี้ครับ
DrawImageInPage(Image image, double PosX, double PosY, double width, double height)
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
คือผมจะ แปลง จาก PosX PosY width height ให้ไปเป็น left, bottom, right, top แต่ก็งงๆ กับ การคำนวณ ว่า คำนวณ ยังไง ครับ
คือค่า ดังกว่าว จะต้องไปลบ กับ Margin ซ้าย กับ บน ด้วย
เช่น หาก PosX = 20 ก็คือ PosX = leftMarginPixel + 20
แต่ PosX PosY width height คือไปไม่เป็นครับ