การสร้างไฟล์ PDF ผ่าน JavaScript ฟรี API

Open Source Pure JavaScript Library รองรับการสร้างเอกสาร PDF และการจัดการสำหรับโหนดและเว็บเบราว์เซอร์

PDFMake เป็นไลบรารี JavaScript โอเพ่นซอร์สที่ทรงพลังมาก ซึ่งช่วยให้นักพัฒนาซอฟต์แวร์สามารถจัดการงานที่เกี่ยวข้องกับการสร้างและจัดการเอกสาร PDF โดยใช้คำสั่ง JavaScript สิ่งที่ยอดเยี่ยมเกี่ยวกับไลบรารีคือคุณสามารถระบุข้อมูลสำหรับการสร้าง PDF ได้อย่างง่ายดายโดยใช้รูปแบบอ็อบเจ็กต์ข้อกำหนดของเอกสาร

ไลบรารี PDFmake ได้รวมการรองรับคุณสมบัติที่สำคัญหลายอย่างที่เกี่ยวข้องกับการจัดการเอกสาร PDF เช่น การเพิ่มรูปภาพและเนื้อหาข้อความลงในเอกสาร PDF การตัดบรรทัด การจัดตำแหน่งข้อความ การแทรกและการจัดการตาราง การใช้สไตล์ การเพิ่มส่วนหัวและส่วนท้ายของหน้า การวางแนวของหน้า และระยะขอบ การสนับสนุน  แบบอักษรและการฝังกราฟิก การสร้างสารบัญ การสนับสนุนตัวแบ่งหน้า และอื่นๆ อีกมากมาย

ไลบรารีมีความเสถียรมากและสามารถใช้งานได้ง่ายทั้งบนไคลเอนต์และฝั่งเซิร์ฟเวอร์ สามารถทำงานได้ในเบราว์เซอร์และใน Node.js รวมการสนับสนุนเบราว์เซอร์ยอดนิยมหลายตัวเช่น Internet Explorer 10+, Edge 12+, Firefox, Chrome, Opera, Safari และอื่น ๆ

Previous Next

เริ่มต้นใช้งาน PDFMake

PDFMake พร้อมใช้งานที่ npm คุณสามารถดาวน์โหลดและติดตั้งลงในเครื่องของคุณได้อย่างง่ายดาย โปรดใช้คำสั่งต่อไปนี้เพื่อการติดตั้งที่ราบรื่น

ติดตั้ง PDFMake โดยใช้ bower

bower install pdfmake

สร้างไฟล์ PDF โดยใช้ JavaScript Library

ไลบรารี JavaScript แบบโอเพนซอร์ส PDFMake ช่วยให้โปรแกรมเมอร์ซอฟต์แวร์สร้างเอกสาร PDF ภายในแอปพลิเคชันของตนเองได้อย่างง่ายดายโดยใช้โค้ด JavaScript ไลบรารี่ได้มอบชุดคุณสมบัติที่ครบถ้วนสำหรับการทำงานกับไฟล์ PDF เช่น การเลือกประเภทฟอนต์ที่มีขนาด สี และการจัดรูปแบบ การเพิ่มหน้าใหม่ การแทรกคอลัมน์ การเพิ่มและใช้สไตล์ การแทรกตาราง การลบหน้าที่ไม่ต้องการ และอื่นๆ อีกมากมาย มากกว่า.

เพิ่มส่วนหัวและส่วนท้ายลงในไฟล์ PDF

หัวกระดาษและท้ายกระดาษเป็นส่วนที่มีประโยชน์มากของเอกสาร PDF และสามารถใช้เพื่อรวมส่วนนั้นของเนื้อหาที่ผู้ใช้ต้องการให้ปรากฏบนทุกหน้าของเอกสาร เช่น ชื่อผู้เขียน ชื่อเอกสาร หมายเลขหน้า โลโก้ และอื่นๆ อีกมากมาย ไลบรารี JavaScript PDFMake รองรับการเพิ่มและแก้ไขส่วนหัวและส่วนท้ายของเอกสาร PDF อย่างสมบูรณ์ รองรับคุณสมบัติต่างๆ เช่น การเพิ่มส่วนหัว/ส่วนท้ายซ้ำ การแทรกรูปภาพในส่วนหัว/ส่วนท้าย การเพิ่มหมายเลขหน้า และอื่นๆ อีกมากมาย

ส่วนหัวและส่วนท้ายเป็น PDF ผ่าน JavaScript

 var docDefinition = {
 header: 'simple text',
 footer: {
  columns: [
   'Left part',
   { text: 'Right part', alignment: 'right' }
  ]
 },
 content: (...)
};

การแทรกรูปภาพลงในไฟล์ PDF

ไลบรารี JavaScript โอเพ่นซอร์ส PDFMake รองรับการเพิ่มและแก้ไขรูปภาพภายในไฟล์ PDF โดยใช้คำสั่ง JavaScript อย่างสมบูรณ์ ไลบรารี่ได้จัดเตรียมคุณลักษณะสำหรับการตั้งค่าความกว้างและความสูงของรูปภาพ ปรับรูปภาพให้อยู่ในสี่เหลี่ยมผืนผ้า เรียกรูปภาพผ่าน URL ปรับขนาดรูปภาพตามสัดส่วน และขยายรูปภาพ หากคุณต้องการใช้รูปภาพเดียวกันในหลายโหนด คุณต้องใส่รูปภาพนั้นในพจนานุกรมรูปภาพแล้วเรียกตามชื่อ

