|
یک فضای رنگ Separation در PDF 1.3+ برای گردشکارهای چاپ با رنگ spot اعلام میکند (ISO 32000-1 8.6.6.4). هر فراخوانی یک جوهر spot را ثبت میکند و یک نام فضای رنگ خودکار (Sep1، Sep2، ...) برمیگرداند که با THPDFPage.SetFillColorSpace / SetStrokeColorSpace + SetFillColor([tint]) / SetStrokeColor([tint]) قابل استفاده است
نحو Delphi:
function RegisterSeparation(const ColorantName: AnsiString; const AlternateCS: AnsiString; const TintC1: array of Extended): AnsiString;
نحو C++:
AnsiString RegisterSeparation(const AnsiString& ColorantName, const AnsiString& AlternateCS, const Extended* TintC1, int TintC1Count);
توضیح
فضای رنگ Separation به PDF اجازه میدهد یک جوهر spot (برای مثال یک رنگ Pantone) را با نام ارجاع دهد. دستگاههای چاپ منطبق از جوهر واقعی استفاده میکنند؛ viewerهای روی صفحه و previewerهای دیجیتال در tint = 1.0 به رنگ دادهشدهٔ AlternateCS برمیگردند و بهصورت خطی به سوی «بدون جوهر» در tint = 0 درونیابی میکنند
ColorantName - نام جوهر، برای نمونه 'Pantone 185 C'. فاصلهها در نام خروجی PDF طبق PDF 1.7 7.3.5 به #20 escape میشوند؛ باید از سایر نویسههای جداکنندهٔ PDF مانند پرانتزها، براکتها، اسلشها و درصدها پرهیز شود
AlternateCS - 'DeviceGray' (1 مؤلفه)، 'DeviceRGB' (3) یا 'DeviceCMYK' (4). هر مقدار دیگری exception ایجاد میکند
TintC1 - مؤلفههای alternate-CS در بیشینهٔ شدت جوهر (tint = 1.0). شمار مؤلفهها باید با AlternateCS منطبق باشد؛ مقادیر در [0..1] هستند. توجه کنید که برای DeviceGray قرارداد این است که 0 = مشکی و 1 = سفید است (برخلاف پیشفرض BlackIs1 برای تصویر)
Return value: یک نام خودکار (Sep1، Sep2، ...). وقتی StrictVersionLock روشن باشد و Version فعال از PDF 1.3 پایینتر باشد، یک رشتهٔ خالی برمیگرداند (در غیر این صورت نسخهٔ سند بهطور خودکار به 1.3 افزایش مییابد)
نمونه کد
// Register a Pantone-style spot ink backed by CMYK, paint four tint
// swatches showing the linear progression from no ink to full ink
var
SpotName: AnsiString;
T: Integer;
begin
HPDF.Version := pdf14;
HPDF.BeginDoc;
SpotName := HPDF.RegisterSeparation(
'Pantone 185 C', // ink name (spaces auto-escaped)
'DeviceCMYK', // alternate CS for screen / digital
[0.0, 0.95, 0.75, 0.0]); // CMYK at tint = 1.0
HPDF.CurrentPage.SetFillColorSpace(SpotName);
for T := 1 to 4 do
begin
HPDF.CurrentPage.SetFillColor([T * 0.25]);
HPDF.CurrentPage.Rectangle(60 + (T - 1) * 100, 100, 80, 60);
HPDF.CurrentPage.Fill;
end;
HPDF.EndDoc;
end;
همچنین ببینید
RegisterDeviceN, RegisterLabColorSpace, Version, پشتیبانی فیلترهای PDF
|