THotPDF.BuildLoadedPageSVG Method
از صفحهٔ بارگذاریشدهٔ انتخابی PDF یک سند SVG مستقل میسازد
اعلان
function BuildLoadedPageSVG(PageIndex: Integer): AnsiString; overload;
function BuildLoadedPageSVG(PageIndex: Integer;
EmbedFonts: boolean): AnsiString; overload;
واحد
HPDFDoc
پارامترها
| نام | هدف |
|---|---|
PageIndex | اندیس صفحهٔ بارگذاریشده با مبنای صفر |
EmbedFonts | True گلیفهای فونتهای جاسازیشده را بهصورت outline در SVG مینویسد تا صفحه در جایی که آن فونتها نصب نیستند همانی را نشان دهد که هست. False و همچنین overload بدون این پارامتر، متن را به فونتهای نصبشدهٔ نمایشگر وا میگذارند |
مقدار بازگشت
سند SVG کامل را برمیگرداند؛ اگر صفحه قابل صادر کردن نباشد رشتهٔ خالی برمیگرداند
یادداشتهای استفاده
- مسیرها، متن کدگشاییشده، XObjectهای تصویر، تصاویر درونخطی و Form XObjectهای بازگشتی از طریق مفسر مشترک دستگاه محتوا صادر میشوند؛ Form XObject با رنگهای مؤثر در محل رسمشدنش شروع میشود
- canvas بخش قابلمشاهدهٔ صفحه را میپوشاند، یعنی
/CropBoxکه در/MediaBoxبریده شده (نگاه کنید بهGetLoadedPageVisibleBox)، با چرخش/Rotate؛ گوشهٔ پایین-چپ box به گوشهٔ canvas نگاشت میشود، حتی وقتی box از مبدأ آغاز نمیشود - متن به شکل UTF-8 و با یک موقعیت
xبه ازای هر نویسه وxml:space="preserve"نوشته میشود، پس فاصلهها حفظ میشوند؛ گلیفهای لیگاتور به همهٔ نویسههایی که نمایندگیشان میکنند باز میشوند و کدهایی که XML 1.0 مجاز نمیداند به U+FFFD تبدیل میشوند - جایگذاری متن از ماتریس متن کامل پیروی میکند، از جمله فاصلهگذاری کاراکتر و کلمه، horizontal scaling، rise و تنظیمهای
TJ؛ حالتهای رندر 0 تا 2 پر میکنند یا خط میکشند یا هر دو، حالت 3 چیزی نمیکشد، و گلیفهای متنی که در حالتهای 4 تا 7 نشان داده میشود از پایان شیء متن (ET) تا پایان graphics state به مسیر برش هم تبدیل میشوند - بهطور پیشفرض متن از فونتهای نصبشده استفاده میکند: ۱۴ خانوادهٔ استاندارد و همتاهای TrueType آنها به Helvetica یا Arial، Times New Roman و Courier New نگاشت میشوند و بقیهٔ فونتها با نام خانوادهشان نامیده میشوند، آن هم با فاصله میان کلمات نام (
MyriadPro, Myriad Pro)، و در ادامه یک خانوادهٔ generic که از flagهای font descriptor یا از نام گرفته میشود. متن bold و italic مقدارfont-weightوfont-styleرا از بخش سبکِ نام فونت (Arial-BoldMT،Helvetica-Oblique،MinionPro-It) و از وزن، flagها و زاویهٔ ایتالیک font descriptor میگیرند - با
EmbedFontsبرابرTrue، متنی که فونتش برنامهٔ TrueType یا CFF جاسازیشدهای در PDF دارد از outline گلیفهای همان برنامه کشیده میشود. هر گلیف یک بار بهصورت<path>در<defs>تعریف و هر جا که ظاهر شد با<use>جایگذاری میشود، پس تکرار کاراکترها outlineشان را تکرار نمیکند؛ حالتهای پر و خط، ضخامت خطها و برش متن مثل متن SVG از متن پیروی میکنند. خود متن هم بهصورت متن شفاف SVG روی outlineها نگه داشته میشود تا همچنان با فناوریهای کمکی قابل انتخاب، جستوجو و خواندن باشد - فونتهای جاسازینشده، برنامههای فونت Type 1 (
/FontFile)، نوشتار عمودی CJK و رانهایی که کدی دارند که در برنامهٔ جاسازیشده گلیفی برایش نیست، حتی باEmbedFontsتنظیمشده، متن SVG میمانند. outlineها حجم فایل را بزرگ میکنند، اغلب دو تا سه برابر برای صفحههای پرمتن - رنگهای پر و خط در هر color space ای (
DeviceGray،DeviceRGB،DeviceCMYK، ICCBased، calibrated، Lab، Indexed، Separation و DeviceN) همانطور که رندرکنندهٔ صفحه تبدیل میکند به sRGB تبدیل میشوند - مسیرهایی که با tiling pattern پر میشوند با یک
<pattern>در SVG پر میشوند که سلول pattern را در هرXStepوYStepتکرار میکند و در/BBoxآن بریده میشود؛ patternهای بیرنگ سلول را با رنگی که همراه pattern داده شده رنگ میکنند. مسیرهایی که با shading pattern پر میشوند گرادیان یا مشِ shading خودشان را میگیرند و در مسیر بریده میشوند. ماتریس pattern در فضای صفحه یا فضای فرمی که pattern را به کار برده اعمال میشود. خطهایی که با pattern کشیده میشوند از رنگ آن استفاده میکنند، برای patternهای رنگی سیاه - سایهزنیهای محوری Type 2 و شعاعی Type 3 از گرادیانهای SVG با توقفهای نمونهبرداریشدهٔ محدودشده استفاده میکنند؛ سویی که
Extendگسترشش نمیدهد مثل PDF رنگنمیشود - سایهزنیهای مشبک Type 4 تا Type 7 از یک data URI شفاف PNG محدودشده با حداکثر 16 میلیون پیکسل استفاده میکنند
- تصاویر درونخطی از همان مسیر تصویر سند بارگذاریشده کدگشایی و بهصورت data URI از نوع PNG جاسازی میشوند
- image maskها — از جمله درونخطیها — به تصویرهای PNG با رنگ پر جاری تبدیل میشوند که هر جا چیزی رنگ نشده شفافاند؛
/SMaskو استنسیلهای/Maskبه تصویر کانال آلفا میدهند، با وضوح ماسک وقتی از تصویر ریزتر باشد. آرایههای/Maskاز نوع color-key برای تصویرهای Flate، LZW و پالایشنشده پیکسلهای منطبق را شفاف میکنند - مسیرهای برش
WوW*به عنصرهای<clipPath>در SVG تبدیل میشوند که با وضعیت گرافیکیای که در آن تنظیم شدهاند به پایان میرسند؛ Form XObjectها به/BBoxخودشان و سایهزنیهای محوری و شعاعی به BBox خودشان برش میخورند - متن فونتهای Type 3 با رویههای گلیف خود فونت و از طریق
/FontMatrixآن رسم میشود، نه بهصورت متن SVG؛ گلیفهایی که باd1شروع میشوند با رنگ پر جاری رنگ میشوند. گلیفهای Type 3 به مسیر برش حالتهای رندر 4 تا 7 اضافه نمیشوند - رنگ
Backgroundسایهزنی، ناحیهٔ shading pattern را پیش از سایهزنی پر میکند، پس هر جا که سایهزنی رنگ نمیکند دیده میشود؛ مثل PDF، وقتی سایهزنی باshرسم شود نادیده گرفته میشود - سایهزنیهای تابعی Type 1 روی
Domainخودشان نمونهبرداری و به یک data URI از نوع PNG با حداکثر 256 در 256 نمونه تبدیل میشوند که باMatrixسایهزنی جایگذاری میشود؛ نمایشگر هنگام scale شدن آن را نرم میکند