เพิ่มรูปภาพเป็น PDF ผ่าน JavaScript

 var docDefinition = {
 content: [
  {
   // you'll most often use dataURI images on the browser side
   // if no width/height/fit is provided, the original size will be used
   image: 'data:image/jpeg;base64,...encodedContent...'
  },
  {
   // if you specify width, image will scale proportionally
   image: 'data:image/jpeg;base64,...encodedContent...',
   width: 150
  },
  {
   // if you specify both width and height - image will be stretched
   image: 'data:image/jpeg;base64,...encodedContent...',
   width: 150,
   height: 150
  },
  {
   // you can also fit the image inside a rectangle
   image: 'data:image/jpeg;base64,...encodedContent...',
   fit: [100, 100]
  },
  {
   // if you reuse the same image in multiple nodes,
   // you should put it to to images dictionary and reference it by name
   image: 'mySuperImage'
  },
  {
   image: 'myImageDictionary/image1.jpg'
  },
  {
   // in browser is supported loading images via url from reference by name in images
   image: 'snow'
  },
  {
   image: 'strawberries'
  },
 ],
 images: {
  mySuperImage: 'data:image/jpeg;base64,...content...',
  snow: 'https://picsum.photos/seed/picsum/200/300',
  strawberries: {
   url: 'https://picsum.photos/id/1080/367/267'
   headers: {
    myheader: '123',
    myotherheader: 'abc',
   }
  }
 }
};

การวางแนวหน้าและการสนับสนุนมาร์จิ้น

PDFMake ไลบรารี JavaScript ฟรีได้รวมการสนับสนุนสำหรับการตั้งค่าขนาดหน้า การวางแนวของหน้า และระยะขอบของหน้าในแอป JavaScript ในการตั้งค่าขนาดหน้า คุณต้องระบุความกว้างและความสูงของหน้าใหม่ ตามค่าเริ่มต้น ไลบรารีจะใช้การวางแนวหน้าแนวตั้ง แต่สามารถตั้งค่าให้เป็นแนวนอนได้อย่างง่ายดายด้วยโค้ดซับเดียว นอกจากนี้ยังรองรับการตั้งค่าระยะขอบของหน้าและอนุญาตให้ผู้ใช้ควบคุมตัวแบ่งหน้าแบบไดนามิก รองรับระยะขอบซ้าย บน ขวา ล่าง เช่นเดียวกับแนวนอน และแนวตั้ง

สร้างไลบรารีสำหรับคอมไพเลอร์

 
var dd = {
	content: [
		{
			stack: [
				'This header has both top and bottom margins defined',
				{text: 'This is a subheader', style: 'subheader'},
			],
			style: 'header'
		},
		{
			text: [
				'Margins have slightly different behavior than other layout properties. They are not inherited, unlike anything else. They\'re applied only to those nodes which explicitly ',
				'set margin or style property.\n',
			]
		},
		{
			text: 'This paragraph (consisting of a single line) directly sets top and bottom margin to 20',
			margin: [0, 20],
		},
		{
			stack: [
				{text: [
						'This line begins a stack of paragraphs. The whole stack uses a ',
						{text: 'superMargin', italics: true},
						' style (with margin and fontSize properties).',
					]
				},
				{text: ['When you look at the', {text: ' document definition', italics: true}, ', you will notice that fontSize is inherited by all paragraphs inside the stack.']},
				'Margin however is only applied once (to the whole stack).'
			],
			style: 'superMargin'
		},
	],
	styles: {
		header: {
			fontSize: 18,
			bold: true,
			alignment: 'right',
			margin: [0, 190, 0, 80]
		},
		subheader: {
			fontSize: 14
		},
		superMargin: {
			margin: [20, 0, 40, 0],
			fontSize: 15
		}
	}
}

แทรกตารางเป็น PDF ผ่าน JavaScript

ไลบรารีโอเพนซอร์ส PDFMake ช่วยให้โปรแกรมเมอร์คอมพิวเตอร์สามารถแทรกและอัปเดตตารางภายในไฟล์ PDF ได้ ไลบรารีรองรับคุณสมบัติขั้นสูงต่างๆ สำหรับการจัดการคอลัมน์และเซลล์แถวของตาราง มีการรองรับการจัดตำแหน่งตาราง เส้นขอบตารางสไตล์ การกำหนดความกว้างเป็นเปอร์เซ็นต์ หมุนตาราง กำหนดแถวส่วนหัวของตารางในหน้าใหม่ และอื่นๆ อีกมากมาย

สร้างไลบรารีสำหรับคอมไพเลอร์

 var docDefinition = {
 content: [
  {
   layout: 'lightHorizontalLines', // optional
   table: {
    // headers are automatically repeated if the table spans over multiple pages
    // you can declare how many rows should be treated as headers
    headerRows: 1,
    widths: [ '*', 'auto', 100, '*' ],
    body: [
     [ 'First', 'Second', 'Third', 'The last one' ],
     [ 'Value 1', 'Value 2', 'Value 3', 'Value 4' ],
     [ { text: 'Bold value', bold: true }, 'Val 2', 'Val 3', 'Val 4' ]
    ]
   }
  }
 ]
};
pdfMake.createPdf(docDefinition, tableLayouts, fonts, vfs)
// tableLayouts, fonts and vfs are all optional - falsy values will cause
 ไทย