fpdf2 - ភាសខ្មែរ (original) (raw)
របៀបប្រើប្រាស¶
ឯកសារទាំងស្រុងនៃវិធីប្រើ: fpdf.FPDF API doc
មេរៀនទី 1 - គំរូខ្លី¶
តោះចាប់ផ្តើមជាមួយឧទាហរណ៍ងាយៗ:
`from fpdf import FPDF
pdf = FPDF() pdf.add_page() pdf.set_font("helvetica", style="B", size=16) pdf.cell(40, 10, "Hello World!") pdf.output("tuto1.pdf") `
បន្ទាប់ពីបញ្ចូលឯកសារដើម្បីប្រើក្នុងបណ្ណាល័យ, យើងបង្កើតទំរង់ FPDF
មួយ។ FPDF ទំរង់នៃតម្លៃដើមដែលត្រូវបានប្រើទីនេះគឺ: ខ្នាតនៃទំព័រទាំងអស់ជា A4 រាងបញ្ឃរ ហើយមានរង្វាស់ខ្នាតគិតជាមីលីម៉ែត្រ។ វាត្រូវបានសំគាល់យ៉ាងច្បាស់ដូចកូដមួយបន្ទាត់ខាងក្រោមនេះ:
pdf = FPDF(orientation="P", unit="mm", format="A4")
យើងក៏អាចកំណត់ PDF បានផងដែរជាទំរង់រៀងក្រដាសផ្តេក (L
) ឬ អាចប្រើក្នុងទំរង់ក្រដាសផ្សេងៗទៀតដូចជា (ទំរង់លិតស្នាម Letter
និង ទំរង់ផ្លូវច្បាប់ Legal
) ហើយខ្នាតរង្វាស់អាចគិតជា (pt
, cm
, in
)។
មុននេះយើងមិនបាននិយាយអំពីទំព័រទេ ដូច្នេះយើងអាចអាចបង្កើតវាដោយប្រើ add_page។ ទីតាំងជ្រុងខាងលើខាងឆ្វេង និងទីតាំងដែលកំពុងស្ថិតនៅគឺកំណត់ដោយតម្លៃដើម 1 សង់ទីម៉ែត្រពីស៊ុបនៃបន្ទាត់ ការតម្រឹមអាចផ្លាស់ប្តូរបានដោយប្រើ set_margins.
មុនយើងអាចបោះពុម្ភអត្ថបទបាន កាតព្វកិច្ចរបស់យើងគឺរើសពុម្ភអក្សរជាមុនសិនដោយប្រើ set_font មិនដូចនោះទេអត្ថបទរបស់យើងនឹងមានបញ្ហា។ យើងអាចរើសយកពុម្ភអក្សរ Helvetica ដាក់ bold ទំហំ 16 តាមវិធីដូចខាងក្រោមជាគំរូ:
pdf.set_font('Helvetica', style='B', size=16)
យើងអាចកំណត់ជាទំរង់អក្សរទ្រេតដោយប្រើ I
និង ទំរង់មានបន្ទាត់រត់ពីក្រោយដោយប្រើ U
ឬ មិនចាំបាច់ប្រើពួកវា វានឹងបង្ហាញទំរង់ធម្មតាជាមួយនិងការប្រើអក្សរទទេ (empty string) មានន័យ (ឬ ការរួមបញ្ចូលគ្នាផ្សេងទៀត)។ ត្រូវចាំថាទំហំអក្សរត្រូវតែអោយតម្លៃខ្នាតគិតជាចុច(points) មិនមែនគិតជាមីលីម៉ែត្រ (ឬជាខ្នាតណាមួយផ្សេងទេ) នេះជាករណីលើកលេងក្នុងការប្រើប្រាស។ ពុម្ភអក្សរដែលបានបញ្ចូលរួចស្រេចរួមមាន Times
, Courier
, Symbol
និង ZapfDingbats
។
ឥលូវយើងអាចបោះពុម្ភសាកល្បងជាមួយការប្រើ cell។ មួយក្រឡា (cell) គឹមួយចតុកោណផ្ទៃគិតចាប់ពីផ្តើមបន្ទាត់ រហូតចប់នៃបន្ទាត់ផ្តេក ជាមួយស៊ុបដែលដែលអាចសរសេរអត្ថបទបាន។ វាបញ្ចេញទៅលើទីតាំងដែលកំពុងស្ថិនៅ។ យើងអាចកំណត់វិមាត្រ និង អត្ថបទ (ចំកណ្តាល ឬ ដោយការតម្រឹមស្រេចបាន) ប្រសិនបើមានការកំណត់ព្រំដែនវាអាចបង្ហាញផងដែរ ហើយនិងបង្ហាញចេញបន្ទាប់ពីទីតាំងដែលកំពុងនៅ (ដាក់ទៅខាងស្តាំ ឬ ដាក់ពីក្រោម ឬ ដាក់បន្ទាប់ពីចុះបន្ទាត់)។ ដើម្បីដាក់ស៊ុមជាបន្ទាត់ជុំវិញយើងប្រើ:
pdf.cell(40, 10, 'Hello World!', 1)
ដើម្បីដាក់ Cell ថ្មីមួយទៀតជាប់វា ដោយតម្រឹមអត្ថបទចេញពីកណ្តាលសម្រាប់បន្ទាត់បន្ទាប់យើងអាចប្រើ:
pdf.cell(60, 10, 'Powered by FPDF.', new_x="LMARGIN", new_y="NEXT", align='C')
ចំណាំ: ការចុះបន្ទាត់អាចធ្វើបានដោយប្រើ ln. វិធីសាស្រ្តនេះជាការបញ្ជាក់បន្ថែមលើការបញ្ចប់កថាខ័ណ្ឌតាមរយៈគម្លាតកម្ពស់នៃបន្ទាត់។
ជាចុងក្រោយ ក្នុងការបញ្ចប់នៃការបង្កើត យើងត្រូវផ្តល់នូវផ្លូវរបស់ទីតាំងដែលយើងត្រូវរក្សារឯកសារទុកដោយប្រើ output ដោយមិនចាំបាច់ផ្តល់ប៉ារ៉ាម៉ែត output()
បញ្ចូនត្រលប់វិញជាស្រទាប់ PDF bytearray
។
មេរៀនទី 2 - ក្បាលទំព័រ បាតកថា បំនែកទំពរ និង រូបភាព¶
នេះជាឧទារហ៍មួយដែលមានពីរទំព័រ ក្បាលទំព័រ, បាតកថាទំព័រ ឬ ជើងទំព័រ និង យីហោ:
`from fpdf import FPDF
class PDF(FPDF): def header(self): # Rendering logo: self.image("../docs/fpdf2-logo.png", 10, 8, 33) # Setting font: helvetica bold 15 self.set_font("helvetica", style="B", size=15) # Moving cursor to the right: self.cell(80) # Printing title: self.cell(30, 10, "Title", border=1, align="C") # Performing a line break: self.ln(20)
def footer(self):
# Position cursor at 1.5 cm from bottom:
self.set_y(-15)
# Setting font: helvetica italic 8
self.set_font("helvetica", style="I", size=8)
# Printing page number:
self.cell(0, 10, f"Page {self.page_no()}/{{nb}}", align="C")
Instantiation of inherited class
pdf = PDF() pdf.add_page() pdf.set_font("Times", size=12) for i in range(1, 41): pdf.cell(0, 10, f"Printing line number {i}", new_x="LMARGIN", new_y="NEXT") pdf.output("new-tuto2.pdf") `
ឯកសារនេះបង្កើតដោយប្រើ header និង footer ជារបៀបនៃដំណើរបង្កើតនៃក្បាលទំព័រ និង បាតកថាទំព័រ។ ពួកវានឹងចេញមកដោយស្វ័យប្រវត្តិ។ វាមានស្រាប់មកជាមួយ FPDF ត្រាន់តែវាបង្ហាញចេញជាចន្លោះទំនេរដែលធ្វើអោយយើងមើលមិនដឹង។ ដូច្នេះយើងគ្រាន់តែតែបន្ថែមបន្ថយវាជាការស្រេច។
រូបភាពនៃយីហោបានបង្ហាញ image តាមរយៈការកំណត់ប្រវែងទទឹងដាក់វាលើជ្រុងខាងលើនៃផ្នែកខាងឆ្វេង។ កម្ពស់គឺគណនាដោយស្វ័យប្រវត្តិផ្អែកតាមច្បាប់សមាមាត្រ។
ចំពោះការបង្ហាញលេខទំព័រវាបង្ហាញតម្លៃទទេរនៃប្រវែងទទឹងរបស់ក្រឡាផ្ទៃបន្ទាត់ (cell)។ វាមានន័យថាក្រឡាផ្ទៃត្រូវពង្រីកទៅផ្នែកនៃការកំណត់ចន្លោះទំនេរ(margin) ផ្នែកខាងស្តាំវាតម្រឹមចេញពីកណ្តាលនៃអត្ថបទមក។ លេខទំព័រដែលយើងកំពុងស្ថិតនៅនឹងបង្ហាញតម្លៃដោយប្រើ page_no ទៅតាមចំនួនសរុបនៃទំព័រជាញឹកញ៉ាប់គឺប្រើតម្លៃពិសេសបែបនេះ {nb}
ដែលជំនួសដោយចំនួនសរុបនៃទំព័រ (តម្លៃពិសេសនេះអាចប្តូរបានដោយ alias_nb_pages())។ ចំណាំនៃរបៀបប្រើប្រាស set_y ដែលអោយយើងកំណត់ទីតាំងអក្សឈរ ពីលើមកក្រោម។
មានមុខងារពិសេសមួយផ្សេងទៀតដែលអាចប្រើបាន: គឺការចុះបន្ទាត់ទៅទំព័រថ្មីដោយស្វ័យប្រវត្តិខណៈពេលវាទៅដល់ចំនុចទាល់នៃទំព័រ (នៅចំនុច 2 សង់ទីម៉ែតគម្លាតពីក្រោមមក) ពេលចុះបន្ទាត់វារក្សាពុម្ភអក្សរដដែល។ ថ្វីបើក្បាលទំព័រ និង បាតកថាទំព័រមានពុម្ភអក្សរផ្ទាល់គឺ (helvetica
)តែតួរអត្ថបទនៅតែជាពុម្ភ Times
។ យន្តការនៃការស្តារដោយស្វ័យប្រវត្តិនេះក៏អនុវត្តចំពោះពណ៌ និងទទឹងបន្ទាត់ផងដែរ។ ដែនកំណត់ដែលមានការញែកទំព័រអាចត្រូវបានកំណត់ជាមួយពាក្យថា set_auto_page_break។
មេរៀនទី 3 - ចុះបន្ទាត់ និង ដាក់ពណ៌¶
សូមបន្តជាមួយឧទាហរណ៍មួយដែលបោះពុម្ពកទំរង់ថាខណ្ឌយ៉ាងត្រឹមត្រូវ។ ដែលបង្ហាញពីការប្រើប្រាស់ពណ៌។
`from fpdf import FPDF
class PDF(FPDF): def header(self): # Setting font: helvetica bold 15 self.set_font("helvetica", style="B", size=15) # Calculating width of title and setting cursor position: width = self.get_string_width(self.title) + 6 self.set_x((210 - width) / 2) # Setting colors for frame, background and text: self.set_draw_color(0, 80, 180) self.set_fill_color(230, 230, 0) self.set_text_color(220, 50, 50) # Setting thickness of the frame (1 mm) self.set_line_width(1) # Printing title: self.cell( width, 9, self.title, border=1, new_x="LMARGIN", new_y="NEXT", align="C", fill=True, ) # Performing a line break: self.ln(10)
def footer(self):
# Setting position at 1.5 cm from bottom:
self.set_y(-15)
# Setting font: helvetica italic 8
self.set_font("helvetica", style="I", size=8)
# Setting text color to gray:
self.set_text_color(128)
# Printing page number
self.cell(0, 10, f"Page {self.page_no()}", align="C")
def chapter_title(self, num, label):
# Setting font: helvetica 12
self.set_font("helvetica", size=12)
# Setting background color
self.set_fill_color(200, 220, 255)
# Printing chapter name:
self.cell(
0,
6,
f"Chapter {num} : {label}",
new_x="LMARGIN",
new_y="NEXT",
align="L",
fill=True,
)
# Performing a line break:
self.ln(4)
def chapter_body(self, filepath):
# Reading text file:
with open(filepath, "rb") as fh:
txt = fh.read().decode("latin-1")
# Setting font: Times 12
self.set_font("Times", size=12)
# Printing justified text:
self.multi_cell(0, 5, txt)
# Performing a line break:
self.ln()
# Final mention in italics:
self.set_font(style="I")
self.cell(0, 5, "(end of excerpt)")
def print_chapter(self, num, title, filepath):
self.add_page()
self.chapter_title(num, title)
self.chapter_body(filepath)
pdf = PDF() pdf.set_title("20000 Leagues Under the Seas") pdf.set_author("Jules Verne") pdf.print_chapter(1, "A RUNAWAY REEF", "20k_c1.txt") pdf.print_chapter(2, "THE PROS AND CONS", "20k_c1.txt") pdf.output("tuto3.pdf") `
ប្រើ get_string_width ប្រវែងនៃខ្សែពុម្ភអក្សរលើពុម្ភអក្សរកំពុងប្រើ ដែលប្រើដើម្បីគណនាទីតាំងជុំវិញចំណងជើង។ ហើយដាក់ពណ៌ដោយប្រើ (via set_draw_color set_fill_color និង set_text_color) ហើយកំណត់កំរ៉ាស់បន្ទាត់ 1 មីលីម៉ែត (ដោយតម្លៃដើម 0.2) និងប្រើ set_line_width។ ចុងក្រោយ យើងទទួលបាន (ដាក់ប៉ារ៉ាម៉ែតចុងក្រោយដោយពាក្យថា “True” នោះបានន័យថាពណ៌ផ្ទៃក្រោយបានដាក់)។
វិធីសាស្រ្តក្នុងការបោះពុម្ភកថាខ័ណ្ឌពហុបន្ទាត់គឺ multi_cell. អត្ថបទរក្សាទំរង់ដើមយ៉ាងប្រក្រតី។ រាល់បន្ទាត់ដែលដល់ចុងខាងស្តាំ ឬ ចង់ចុះបន្ទាត់ត្រូវប្រើ (\n
) ពេលយើងចុះបន្ទាត់ផ្ទៃថ្មីត្រូវបានបង្កើតដោយស្វ័យប្រវត្តិពីក្រោមបន្ទាត់កំពុងប្រើ។ ការចុះបន្ទាត់ដោយស្វ័យប្រវត្តិនិងប្រព្រឹត្តទៅនៅខាងចុងបំផុតនៃចន្លោះ ឬ soft-hyphen (\u00ad
) នៅមុខអក្សរដែលត្រូវចុះ។ សញ្ញាត្រេជាអក្សរ និងត្រូវជំនួសដោយសញ្ញាត្រេធម្មតានៅពេលដែលវាភ្ជាប់ជាមួយបន្ទាត់ត្រូវចុះ មិនចឹងទេយើងរំលងវាចោលបាន។
មានកន្លែងពីរដែលអាចកំណត់លើឯកសារបានថាជាសម្បត្តិរបស់យើងបានគឺ: ចំណងជើង (set_title) និង អ្នកសរសេរ (set_author). ទាំងអស់នេះអាចបង្ហាញជាពីរអត្ថន័យ។ ទីមួយពេលបើកឯកសារជាមួយកម្មវិធី Acrobat Reader ចុចលើ File ពីមីនុយ ហើយរើសយក Document Properties។ ទីពីរអាចរកវាឃើញពី plug-in ដោយប្រើ Right-Click ហើយរើសយកពាក្យ Document Properties។
មេរៀនទី 4 - ពហុជួរឈរ¶
នេះជាឧទារហ៍យោងពីលើកមុន តែត្រង់នេះយើងនឹងបង្ហាញពីរបៀបប្រើប្រាសពហុជួរឈរ។
`from fpdf import FPDF
class PDF(FPDF): def header(self): self.set_font("helvetica", style="B", size=15) width = self.get_string_width(self.title) + 6 self.set_x((210 - width) / 2) self.set_draw_color(0, 80, 180) self.set_fill_color(230, 230, 0) self.set_text_color(220, 50, 50) self.set_line_width(1) self.cell( width, 9, self.title, border=1, new_x="LMARGIN", new_y="NEXT", align="C", fill=True, ) self.ln(10)
def footer(self):
self.set_y(-15)
self.set_font("helvetica", style="I", size=8)
self.set_text_color(128)
self.cell(0, 10, f"Page {self.page_no()}", align="C")
def chapter_title(self, num, label):
self.set_font("helvetica", size=12)
self.set_fill_color(200, 220, 255)
self.cell(
0,
6,
f"Chapter {num} : {label}",
new_x="LMARGIN",
new_y="NEXT",
border="L",
fill=True,
)
self.ln(4)
def chapter_body(self, fname):
# Reading text file:
with open(fname, "rb") as fh:
txt = fh.read().decode("latin-1")
with self.text_columns(
ncols=3, gutter=5, text_align="J", line_height=1.19
) as cols:
# Setting font: Times 12
self.set_font("Times", size=12)
cols.write(txt)
cols.ln()
# Final mention in italics:
self.set_font(style="I")
cols.write("(end of excerpt)")
def print_chapter(self, num, title, fname):
self.add_page()
self.chapter_title(num, title)
self.chapter_body(fname)
pdf = PDF() pdf.set_title("20000 Leagues Under the Seas") pdf.set_author("Jules Verne") pdf.print_chapter(1, "A RUNAWAY REEF", "20k_c1.txt") pdf.print_chapter(2, "THE PROS AND CONS", "20k_c1.txt") pdf.output("tuto4.pdf") `
ចំនុចចំបងដែលខុសពីមេរៀនមុនគឺ ការប្រើប្រាស់មុខងារ text_columns ។ រាល់អក្សរទាំងអស់ អាចជាបន្ថែមបន្ត ហើយពង្រាយវាទៅតាមជួរឈរ វាបង្កើតបំនែកទំព័រដោយស្វ័យប្រវត្តិពេលចាំបាច់។
ចំណាំ ពេលដែល TextColumns ដាក់អោយដើរតួជាប្រធានបរិបទ (context manager) រចនាបទរបស់អត្ថបទ និង ទម្រង់ពុំអក្សរផ្សេងៗក៏ត្រូវបានប្តូរផងដែរ។ ការផ្លាស់ប្តូរទាំងនេះគឺផ្អែកលើបន្ទុករបស់បរិបទ។ នៅពេលដែលវាបានបិទ ការកំណត់ពីមុននឹងត្រូវបានស្តារឡើងវិញ។
មេរៀនទី 5 - បង្កើតតារាង¶
ក្នុងមេរៀននេះនឹងពន្យល់អំពីការបង្កើតតារាងពីរផ្សេងគ្នា ដើម្បីមានភាពងាយស្រួលយើងមានឧទារហ៍ខ្លះៗអំពីការបង្កើតនេះ។
`import csv from fpdf import FPDF from fpdf.fonts import FontFace from fpdf.enums import TableCellFillMode
with open("countries.txt", encoding="utf8") as csv_file: data = list(csv.reader(csv_file, delimiter=","))
pdf = FPDF() pdf.set_font("helvetica", size=14)
Basic table:
pdf.add_page() with pdf.table() as table: for data_row in data: row = table.row() for datum in data_row: row.cell(datum)
Styled table:
pdf.add_page() pdf.set_draw_color(255, 0, 0) pdf.set_line_width(0.3) headings_style = FontFace(emphasis="BOLD", color=255, fill_color=(255, 100, 0)) with pdf.table( borders_layout="NO_HORIZONTAL_LINES", cell_fill_color=(224, 235, 255), cell_fill_mode=TableCellFillMode.ROWS, col_widths=(42, 39, 35, 42), headings_style=headings_style, line_height=6, text_align=("LEFT", "CENTER", "RIGHT", "RIGHT"), width=160, ) as table: for data_row in data: row = table.row() for datum in data_row: row.cell(datum)
pdf.output("tuto5.pdf") `
លទ្ធផលសម្រេច PDF - Countries CSV data
មានមូលដ្ឋានក្នុងការធ្វើដោយជោគជ័យជាមួយឧទារហ៍នេះដោយដាក់ទិន្នន័យដោយប្រើ FPDF.table(). វាមានភាពសម្មាញ់និងធ្វើបានលឿន។
តារាងទីពីរយើងនឹងធ្វើអោយប្រសើរជាងមុនរួមមានដូចជា: ដាក់ពណ៌ ដោយកំណត់ប្រវែងទទឹង បន្ថយបន្ទាត់កំពស់។ តម្រឹមចំណងជើងចេញពីកណ្តាល រៀបជួរឈរដោយការប្តូរតម្លៃប្រវែងទទឹងវា និង ការកំណត់តម្រឹមខាងស្តាំ។ ជាងនេះទៅទៀតនោះ គឹដកបន្ទាត់ផ្តេកចេញ។ ធ្វើបែបនេះទៅបានដោយរើសយក borders_layout
ដែលមានជម្រើសជាច្រើននៅទីនោះ: TableBordersLayout.
មេរៀនទី 6 - បង្កើតតំណរជាមួយអត្ថបទ¶
ក្នុងមេរៀននេះយើងនឹងពន្យល់អំពីរបៀបជាច្រើនក្នុងការដាក់តំណរនៅលើឯកសារ pdf ហើយយើងក៏ដាក់តំណរដៅទៅប្រភពផ្សេងនៅក្រៅផងដែរ។
យើងនឹងបង្ហាញពីរបៀបជាច្រើនទៀតក្នុងការលេងម៉ូដអត្ថបទរួមមានដូចជាម៉ូដឌិត ទ្រេត មានបន្ទាត់ពីក្រោម (bold, italic, underline)។
`from fpdf import FPDF
pdf = FPDF()
First page:
pdf.add_page() pdf.set_font("helvetica", size=20) pdf.write(5, "To find out what's new in self tutorial, click ") pdf.set_font(style="U") link = pdf.add_link(page=2) pdf.write(5, "here", link) pdf.set_font()
Second page:
pdf.add_page()
pdf.image(
"../docs/fpdf2-logo.png", 10, 10, 50, 0, "", "https://py-pdf.github.io/fpdf2/"
)
pdf.set_left_margin(60)
pdf.set_font_size(18)
pdf.write_html(
"""You can print text mixing different styles using HTML tags: bold, italic,
underlined, or all at once!
You can also insert links on text, such as https://py-pdf.github.io/fpdf2/,
or on an image: the logo is clickable!"""
)
pdf.output("tuto6.pdf")
`
របៀបថ្មីមួយទៀតក្នុងការបង្ហាញអត្ថបទដើម្បីបោះពុម្ភ write()។ វាមានភាពស្រដៀងទៅនឹង multi_cell() ចំណែកភាពខុសគ្នាមាន:
- ការបញ្ចប់នូវបន្ទាត់គឺតម្រឹមខាងស្តាំ ហើយការចាប់បន្ទាត់ថ្មីគឺនៅខាងឆ្វេង។
- ទីតាំងកំពុងធ្វើការវាប្តូរទៅផ្នែកខាងចុងបំផុតនៃអត្ថបទ។
ដោយហេតុនេះយើងអាចសរសេរអត្ថបទជាកំណាត់ៗបាន ដោយការកំណាត់ម៉ូដខុសៗគ្នាតាមដែលយើងចង់បាន ហើយ បន្តទៅទៀតយើងចង់ដាក់វានៅកន្លែងណាក៏បាន។ ម្យ៉ាងវិញទៀត គុណវិបត្តិចម្បងរបស់វាគឺថាយើងមិនអាចតម្រឹម ឬ កែរអត្តបទច្រើនបន្ទាត់បានដូចយើងធ្វើវិធី multi_cell() ទេ។
គោលបំណងលើឧទារហ៍ទីមួយគឺអោយយើងរៀនប្រើ write() . នៅជំហានដំបូងនៃប្រយោគ យើងបានរៀនសរសេរនូវអត្ថបទដោយដោយរចនាបែបធម្មតា ហើយបន្ទាប់ទៀតយើងប្រើវិធី set_font() តមកទៀតយើងរចនាដាក់បន្ទាត់ពីក្រោមពាក្យនៅចុងបញ្ចប់នៃប្រយោគ។
របៀបដាក់នូវតំណរភ្ជាប់ទៅទំព័រទីពីរយើងអាចប្រើវិធី add_link() ដែលបង្កើតនូវតំបន់ដែលយើងអាចចុចបានហៅថា "link" ហើយវារត់ទៅរកទំព័រមួយផ្សេងទៀតនៅលើឯកសារដែលយើងកំពុងបើក។
ដើម្បីបងតំណរទៅខាងកន្លែងផ្សេងទៀតតាមរយៈរូបភាពដោយប្រើ image() . ប្រើវិធីនេះដើម្បីភ្ជាប់តំណរទៅកាន់ប្រភពមួយផ្សេងទៀត ហើយតំណរនេះអាចត្រូវបានប្រើប្រាសជាមួយប្រភពខាងក្នុង និង ខាងក្រៅ។
ជំរើសមួយផ្សេងទៀតយើងអាចដាក់រចនាពុម្ភអក្សរទៅលើការដាក់តំណរភ្ជាប់តាមវិធី write_html()
។ អាចប្រើភាសារកូដ html ដែលអោយយើងថែមអត្ថបទ ផ្លាស់ប្តូររចនាពុម្ភអក្សរ និង ដាក់តំណរភ្ជាប់(link) ដោយប្រើភាសា HTML។