ЧиÑаÑел Ñ Ð»Ð¾Ñо зÑение не може да ÑазлиÑи ÑеÑен ÑекÑÑ Ð½Ð° бÑла ÑÑÑаниÑа пÑи ÑÑандаÑÑÐ½Ð¸Ñ ÐºÐ¾Ð½ÑÑаÑÑ, заÑова изиÑква ÑÑмен Ñежим. ÐеÑноÑо ÑеÑение е да Ñе инвеÑÑиÑа вÑеки пикÑел Ð¾Ñ ÑендиÑанаÑа ÑÑÑаниÑа. То Ñе ÑазÑабоÑва за ÑедмиÑа, но Ñе пÑÐ¾Ð²Ð°Ð»Ñ Ð½Ð° ÑледваÑÐ¸Ñ Ð´ÐµÐ½: ÑканиÑаниÑе Ñнимки запоÑÐ²Ð°Ñ Ð´Ð° Ð¸Ð·Ð³Ð»ÐµÐ¶Ð´Ð°Ñ ÐºÐ°Ñо ÑоÑогÑаÑÑки негаÑиви, жÑлÑиÑе маÑкеÑи на ÑиÑаÑÐµÐ»Ñ Ñе пÑевÑÑÑÐ°Ñ Ð² неÑеÑливо ÑинÑо пеÑно и нÑкой пиÑа заÑо ÑазпеÑаÑкаÑа е излÑзла изÑÑло ÑеÑна. ФÑнкÑиÑÑа наиÑÑина Ñи ÑÑÑÑва да бÑде изгÑадена и е изклÑÑиÑелно леÑна за половинÑаÑо изпÑлнение, а ÑазликаÑа Ð¼ÐµÐ¶Ð´Ñ Ð´Ð²Ð°Ñа ÑезÑлÑаÑа Ñе кÑие в една идеÑ: вÑÑко ÑеÑение за ÑвеÑа ÑÑÑбва да Ñе взема в конкÑеÑна ÑоÑка Ð¾Ñ Ð¿ÑоÑеÑа на ÑендиÑане, а инвеÑÑиÑÑа е гÑеÑниÑÑ Ð¸Ð½ÑÑÑÑменÑ, пÑиложен в гÑеÑÐ½Ð¸Ñ ÐµÑап. ÐодÑÑ ÑÑк използва PDFium Component â?визÑализаÑоÑÑÑ Ð½Ð° базаÑа на PDFium за Delphi, C++Builder и Lazarus, ÑийÑо API за ÑендиÑане излага Ñези еÑапи пооÑделно.
ФилÑÑиÑе Ñа ÑÑÑÑоÑние на пÑедÑÑавÑне, а не ÑÑÑÑоÑние на докÑменÑа
Ðдно пÑавило пÑедоÑвÑаÑÑва най-непÑиÑÑниÑе бÑгове ÑÑк: ÑежимÑÑ Ð½Ð° ÑеÑене пÑÐ¾Ð¼ÐµÐ½Ñ Ð½Ð°Ñина, по койÑо ÑаÑÑеÑноÑо изобÑажение Ñе генеÑиÑа или обÑабоÑва допÑлниÑелно, и ниÑо дÑÑго. PDF байÑовеÑе оÑÑÐ°Ð²Ð°Ñ Ð½ÐµÐ¿Ð¾ÐºÑÑнаÑи, вÑеки Ñежим е обÑаÑим ÑÑез повÑоÑно ÑендиÑане и опеÑаÑиÑÑа по запазване никога не запиÑва ÑилÑÑиÑан вÑнÑен вид обÑаÑно вÑв Ñайла. Това звÑÑи оÑевидно, докаÑо нÑкой ÑÑидиÑеÑки ÑеÑÐµÐ½Ð·ÐµÐ½Ñ Ð½Ðµ оÑпеÑаÑа Ð´Ð¾Ð³Ð¾Ð²Ð¾Ñ Ð¿Ñи акÑивен ÑилÑÑиÑан изглед и не изпÑаÑи инвеÑÑиÑанаÑа веÑÑиÑ. Ð Ñози Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²ÑпÑоÑÑÑ âдалÐ?пеÑаÑÑÑ Ð¸Ð·Ð¿Ð¾Ð»Ð·Ð²Ð° ÑобÑÑÐ²ÐµÐ½Ð¸Ñ Ð²ÑнÑен вид на докÑменÑа или Ñози на екÑанаâ?Ñе оказва изклÑÑиÑелно важен и изиÑква изÑиÑен оÑÐ³Ð¾Ð²Ð¾Ñ Ð²Ñв ваÑиÑе ÑпеÑиÑикаÑии, а не ÑлÑÑайно поведение на кодоваÑа ниÑка. ÐÑÑжÑе наÑÑÑойкиÑе на ÑилÑÑÑа в ÑÑÑÑоÑниеÑо на визÑализаÑоÑа, пÑилагайÑе ги пÑи ÑендиÑане и изиÑквайÑе Ð¾Ñ Ð²Ñеки екÑпоÑÑен пÑÑ Ð´Ð° деклаÑиÑа кой вÑнÑен вид използва.
Това пÑавило Ñе оÑплаÑа многокÑаÑно. ÐбÑаÑимоÑÑÑа Ñе полÑÑава безплаÑно, ÑÑй каÑо пÑевклÑÑванеÑо на ÑежимиÑе ÑендиÑа оÑново Ð¾Ñ Ð½ÐµÐ¿ÑÐ¾Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð·ÑоÑник â?нÑма ÑпиÑÑк Ñ Ð¾Ñмени (undo stack) за поддÑÑжане и нÑма как поÑедиÑа Ð¾Ñ Ð¿Ñомени в ÑежимиÑе да влоÑи каÑеÑÑвоÑо на ÑÑÑаниÑаÑа. СÑенаÑииÑе Ñ Ð½Ñколко пÑозоÑеÑа оÑÑÐ°Ð²Ð°Ñ ÑÑглаÑÑвани по ÑÑÑаÑа пÑиÑина. Ðва изгледа на един докÑÐ¼ÐµÐ½Ñ Ð¼Ð¾Ð³Ð°Ñ Ð´Ð° ÑабоÑÑÑ Ð² ÑазлиÑни Ñежими, ÑÑй каÑо вÑеки изглед пÑиÑежава ÑобÑÑвено ÑÑÑÑоÑние на пÑедÑÑавÑне, докаÑо обекÑÑÑ Ð½Ð° докÑменÑа оÑÑава Ñподелен.
ÐÑÑво ÑендиÑане, Ñлед Ñова ÑÑанÑÑоÑмиÑане
ÐоддÑÑжаниÑÑ Ð¼Ð¾Ð´ÐµÐ» е обÑабоÑка на ÑаÑÑеÑноÑо изобÑажение Ñлед ÑендиÑане: меÑодÑÑ RenderPage генеÑиÑа ÑаÑÑеÑа на ÑÑÑаниÑаÑа, Ñлед коеÑо ÑÑанÑÑоÑмиÑÐ°Ñ Ð°Ð»Ð³Ð¾ÑиÑÑм го пÑоменÑ. ÐомпоненÑÑÑ Ñе доÑÑÐ°Ð²Ñ Ñ ÑÑи ÑÑанÑÑоÑмаÑии каÑо диÑекÑни опеÑаÑии вÑÑÑ
Ñ ÑаÑÑеÑноÑо изобÑажение: InvertPdfBitmap, DuotonePdfBitmap и GrayscalePdfBitmap, коеÑо пÑави пÑевклÑÑванеÑо на ÑежимиÑе леÑна двÑеÑапна ÑÑнкÑиÑ:
function TViewerForm.RenderWithMode(W, H: Integer): TBitmap;
begin
Result := Pdf.RenderPage(0, 0, W, H, ro0, [reAnnotations]);
case FReadingMode of
rmInverted: InvertPdfBitmap(Result);
rmHighContrast: DuotonePdfBitmap(Result, clBlack, $0000C8FF); // dark bg, amber text
rmGrayscale: GrayscalePdfBitmap(Result);
end;
// rmNormal falls through: the document keeps its own colors
end;
ÐÑ Ñози дизайн ÑÐ»ÐµÐ´Ð²Ð°Ñ Ð´Ð²Ðµ неÑа. ÐÑÑво, ÑенаÑа на ÑÑанÑÑоÑмаÑиÑÑа е пÑопоÑÑионална на ÑазмеÑа на изобÑажениеÑо, Ñака Ñе ÑабоÑаÑа ÑÑÑбва да Ñе извÑÑÑва Ñам, кÑдеÑо Ñе кеÑиÑÐ°Ñ ÑезÑлÑаÑиÑе Ð¾Ñ ÑендиÑанеÑо â?ÑилÑÑиÑайÑе кеÑиÑаноÑо изобÑажение веднÑж, а не пÑи вÑÑко изÑеÑÑаване. ÐÑоÑо, ÑÑй каÑо ÑÑанÑÑоÑмаÑиÑÑа Ñе изпÑлнÑва вÑÑÑ
Ñ Ð³Ð¾ÑÐ¾Ð²Ð¸Ñ ÑаÑÑеÑ, ÑÑ Ð·Ð°ÑÑга по един и ÑÑÑ Ð½Ð°Ñин ÑекÑÑа, векÑоÑнаÑа гÑаÑика, изобÑажениÑÑа и вÑнÑÐ½Ð¸Ñ Ð²Ð¸Ð´ на аноÑаÑииÑе. Ðменно Ñази едноÑодноÑÑ Ðµ Ñова, коеÑо обикновенаÑа инвеÑÑÐ¸Ñ Ð¿Ñави гÑеÑно пÑи ÑнимкиÑе. Това е пÑиÑинаÑа дÑоÑоннаÑа (duotone) ÑÑанÑÑоÑмаÑÐ¸Ñ Ð´Ð° е по-добÑÑ Ð¸Ð·Ð±Ð¾Ñ Ð¿Ð¾ подÑазбиÑане за ÑекÑÑови докÑменÑи, ÑÑй каÑо ÑÑ ÐºÐ°ÑÑогÑаÑиÑа ÑÑкоÑÑÑа вÑÑÑ
Ñ Ð¸Ð·Ð±Ñана ÑвеÑова гама Ð¾Ñ ÑÑмно кÑм ÑвеÑло, вмеÑÑо да обÑÑÑа ÑвеÑовиÑе нÑанÑи; инвеÑÑиÑÑа оÑÑава доÑÑÑпна каÑо изÑиÑен Ð¸Ð·Ð±Ð¾Ñ Ð·Ð° ÑиÑаÑелиÑе, коиÑо Ñ Ð¿ÑедпоÑиÑаÑ. Ðо-оÑÑÑиÑе кÑаиÑа на ÑимволиÑе Ñа дÑÑг инÑÑÑÑменÑ. ÐпÑиÑÑа за ÑендиÑане reNoSmoothText изклÑÑва изглажданеÑо на ÑекÑÑа пÑи изÑеÑÑаване и Ñе ÑÑÑеÑава добÑе Ñ Ñежима на виÑок конÑÑаÑÑ Ð¿Ñи голÑмо ÑвелиÑение.
Ðва Ñежима за нива на ÑивоÑо, коиÑо Ñе ÑазлиÑаваÑ
ÐпÑииÑе за ÑендиÑане вклÑÑÐ²Ð°Ñ reGrayscale, коеÑо изглежда каÑо леÑен пÑÑ Ð·Ð° заобикалÑне на ÑÑÑпкаÑа за допÑлниÑелна обÑабоÑка. Това обаÑе не е ÑÑÑаÑа опеÑаÑиÑ:
// Engine-level: grayscale applied during rasterization
GrayA := Pdf.RenderPage(0, 0, W, H, ro0, [reGrayscale]);
// Post-process: render in color, convert the finished bitmap
GrayB := Pdf.RenderPage(0, 0, W, H);
GrayscalePdfBitmap(GrayB);
ÐпÑиÑÑа на ниво енджин Ñе пÑилага кÑм ÑаÑÑеÑа на ÑÑдÑÑжаниеÑо на изобÑажениÑÑа, но не доÑÑига до векÑоÑниÑе запÑÐ»Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ ÑвеÑовеÑе на ÑекÑÑа, Ñака Ñе ÑÑÑаниÑа Ñ ÑвеÑни Ð·Ð°Ð³Ð»Ð°Ð²Ð¸Ñ Ð¼Ð¾Ð¶Ðµ да Ñе вÑÑне Ñ ÑвеÑни ÑекÑÑове и Ñиви Ñнимки. ÐеÑодÑÑ GrayscalePdfBitmap вÑÑÑ
Ñ Ð³Ð¾ÑовоÑо ÑаÑÑеÑно изобÑажение пÑеобÑазÑва вÑиÑко без изклÑÑение. ÐпÑиÑÑа за ÑендиÑане вÑе пак има ÑвоеÑо мÑÑÑо, когаÑо иÑкаÑе изобÑажениÑÑа да бÑÐ´Ð°Ñ Ð¾Ð±ÐµÐ·ÑвеÑени, но да запазиÑе ÑвеÑа на ÑекÑÑа каÑо маÑкеÑ, коеÑо нÑкои ÑиÑаÑели Ñ Ð»Ð¾Ñо зÑение ÑпеÑиално пÑедпоÑиÑаÑ. Ðо ако изиÑкванеÑо е за изÑÑло Ñива ÑÑÑаниÑа, Ñо веÑÑиÑÑа Ñ Ð´Ð¾Ð¿ÑлниÑелна обÑабоÑка е Ñази, коÑÑо го изпÑлнÑва. ÐойÑо и пÑÑ Ð´Ð° избеÑеÑе, имайÑе пÑедвид и дваÑа ÑÑила на пÑеÑоваÑване на RenderPage. ÐаÑианÑÑÑ ÐºÐ°Ñо ÑÑнкÑÐ¸Ñ Ð²ÑÑÑа ÑаÑÑеÑно изобÑажение, коеÑо извикваÑиÑÑ Ð¿ÑиÑежава и ÑÑÑбва да оÑвободи, а Ñова ÑÑава важно веднага Ñом ÑилÑÑиÑе ÑÐ¼Ð½Ð¾Ð¶Ð°Ñ Ð±ÑÐ¾Ñ Ð½Ð° ÑендиÑаниÑе изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² памеÑÑа.
Фонове, маÑкиÑовки за ÑелекÑÐ¸Ñ Ð¸ клопкаÑа PageColor
Ðе вÑÑка коÑекÑÐ¸Ñ Ð·Ð° ÑдобÑÑво е ÑÑанÑÑоÑмаÑиÑ. ÐамÑнаÑа на Ð±ÐµÐ»Ð¸Ñ Ñон на ÑÑÑаниÑаÑа Ñ ÑопÑл Ñон ÑеÑÑо е доÑÑаÑÑÑна Ñама по Ñебе Ñи за ÑиÑаÑели, ÑÑвÑÑвиÑелни кÑм оÑблÑÑÑÑи, и за Ñова има ÑпеÑиално ÑвойÑÑво. СвойÑÑвоÑо обаÑе ноÑи пÑавило за Ð¾Ð±Ñ Ð²Ð°Ñ, коеÑо може да обÑÑка ÑазÑабоÑÑиÑиÑе:
// Affects the on-screen view only
PdfView.PageColor := $00D9EDF2; // warm paper tone behind page content
// RenderPage output ignores PageColor; pass the color explicitly
Bmp := Pdf.RenderPage(0, 0, W, H, ro0, [], $00D9EDF2);
СвойÑÑвоÑо PageColor пÑÐ¾Ð¼ÐµÐ½Ñ Ñова, коеÑо TPdfView показва, но ÑаÑÑеÑниÑе изобÑажениÑ, ÑÑздадени ÑÑез RenderPage, Ð·Ð°Ð¿Ð°Ð·Ð²Ð°Ñ Ð¿Ð¾Ð´ÑазбиÑаÑÐ¸Ñ Ñе бÑл ÑвÑÑ, оÑвен ако паÑамеÑÑÑÑÑ Color не Ñкаже дÑÑго. СимпÑомÑÑ Ðµ ÑÑен: екÑанÑÑ Ð¿Ð¾ÐºÐ°Ð·Ð²Ð° ÑониÑанаÑа ÑÑÑаниÑа, поÑÑебиÑелÑÑ Ñ ÐµÐºÑпоÑÑиÑа или оÑпеÑаÑва, а изÑ
одниÑÑ Ñайл Ñе вÑÑÑа кÑм бÑло. ÐÑнеÑеÑе Ñова кÑм ÑÑÑоÑо ÑеÑение за полиÑика за екÑпоÑÑиÑане Ð¾Ñ Ð¿ÑÑÐ²Ð¸Ñ Ñаздел.
ÐÑÑаÑелиÑе ÑвойÑÑва за ÑвÑÑ Ð¾Ð¿ÑеделÑÑ Ð½Ð°ÑлагваниÑе маÑкеÑи: HighlightColor за ÑезÑлÑаÑи Ð¾Ñ ÑÑÑÑене, SelectionColor за ÑелекÑÐ¸Ñ Ð½Ð° ÑекÑÑ Ð¾Ñ Ð¿Ð¾ÑÑебиÑелÑ, ReadingWordColor за кÑÑÑоÑа на ÑеÑениÑе дÑми. ÐÑеки Ð¾Ñ ÑÑÑ
ÑÑÑбва да бÑде пÑовеÑен повÑоÑно под вÑеки ÑилÑÑÑ, койÑо пÑедлагаÑе. ÐеÑ
либаÑен кÑÑÑÐ¾Ñ Ð·Ð° ÑеÑене, койÑо ÑабоÑи добÑе на бÑло, изÑезва Ñлед инвеÑÑиÑ; бледоÑÐ¸Ð½Ñ ÑелекÑÐ¸Ñ Ñе гÑби на виÑококонÑÑаÑÑен Ñон. ÐоддÑÑжайÑе палиÑÑи Ð¾Ñ Ð½Ð°ÑÐ»Ð°Ð³Ð²Ð°Ð½Ð¸Ñ Ð·Ð° вÑеки Ñежим, а не един глобален набоÑ, и ÑеÑÑвайÑе комбинаÑииÑе ÑеленаÑоÑено. ФилÑÑиÑе плÑÑ Ð¿ÑеобÑазÑванеÑо на ÑекÑÑ Ð² ÑÐµÑ Ðµ ноÑмална конÑигÑÑаÑÐ¸Ñ Ð·Ð° ÑиÑаÑелиÑе, коиÑо Ñази ÑÑнкÑÐ¸Ñ Ð¾Ð±ÑлÑжва, а не ÑаÑÑен ÑлÑÑай. СамиÑÑ Ð¼ÐµÑ
анизÑм за наÑлагване е Ñазгледан в ÑÑаÑиÑÑа за доÑÑÑпен ÑеÑÐµÑ Ð½Ð° PDF.
ЧиÑла, валидаÑÐ¸Ñ Ð¸ вÑпÑоÑÑÑ Ð·Ð° пеÑаÑа
СÑандаÑÑÑÑ WCAG 2.1 пÑевÑÑÑа Ñази ÑÑнкÑÐ¸Ñ Ð² неÑо, коеÑо можеÑе да измеÑиÑе. ÐÑиÑеÑиÑÑ Ð·Ð° ÑÑÐ¿ÐµÑ 1.4.3 изиÑква ÑÑоÑноÑение на конÑÑаÑÑ 4.5:1 за оÑÐ½Ð¾Ð²Ð½Ð¸Ñ ÑекÑÑ, а 1.4.6 го повиÑава до 7:1 за подобÑен конÑÑаÑÑ. ÐÑовеÑеÑе Ñежима Ñи на виÑок конÑÑаÑÑ ÑпÑÑмо Ñези ÑÑоÑноÑÐµÐ½Ð¸Ñ Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð°ÑÐ¾Ñ Ð½Ð° конÑÑаÑÑ Ð²ÑÑÑ Ñ Ñеално ÑендиÑано изобÑажение. ТекÑÑÑÑ Ð²ÑÑÑ Ñ Ð¸Ð·Ð¾Ð±ÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¸ в полеÑаÑа на ÑоÑмÑлÑÑи Ñа меÑÑаÑа, кÑдеÑо ÑÑоÑноÑениÑÑа ÑÐ¸Ñ Ð¾ не Ñе ÑпазваÑ, доÑи когаÑо оÑновниÑÑ ÑекÑÑ Ð¿Ñеминава пÑовеÑкаÑа.
ÐеÑаÑÑÑ Ð¸Ð·Ð¸Ñква ÑобÑÑвено ÑеÑение и ÑазÑмноÑо поведение по подÑазбиÑане е използванеÑо на оÑÐ¸Ð³Ð¸Ð½Ð°Ð»Ð½Ð¸Ñ Ð²ÑнÑен вид на докÑменÑа, каÑо Ñе пÑедложи âпеÑаÑ?на Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¸Ð·Ð³Ð»ÐµÐ´â?каÑо изÑиÑен Ð¸Ð·Ð±Ð¾Ñ Ð·Ð° поÑÑебиÑелÑ. ÐÑпеÑаÑанаÑа ÑÑÑаниÑа ÑлÑжи за доказаÑелÑÑво в много повеÑе ÑабоÑни пÑоÑеÑи, оÑколкоÑо ÑазÑабоÑÑиÑиÑе на визÑализаÑоÑи обикновено оÑакваÑ, а инвеÑÑиÑан пеÑÐ°Ñ Ð½Ð° Ð´Ð¾Ð³Ð¾Ð²Ð¾Ñ Ðµ повод за пÑоблем Ñ ÑÑидиÑеÑки нÑанÑи. ÐÑе една комбинаÑÐ¸Ñ Ðµ Ð¾Ñ Ð·Ð½Ð°Ñение за пÑоизводиÑелноÑÑÑа: ÑилÑÑиÑаноÑо ÑендиÑане ÑдвоÑва ÑабоÑаÑа Ñ ÑаÑÑеÑни изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñи вÑÑко пÑевклÑÑване на Ñежима, Ñака Ñе не пÑилагайÑе ÑÑанÑÑоÑмаÑÐ¸Ñ Ð¿Ñи вÑÑко ÑÑобÑение за изÑеÑÑаване (paint). ÐеÑиÑайÑе ÑилÑÑиÑаноÑо изобÑажение и изпÑлнÑвайÑе ÑÑанÑÑоÑмаÑиÑÑа оÑново Ñамо когаÑо ÑÑÑаниÑаÑа, маÑабÑÑ Ð¸Ð»Ð¸ ÑежимÑÑ Ð´ÐµÐ¹ÑÑвиÑелно Ñе пÑоменÑÑ. СÑÑаÑегиÑÑа за кеÑиÑане, коÑÑо пÑави Ñова икономиÑно, Ñе намиÑа в ÑÑаÑиÑÑа за ÐºÐµÑ Ð½Ð° ÑендиÑане и пÑоизводиÑелноÑÑ Ð¿Ñи маÑабиÑане.
Ðдно неÑо, коеÑо ÑÑÑбва да ÑеÑиÑе вÑв ваÑÐ¸Ñ Ð¿Ð¾ÑÑебиÑелÑки инÑеÑÑейÑ, а не в кода: кой Ñежим е пÑавилниÑÑ Ð¿Ð¾ подÑазбиÑане. ÐÑма единÑÑвен оÑговоÑ, Ñака Ñе пÑедложеÑе ÑÐµÐ»Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ Ð¸ оÑÑавеÑе ÑиÑаÑÐµÐ»Ñ Ð´Ð° избеÑе. ÐиÑокиÑÑ ÐºÐ¾Ð½ÑÑаÑÑ Ðµ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑ Ð·Ð° ÑеÑене на ÑекÑÑови докÑменÑи, инвеÑÑиÑÑа е за ÑиÑаÑели, коиÑо изÑиÑно иÑÐºÐ°Ñ ÑвеÑÑл ÑекÑÑ Ð½Ð° ÑÑмен Ñон, ÑиваÑа Ñкала намалÑва ÑвеÑÐ¾Ð²Ð¸Ñ ÑÑм, а ÑвеÑниÑÑ Ñон помага пÑи ÑÑвÑÑвиÑелноÑÑ ÐºÑм оÑблÑÑÑÑи. ÐапазеÑе избоÑа за вÑеки поÑÑебиÑел, вÑзÑÑановеÑе го пÑи ÑÑаÑÑиÑане и оÑигÑÑеÑе бÑÑз наÑин за вÑÑÑане кÑм ноÑмален изглед, ÑÑй каÑо ÑиÑаÑел, койÑо попадне в неÑеÑлив Ñежим, Ñе нÑждае Ð¾Ñ Ð±ÑÑз Ð¸Ð·Ñ Ð¾Ð´.
ÐпÑииÑе за ÑендиÑане, ÑÑанÑÑоÑмаÑииÑе на ÑаÑÑеÑни изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¸ ÑвеÑовиÑе ÑвойÑÑва на изгледа, използвани ÑÑк, Ñе доÑÑавÑÑ Ñ PDFium Component за Delphi, C++Builder и Lazarus/FPC, Ñ Ð¿Ñлен Ð¸Ð·Ñ Ð¾Ð´ÐµÐ½ код, Ñака Ñе имплеменÑаÑииÑе на ÑÑанÑÑоÑмаÑииÑе Ð¼Ð¾Ð³Ð°Ñ Ð´Ð° бÑÐ´Ð°Ñ Ð¾Ð´Ð¸ÑиÑани или ÑазÑиÑÑвани.