THotPDF.BuildLoadedPageSVG Method
Изгражда самостоятелен SVG документ от избраната заредена PDF страница
Декларация
function BuildLoadedPageSVG(PageIndex: Integer): AnsiString; overload;
function BuildLoadedPageSVG(PageIndex: Integer;
EmbedFonts: boolean): AnsiString; overload;
Модул
HPDFDoc
Параметри
| Име | Предназначение |
|---|---|
PageIndex | Индекс, броен от нулата, на заредената страница |
EmbedFonts | True записва глифовете на вградените шрифтове в SVG като контури, така че страницата изглежда същото и там, където тези шрифтове не са инсталирани. False, както и overload-ът без този параметър, оставя текста на инсталираните шрифтове на визуализатора |
Върната стойност
Връща пълния SVG документ, или празен низ, когато страницата не може да бъде експортирана
Бележки за употреба
- Paths, декодираният текст, image XObjects, inline images и рекурсивните Form XObjects се извеждат чрез споделения content-device interpreter; Form XObject започва с цветите, действащи там, където се рисува
- Платното покрива видимата част на страницата, нейния
/CropBox, ограничен до нейния/MediaBox(вижGetLoadedPageVisibleBox), завъртян от/Rotate; долният ляв ъгъл на кутията съответства на ъгъла на платното, дори когато кутията не започва от началото на координатната система - Текстът се записва като UTF-8 с по една позиция
xна знак иxml:space="preserve", така че интервалите се запазват; ligature glyph-ите се разгръщат до всички знаци, които представят, а кодове, които XML 1.0 не позволява, стават U+FFFD - Позиционирането на текста следва пълната text матрица, включително разстояние между знаци и думи, хоризонтален мащаб, rise и корекциите на
TJ; render режими 0 до 2 запълват, щриховат или правят и двете, режим 3 не рисува нищо, а глифовете на текст, показван в режими 4 до 7, стават и clipping път от края на text обекта (ET) до края на графичното състояние - По подразбиране текстът използва инсталирани шрифтове: 14-те стандартни семейства и техните TrueType съответствия се съпоставят към Helvetica или Arial, Times New Roman и Courier New, а другите шрифтове се назовават по семейството си, включително с интервали между думите в името (
MyriadPro, Myriad Pro), последвано от generic семейство, взето от флаговете на font descriptor-а или от името. Bold и italic текст получаваfont-weightиfont-styleот стиловата част на името на шрифта (Arial-BoldMT,Helvetica-Oblique,MinionPro-It) и от weight, флаговете и italic ъгъла на font descriptor-а - С
EmbedFontsзададено наTrue, текст в шрифт, чиито TrueType или CFF програма е вградена в PDF, се рисува от глифовите контури на програмата. Всеки глиф се дефинира веднъж като<path>в<defs>и се поставя с<use>където и да се появи, така че повтарящите се знаци не повтарят контурите си; режимите за запълване и щрих, дебелините на линиите и clipping-ът на текста следват текста, както правят за SVG текст. Самият текст се запазва като прозрачен SVG текст върху контурите, така че все още може да бъде селектиран, търсен и прочетен от assistive технологии - Невградени шрифтове, Type 1 шрифтова програма (
/FontFile), вертикално CJK писане и последователности с код, за който няма глиф във вградената програма, остават SVG текст дори сEmbedFontsзададено. Контурите уголемяват файла, често два-три пъти за страници, богати на текст - Цветовете за запълване и щрих, зададени в произволно цветно пространство (
DeviceGray,DeviceRGB,DeviceCMYK, ICCBased, калибровани, Lab, Indexed, Separation и DeviceN), се конвертират към sRGB, както ги конвертира page renderer-ът - Пътища, запълнени с tiling pattern, се запълват със SVG
<pattern>, който повтаря клетката на pattern-а на всекиXStepиYStep, изрязан по неговия/BBox; неоцветените pattern-и рисуват клетката в цвета, подаден с pattern-а. Пътища, запълнени със shading pattern, получават градиента или mesh-а на неговия shading, изрязани по пътя. Матрицата на pattern-а се прилага в пространството на страницата или на формата, използващ pattern-а. Щрихи с pattern използват неговия цвят, черно за оцветените pattern-и - Axial shading от Type 2 и radial shading от Type 3 използват SVG градиенти с ограничен брой изследвани stops; край, който
Extendне удължава, остава неоцветен, както в PDF - Mesh shadings от Type 4 до Type 7 използват ограничен прозрачен PNG data URI с максимум 16 милиона пиксела
- Inline images се декодират чрез същия път за изображения на заредения документ и се вграждат като PNG data URIs
- Image маските, включително inline, стават PNG изображения в текущия цвят за запълване, прозрачни там, където не е рисувано нищо;
/SMaskи/Maskшаблони дават на изображението alpha канал, с резолюцията на маската, когато тя е по-фина от изображението. Color-key/Maskмасиви правят съвпадащите пиксели прозрачни за Flate, LZW и нефилтрирани изображения - Clipping пътищата
WиW*стават SVG<clipPath>елементи, изчерпващи се с графичното състояние, в което са зададени; Form XObjects се изрязват по техния/BBox, а axial и radial shadings — по техния - Текст в шрифтове Type 3 се рисува с глифовите процедури на шрифта, поставян чрез неговия
/FontMatrix, вместо като SVG текст; глифи, започващи сd1, рисуват в текущия цвят за запълване. Type 3 глифове не се добавят към clipping пътя на render режими 4 до 7 - Цветът
Backgroundна shading запълва областта на shading pattern преди shading-а, така че се вижда навсякъде, където shading-ът не рисува; както в PDF, се игнорира, когато shading-ът се рисува сsh - Type 1 shading-и, базирани на функции, се дискретизират върху
Domainв PNG data URI с до 256 на 256 извадки, поставян чрезMatrixна shading-а; визуализаторът го заглажда при мащабиране