Appendix A: Supported HTML tags
Renderer HTML chấp nhận một tập con có giới hạn cho rich text, khối có cấu trúc, bảng và ảnh được ánh xạ tường minh
Tham số
<p>, <br> | Đoạn văn và ngắt dòng cứng, gồm cả attribute căn đoạn và giãn cách kiểu cũ |
|---|---|
<h1> through <h6> | Các tiêu đề khối đậm với cỡ mặc định giảm dần |
<div>, <section>, <article>, <header>, <footer>, <main> | Block containers |
<blockquote> | Indented block content |
<ul>, <ol>, <li> | Danh sách không thứ tự và có thứ tự lồng nhau |
<b>, <strong>, <i>, <em> | Văn bản đậm và nghiêng |
<sup>, <sub>, <u> | Chỉ số trên, chỉ số dưới, gạch chân, gạch chân đôi, gạch ngang và gạch trên |
<font>, <span> | Các attribute kiểu cũ: font, màu, nền, viền, chế độ render chữ và nền bo góc |
<a href="..."> | Siêu liên kết HTTP, HTTPS và tệp |
Thác đổ CSS
Rules may appear in <style> elements or inline style attributes
Bộ chọn hỗ trợ tag, class, ID, tag.class và các tổ hợp hậu duệ bằng khoảng trắng; attribute selector, pseudo selector và tổ hợp anh-em hay cha-con không hỗ trợ bị bỏ qua
Các khai báo khớp nhau dùng specificity CSS và thứ tự nguồn, khai báo inline được ưu tiên, còn !important được tôn trọng trong tập con được hỗ trợ
Các thuộc tính được hỗ trợ gồm các thuộc tính văn bản, nền, font, trang trí, căn lề, line-height, margin, padding, viền, chiều rộng, chiều cao, display và vertical-alignment liệt kê dưới đây, cộng thêm các thuộc tính Flexbox, Grid và chú thích chân trang ở các mục tương ứng
Độ dài nhận point, pixel với 0.75 point mỗi pixel, đơn vị em, phần trăm và giá trị point không đơn vị; cỡ font còn nhận bộ từ khóa chuẩn từ xx-small đến xx-large
Flexbox
display:flex và display:inline-flex hỗ trợ flex-direction, flex-wrap, flex, flex-grow, flex-shrink, flex-basis, justify-content, align-items, align-self, align-content, gap, row-gap và column-gap
Container hàng phân phối không gian trống dương và âm theo từng flex line, các hàng bị wrap được đo độc lập, còn container cột phân phối một chiều cao tường minh hay suy từ nội dung
CSS Grid
display:grid và display:inline-grid hỗ trợ grid-template-columns, grid-template-rows, track cố định, phần trăm và fr, repeat() và minmax() đơn giản, grid-column, grid-row, thuộc tính start/end, span, gap, tự đặt chỗ theo hàng hay cột, và căn từng phần tử
Một container nhận tối đa 256 mục trực tiếp và 64 hàng hoặc cột; nội dung lồng nhau dùng cùng renderer HTML và cache layout
Chú thích cuối trang
<footnote>, <aside style="float:footnote"> và <aside role="doc-footnote"> tạo chú thích đánh số
Text box hữu hạn dành sẵn vùng chú thích ở đáy trước khi sắp các dòng thân sau đó; tham chiếu và chú thích không vừa chung một khung sẽ tràn sang khung kế, và trạng thái nối tiếp giữ nguyên số thứ tự
Bảng
<table>, <tr>, <td> và <th> render các hàng đã đo với nền, padding, viền, kiểu chữ và colspan tới 64 cột
Các cột chia đều chiều rộng bảng tường minh hoặc chiều rộng khả dụng, ô tiêu đề mặc định in đậm với nền nhạt, và một hàng được nối tiếp như một khối nguyên vẹn trong text box HTML kế tiếp
Bảng lồng nhau, rowspan, gộp viền và định kích thước cột tự động theo nội dung không thuộc tập con này
Ảnh
<img src="name"> vẽ một ảnh đã bind trước đó bằng SetHTMLImage
Renderer hỗ trợ chiều rộng, chiều cao, margin, padding, viền, nền và căn trái/giữa/phải; thiếu một chiều sẽ giữ tỷ lệ khung hình tự nhiên, còn chiều bị bỏ qua dùng 0.75 point cho mỗi pixel nguồn
Nguồn ảnh không bao giờ kích hoạt truy cập mạng hay file, việc đo không đăng ký resource, và dùng lặp lại tái dùng image XObject đã bind
Giới hạn và khôi phục
Một đầu vào HTML nhận tối đa 2048 quy tắc stylesheet, 256 byte mỗi selector, 4096 byte mỗi khối khai báo, 4096 hàng bảng và 4096 ô bảng
Các thuộc tính, selector, tag và attribute lạ bị bỏ qua trong khi văn bản xung quanh được giữ; character reference được decode và phần lồng hỏng được đóng một cách thận trọng
Ví dụ
var
LogoID: Integer;
begin
LogoID := PDF.AddImageFromFile('logo.png');
PDF.SetHTMLImage('brand-logo', LogoID);
PDF.DrawHTMLTextBox(50, 750, 420, 180,
'<style>.report h2 { color:#204080; } table { border:1pt solid #808080; }</style>' +
'<section class="report"><h2>Quarterly report</h2>' +
'<img src="brand-logo" width="72pt">' +
'<table><tr><th>Region</th><th>Total</th></tr>' +
'<tr><td>North</td><td>125</td></tr></table></section>');
end;