using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
1.2 สร้างเมธอดในการสร้าง Template ลายน้ำต้นฉบับ เพื่อใช้ในการทำลายน้ำให้กับไฟล์ PDF ที่ต้องการ
////กรณียังไม่เคยสร้างหรือมี Template มาก่อน ให้เรียกใช้งาน CreateTemplate("ข้อความที่ต้องการให้แสดงในเทมเพลต",พาธที่จะสร้างไฟล์เทมเพลตดังกล่าว)
public void CreateTemplate(stringwatermarkText, stringtargetFileName)
{
var document = new Document();
////ระบุพาธที่ต้องการสร้างไฟล์เทมเพลต
var pdfWriter = PdfWriter.GetInstance(document, new FileStream(targetFileName, FileMode.Create));
///ระบุค่าต่างๆเกี่ยวกับตัวอักษรที่จะแสดงผลในเทมเพลตลายน้ำที่สร้างขึ้น
var font = new Font(Font.FontFamily.HELVETICA, 60, Font.NORMAL, BaseColor.LIGHT_GRAY);
document.Open();
////ระบุค่าข้อความ และค่าต่างๆให้กับลายน้ำที่ต้องการ
ColumnText.ShowTextAligned(pdfWriter.DirectContent, Element.ALIGN_CENTER, new Phrase(watermarkText, font), 300, 400, 45);
document.Close();
}
ตัวอย่าง ไฟล์ PDF ของ Template ลายน้ำที่ได้จากการเรียกใช้งานเมธอด CreateTemplate ข้างต้น
1.3 สร้างเมธอดในการจัดทำลายน้ำข้อความให้กับไฟล์ PDF จาก template ลายน้ำต้นฉบับ
public voidAddTextWatermark(stringsourceFilePath, stringwatermarkTemplatePath, stringtargetFilePath)
{
///ระบุพาธไฟล์ต้นทางที่ต้องการทำข้อความลายน้ำ
var pdfReaderSource = new PdfReader(sourceFilePath);
///ระบุพาธไฟล์ปลายทางที่ต้องการบันทึกไฟล์แบบมีลายน้ำ
var pdfStamper = new PdfStamper(pdfReaderSource, new FileStream(targetFilePath, FileMode.Create));
///ระบุพาธของไฟล์ต้นแบบลายน้ำที่จัดทำไว้
var pdfReaderTemplate = new PdfReader(watermarkTemplatePath);
var page = pdfStamper.GetImportedPage(pdfReaderTemplate, 1);
///ทำการวนลูปเพื่อทำลายน้ำให้กับไฟล์ PDF ทีละหน้า
for (var i = 0; i < pdfReaderSource.NumberOfPages; i++)
{
///ระบุตำแหน่งในการแสดงผลลายน้ำกับเนื้อหาในไฟล์ PDF กรณีนี้คือวางไว้ใต้เนื้อหา แต่หากต้องการให้อยู่บนเนื้อหาให้เปลี่ยนเป็น GetOverContent แทน
var content = pdfStamper.GetUnderContent(i + 1);
content.AddTemplate(page, 0, 0);
}
pdfStamper.Close();
pdfReaderTemplate.Close();
}
1.4 เรียกใช้งานเมธอดเพื่อทำลายน้ำให้กับไฟล์ PDF ที่ต้องการ(กรณีนี้สมมุติให้เป็นการกดปุ่มเพื่อเรียกใช้งานเมธอดดังกล่าว)
แต่สำหรับเนื้อหาในไฟล์ PDF โดยทั่วไปแล้ว สามารถใช้งาน GetUnderContent ได้ตามปกติ เพื่อไม่ให้ข้อความลายน้ำบดบังเนื้อหาในเอกสาร
แบบที่ 2การสร้างลายน้ำแบบรูปภาพให้กับเอกสาร PDF โดยจะขอยกตัวอย่างให้ดู 2 แบบนะคะ คือแบบที่สร้างลายน้ำบนไฟล์ PDF ใหม่ และแบบที่สร้างลายน้ำบนไฟล์ต้นทางเดิมค่ะ
public voidAddImageWatermark(stringsourceFilePath, stringwatermarkImagePath, stringtargetFilePath)
{
///ระบุพาธไฟล์ต้นทางที่ต้องการทำภาพลายน้ำ
var pdfReader = new PdfReader(sourceFilePath);
///ระบุพาธไฟล์ปลายทางที่ต้องการบันทึกไฟล์แบบมีภาพลายน้ำ
var pdfStamper = new PdfStamper(pdfReader, new FileStream(targetFilePath, FileMode.Create));
///ระบุพาธของไฟล์ภาพที่ต้องการนำมาทำภาพลายน้ำ
var image = iTextSharp.text.Image.GetInstance(watermarkImagePath);
image.SetAbsolutePosition(200, 400);
///ทำการวนลูปเพื่อทำภาพลายน้ำให้กับไฟล์ PDF ทีละหน้า
for (var i = 0; i < pdfReader.NumberOfPages; i++)
{
var content = pdfStamper.GetUnderContent(i + 1);
content.AddImage(image);
}
pdfStamper.Close();
}
สวัสดีท่านผู้อ่านทุกๆ ท่าน มาค่ะ เรามาต่อกันใน Blog ที่ 4 ของรอบ TOR นี้ ซึ่งผู้เขียนขอพาไปรู้จักกับ NotionForms
ถ้าพร้อมแล้ว ไปค่ะ ไปเรียนรู้ไปพร้อมๆ กัน 😜
NotionForms 💬 NotionForms was created to help Notion users to achieve more with their favourite tool. Need a contact form? Doing a survey? Create a form in 3 minutes and receive responses directly in Notion.
เอาจริงๆ หลายๆ ท่านก็คงจะรู้จักวิธีการสร้างฟอร์ม สร้างแบบสอบถาม ด้วยเครื่องมืออื่นๆ มาบ้างแล้ว เช่น google form, microsoft form หรือ อื่นๆ NotionForms ก็คล้ายๆ กับเครื่องมือเหล่านั้น อาจจะมีแตกต่างกันบ้างในเรื่องของลูกเล่น หรือฟังก์ชัน ให้เราได้ลองใช้งานกันค่ะ
เมื่อพร้อมแล้ว เรามาทดลองสร้าง Form ด้วย NotionForms ตัวนี้กันเลย
ก่อนอื่นเราต้องสร้างฐานข้อมูลหรือตารางสำหรับจัดเก็บข้อมูลแบบฟอร์มของเราขึ้นมาก่อน ตัวอย่างใน Blog นี้ผู้เขียนขอสร้างตารางชื่อ Admission Feedback เก็บข้อมูล 4 column – name (type = text) – feedback (type = text) – the system is easy to use (type = select) – How do you feel after using the system (type = select)
โดย column ที่อยู่ในรูปแบบ select เราก็จะเพิ่ม option เข้าไป เช่น column “How do you feel after using the system” ก็จะมี 2 option 1. 👍 ฉันถูกใจสิ่งนี้ 2. 👎 ฉันไม่ถูกใจ
สวัสดีท่านผู้อ่านทุกๆ ท่าน สำหรับ Blog ที่ 3 ในรอบ TOR นี้ ผู้เขียนขอแนะนำการสร้าง Database เก็บข้อมูลบน Notion กันค่ะ
📍 Blog นี้จะไม่ลงลึกในส่วนการสมัครใช้งาน notion แต่จะเน้นในส่วนของการสร้าง Table เพื่อเก็บข้อมูล
Notion 💬 Notion is a workspace with lots of tools to help you stay organized and productive. You can use notes, tasks, wikis and databases to manage projects, tasks, ideas and more.
📲 More than a doc. Or a table. Customize Notion to work the way you do.
📢 หากผู้อ่านอยากรู้ว่า Notion คืออะไร สามารถไปอ่านได้ที่ More than noting “Notion”ซึ่งมีสมาชิกผู้ร่วมอุดมการณ์เขียนแบบย่อๆ เอาไว้เรียบร้อยแล้ว