Phương thức THotPDF.BuildLoadedPageSVG
Cung cấp hành vi xây dựng SVG cho trang đã tải trong quy trình hình học trang. Dùng API này khi họ API xung quanh cần kiểm soát tường minh các đối tượng PDF, nội dung trang, tài nguyên, mức độ tuân thủ hoặc chẩn đoán
Khai báo
function BuildLoadedPageSVG(PageIndex: Integer): AnsiString; overload;
function BuildLoadedPageSVG(PageIndex: Integer;
EmbedFonts: boolean): AnsiString; overload;
Đơn vị
HPDFDoc
Tham số
| Tên | Mục đích |
|---|---|
PageIndex | Chỉ mục dựa trên 0 của trang đã tải |
EmbedFonts | True ghi các glyph của font nhúng vào SVG dưới dạng outline, để trang trông giống hệt ở nơi những font đó không được cài đặt. False, và overload không có tham số này, để văn bản cho các font đã cài đặt trên viewer |
Giá trị trả về
Trả về một giá trị AnsiString
Ghi chú sử dụng
- Đường dẫn, văn bản đã giải mã, XObject ảnh, ảnh inline và Form XObject đệ quy đều được phát qua trình diễn giải content-device dùng chung; một Form XObject bắt đầu với các màu đang có hiệu lực nơi nó được vẽ
- Canvas bao phủ phần hiển thị của trang, tức
/CropBoxđược cắt về/MediaBoxcủa nó (xemGetLoadedPageVisibleBox), xoay bởi/Rotate; góc dưới bên trái của box ánh xạ vào góc của canvas ngay cả khi box không bắt đầu từ gốc tọa độ - Văn bản được ghi dạng UTF-8 với một vị trí
xcho mỗi ký tự vàxml:space="preserve", nên khoảng trắng được giữ nguyên; glyph ligature tách thành toàn bộ các ký tự chúng đại diện, còn các mã không được XML 1.0 cho phép trở thành U+FFFD - Vị trí văn bản theo đầy đủ text matrix, gồm khoảng cách ký tự, khoảng cách từ, tỷ lệ ngang, rise và các điều chỉnh
TJ; render mode 0 đến 2 tô, nét hoặc làm cả hai, mode 3 không vẽ gì, và các glyph của văn bản hiển thị ở mode 4 đến 7 cũng trở thành đường clip từ kết thúc đối tượng văn bản (ET) đến kết thúc graphics state - Theo mặc định văn bản dùng font đã cài đặt: 14 họ font chuẩn và các bản TrueType tương ứng ánh xạ tới Helvetica hoặc Arial, Times New Roman và Courier New, các font khác được gọi theo họ của chúng, kể cả khi có khoảng trắng giữa các từ (
MyriadPro, Myriad Pro), kèm theo một họ generic lấy từ các flag font descriptor hoặc từ tên. Văn bản đậm và nghiêng nhậnfont-weightvàfont-styletừ phần kiểu trong tên font (Arial-BoldMT,Helvetica-Oblique,MinionPro-It) và từ weight, flags cùng góc nghiêng của font descriptor - Với
EmbedFontsđặt làTrue, văn bản dùng font mà chương trình TrueType hoặc CFF của nó được nhúng trong PDF sẽ được vẽ từ các outline glyph của chương trình đó. Mỗi glyph được định nghĩa một lần dạng<path>trong<defs>và được đặt bằng<use>ở mọi nơi nó xuất hiện, nên ký tự lặp không lặp lại outline; các mode fill và stroke, độ rộng nét và clip văn bản đi theo văn bản như với SVG text. Bản thân văn bản vẫn được giữ dưới dạng SVG text trong suốt đặt trên các outline, nên vẫn chọn, tìm kiếm và đọc được bằng công nghệ hỗ trợ - Font không được nhúng, chương trình font Type 1 (
/FontFile), văn bản CJK dọc, và các run có mã không có glyph trong chương trình nhúng vẫn là SVG text ngay cả khiEmbedFontsđược đặt. Các outline làm tệp lớn hơn, thường gấp hai đến ba lần với trang nhiều văn bản - Màu fill và stroke đặt trong bất kỳ color space nào (
DeviceGray,DeviceRGB,DeviceCMYK, ICCBased, calibrated, Lab, Indexed, Separation và DeviceN) được chuyển sang sRGB như trình kết xuất trang chuyển - Đường được tô bằng tiling pattern được tô bằng một SVG
<pattern>lặp ô pattern mỗiXStepvàYStep, clip theo/BBoxcủa nó; pattern không màu tô ô bằng màu được cung cấp cùng pattern. Đường được tô bằng shading pattern nhận gradient hoặc lưới của shading đó, clip theo đường. Ma trận pattern được áp dụng trong không gian của trang, hoặc của form dùng pattern. Stroke với pattern dùng màu của nó, đen với pattern có màu - Các shading Type 2 trục và Type 3 tâm dùng các gradient SVG với các chặng lấy mẫu có giới hạn; đầu mà
Extendkhông kéo dài thì không được tô, đúng như trong PDF - Các shading lưới Type 4 đến Type 7 dùng một data URI PNG trong suốt có giới hạn tối đa 16 triệu pixel
- Ảnh inline được giải mã qua cùng đường ảnh tài liệu đã tải và nhúng thành các data URI PNG
- Image mask, gồm cả loại inline, trở thành ảnh PNG theo màu fill hiện hành, trong suốt ở nơi không có gì được vẽ; stencil
/SMaskvà/Maskcho ảnh một kênh alpha, ở độ phân giải của mask khi nó mịn hơn ảnh. Array/Maskkiểu color-key làm các pixel khớp trở nên trong suốt với ảnh Flate, LZW và không-lọc - Đường clip
WvàW*trở thành các phần tử SVG<clipPath>kết thúc cùng trạng thái đồ họa mà chúng được đặt trong đó; Form XObject bị clip theo/BBoxcủa nó, còn shading trục và tâm thì clip theo /BBox của chúng - Văn bản dùng font Type 3 được vẽ bằng các thủ tục glyph của font, đặt qua
/FontMatrixcủa nó, thay vì dưới dạng SVG text; glyph bắt đầu bằngd1tô bằng màu fill hiện hành. Glyph Type 3 không thêm vào đường clip của render mode 4 đến 7 - Màu
Backgroundcủa một shading tô vùng của shading pattern trước shading, nên nó hiện ở mọi nơi shading không vẽ; như trong PDF, nó bị bỏ qua khi shading được vẽ bằngsh - Shading dựa trên hàm Type 1 được lấy mẫu trên
Domaincủa nó thành một data URI PNG tối đa 256 vào 256 mẫu, đặt quaMatrixcủa shading; viewer làm mượt nó khi phóng to thu nhỏ