ÐÑеки видим Ñимвол в PDF докÑÐ¼ÐµÐ½Ñ Ð½Ð¾Ñи пÑепÑаÑка кÑм ÑÑиÑÑа, Ñ ÐºÐ¾Ð¹Ñо е изÑеÑÑан, и PDFium VCL ви позволÑва да пÑоÑледиÑе Ñази пÑепÑаÑка обÑаÑно до обекÑа на ÑÑиÑÑа и да пÑоÑеÑеÑе инÑоÑмаÑиÑÑа за него. ÐдиниÑаÑа за доÑÑÑп е ÑимволÑÑ, а не докÑменÑÑÑ: вие избиÑаÑе Ñимвол по Ð½ÐµÐ³Ð¾Ð²Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑ Ð² ÑекÑÑа на ÑÑÑаниÑаÑа и извлиÑаÑе имеÑо на ÑамилиÑÑа, оÑновноÑо име, ÑеглоÑо, ÑгÑла на кÑÑÑива и дали ÑÑоÑвеÑниÑÑ ÑÑиÑÑ Ð²ÑÑÑноÑÑ Ðµ вгÑаден вÑв Ñайла. ÐоÑледноÑо ÑвойÑÑво е Ñова, коеÑо вÑлнÑва най-много анализи, ÑÑй каÑо вгÑадениÑÑ ÑÑиÑÑ Ñе пÑенаÑÑ Ð·Ð°ÐµÐ´Ð½Ð¾ Ñ Ð´Ð¾ÐºÑменÑа, докаÑо невгÑадениÑÑ Ðµ пÑоÑÑо пÑедположение, Ñе на маÑинаÑа на поÑÑебиÑÐµÐ»Ñ ÑлÑÑайно е инÑÑалиÑан ÑÑÑиÑÑ ÑÑиÑÑ.
ÐомпоненÑÑÑ Ð¿ÑедоÑÑÐ°Ð²Ñ Ð´Ð¾ÑÑÑп до ÑÑÑ
ÑÑез ÑÑÑиÑе обекÑи TPdf и TPdfView, коиÑо използваÑе за визÑализаÑÐ¸Ñ Ð¸ извлиÑане на ÑекÑÑ. ÐÑма оÑделен Ð¾Ð±ÐµÐºÑ âÑаблиÑÐ?Ñ ÑÑиÑÑовеâ? койÑо да оÑваÑÑÑе. След каÑо ÑекÑÑÑÑ Ð½Ð° ÑÑÑаниÑаÑа е анализиÑан, ÑвойÑÑваÑа на ÑÑиÑÑа Ñе аÑоÑииÑÐ°Ñ Ñ Ð¸Ð½Ð´ÐµÐºÑа на Ñимвола и вие ги ÑеÑеÑе по един Ð³Ð»Ð¸Ñ Ð½Ð°Ð²ÐµÐ´Ð½Ñж. Този дизайн ÑÑоÑвеÑÑÑва на наÑина, по койÑо PDF ÑÑÑ
ÑанÑва инÑоÑмаÑиÑÑа пÑÑвонаÑално: една ÑÑÑаниÑа може да ÑÐ¼ÐµÐ½Ñ ÑÑиÑÑа деÑеÑки пÑÑи, и единÑÑвениÑÑ ÐºÐ¾ÑекÑен оÑÐ³Ð¾Ð²Ð¾Ñ Ð½Ð° вÑпÑоÑа âкакÑÐ?е ÑÑиÑÑÑÑ Ð½Ð° Ñози докÑменÑâ?е âзавиÑÐ?за кой Ñимвол ÑÑава вÑпÑоÑâ?
ЧеÑене на ÑÑиÑÑа зад опÑеделен Ñимвол
Ðай-малкаÑа полезна опеÑаÑÐ¸Ñ Ðµ да вземеÑе Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð° Ñимвол и да изведеÑе вÑиÑко, коеÑо PDFium може да ви каже за Ð½ÐµÐ³Ð¾Ð²Ð¸Ñ ÑÑиÑÑ. ÐÑÑко ÑвойÑÑво на ÑÑиÑÑа в TPdf и TPdfView е индекÑиÑано по позиÑиÑÑа на Ñимвола, Ñака Ñе индекÑÑÑ Ð¿Ñеминава пÑез вÑиÑки ÑÑÑ
. ÐÑвен Ñова ÑÑÑаниÑаÑа ÑÑÑбва да бÑде ÑекÑÑа, за да Ñе Ñазпознае индекÑÑÑ ÑпÑÑмо пÑÐ°Ð²Ð¸Ð»Ð½Ð¸Ñ ÑекÑÑ, коеÑо е важно, когаÑо пÑеминеÑе Ñлед пÑÑваÑа ÑÑÑаниÑа.
procedure DescribeFontAt(Pdf: TPdf; CharIndex: Integer);
var
Report: TStringList;
PtSize: Single;
begin
Report := TStringList.Create;
try
PtSize := Pdf.FontSize[CharIndex];
Report.Add('Character : ' + Pdf.Character[CharIndex]);
Report.Add('Family : ' + Pdf.FontFamilyName[CharIndex]);
Report.Add('Base name : ' + Pdf.FontBaseName[CharIndex]);
Report.Add('Weight : ' + IntToStr(Pdf.FontWeight[CharIndex]));
Report.Add('Italic : ' + IntToStr(Pdf.FontItalicAngle[CharIndex]) + ' deg');
Report.Add('Size : ' + FormatFloat('0.0', PtSize) + ' pt');
Report.Add('Ascent : ' + FormatFloat('0.0', Pdf.FontAscent[CharIndex, PtSize]));
Report.Add('Descent : ' + FormatFloat('0.0', Pdf.FontDescent[CharIndex, PtSize]));
Report.Add('Embedded : ' + BoolToStr(Pdf.FontIsEmbedded[CharIndex], True));
ShowMessage(Report.Text);
finally
Report.Free;
end;
end;
ÐÑкои Ð¾Ñ ÑигнаÑÑÑиÑе Ð¸Ð·Ð½ÐµÐ½Ð°Ð´Ð²Ð°Ñ ÑазÑабоÑÑиÑиÑе, идваÑи Ð¾Ñ Ð´ÑÑги библиоÑеки. FontAscent и FontDescent пÑÐ¸ÐµÐ¼Ð°Ñ Ð´Ð²Ð° аÑгÑменÑа â?индекÑа на Ñимвола и ÑазмеÑа в ÑоÑки (points), ÑÑй каÑо PDFium докладва Ñези меÑÑики в единиÑи Ð¾Ñ Ð¿ÑоÑÑÑанÑÑвоÑо на глиÑа, коиÑо ÑÑÐ°Ð²Ð°Ñ Ð¿Ð¸ÐºÑели едва Ñлед каÑо ги маÑабиÑаÑе ÑпоÑед ÑазмеÑа, Ñ ÐºÐ¾Ð¹Ñо е зададен ÑекÑÑÑÑ. ÐÑедайÑе ÑÑойноÑÑÑа, коÑÑо веÑе ÑÑе пÑоÑели Ð¾Ñ FontSize[CharIndex], и Ñе полÑÑиÑе ascent и descent в ÑÑÑиÑе ÑоÑки, каквиÑо Ñе Ð¸Ð·Ð¿Ð¾Ð»Ð·Ð²Ð°Ñ Ð·Ð° оÑÑаналаÑа ÑаÑÑ Ð¾Ñ Ð¾ÑоÑмлениеÑо. Descent Ñе вÑÑÑа каÑо оÑÑиÑаÑелна ÑÑойноÑÑ, ÑÑй каÑо Ñе измеÑва под базоваÑа линиÑ. ÐмеÑо на ÑамилиÑÑа (family name) и оÑновноÑо име (base name) Ñа ÑмиÑлено Ñазделени низове: оÑновноÑо име е ÑÑÑовиÑÑ Ð·Ð°Ð¿Ð¸Ñ /BaseFont Ð¾Ñ PDF Ñайла, койÑо ÑеÑÑо ÑÑдÑÑжа пÑеÑÐ¸ÐºÑ Ð·Ð° подмножеÑÑво каÑо ABCDEF+, докаÑо имеÑо на ÑамилиÑÑа е изÑиÑÑеноÑо име, до коеÑо ÑендеÑиÑаÑоÑо ÑдÑо го Ñвежда.
ÐÑевÑÑÑане на кликване в Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð° Ñимвол
Ð ÑеÑÐµÑ Ð·Ð° докÑменÑи ÑÑдко знаеÑе индекÑа пÑедваÑиÑелно. ÐоÑÑебиÑелÑÑ ÐºÐ»Ð¸ÐºÐ²Ð° вÑÑÑ
Ñ Ð³Ð»Ð¸Ñ Ð¸ вие ÑÑÑбва да пÑевÑÑнеÑе пикÑелнаÑа кооÑдинаÑа в Ñимвола под неÑ. CharacterIndexAtPos пÑави ÑоÑно Ñова, каÑо пÑиема позиÑиÑÑа на миÑкаÑа и ÑолеÑанÑ, и вÑÑÑа индекÑа на най-Ð±Ð»Ð¸Ð·ÐºÐ¸Ñ Ñимвол или оÑÑиÑаÑелна ÑÑойноÑÑ, когаÑо кликванеÑо е вÑÑÑ
Ñ Ð¿Ñазно пÑоÑÑÑанÑÑво или пÑазна ÑÑÑаниÑа.
procedure TfrmMain.PdfViewMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Index: Integer;
begin
if not PdfView.Active then
Exit;
// 4 px of slack in each direction so a near-miss still hits the glyph.
Index := PdfView.CharacterIndexAtPos(X, Y, 4.0, 4.0);
if Index < 0 then
Exit; // clicked between glyphs; leave the panel alone
PdfView.CurrentCharIndex := Index;
DescribeFontAt(PdfView.Pdf, Index);
end;
ТолеÑанÑÑÑ Ñи ÑÑÑÑва да бÑде наÑÑÑоен Ñино. Ðко е ÑвÑÑде малÑк, поÑÑебиÑелиÑе Ñе Ð¸Ð¼Ð°Ñ ÑÑеÑанеÑо, Ñе ÑÑÑбва да ÐºÐ»Ð¸ÐºÐ½Ð°Ñ ÑоÑно вÑÑÑ
Ñ Ð³ÑедаÑа на нÑÐºÐ¾Ñ Ð±Ñква; ако е ÑвÑÑде голÑм, кликванеÑо в полеÑо Ñе Ñе пÑилепи кÑм нÑкой далеÑен Ñимвол, койÑо нÑма ниÑо обÑо Ñ Ð½Ð°Ð¼ÐµÑениеÑо им. ТÑи до Ð¿ÐµÑ ÑизиÑеÑки пикÑела Ñа добÑа наÑална ÑоÑка за пÑеглед на екÑан. ÐÑÑнаÑиÑÑ Ð¸Ð½Ð´ÐµÐºÑ Ñе оÑнаÑÑ Ð´Ð¾ анализиÑÐ°Ð½Ð¸Ñ ÑекÑÑ Ð½Ð° ÑекÑÑаÑа ÑÑÑаниÑа â?ÑÑÑоÑо пÑоÑÑÑанÑÑвоÑо на индекÑиÑе, коеÑо оÑаква вÑÑко ÑвойÑÑво на ÑÑиÑÑа, Ñака Ñе можеÑе да го пÑедадеÑе диÑекÑно на гоÑнаÑа пÑоÑедÑÑа. ÐапазванеÑо Ð¼Ñ Ð² CurrentCharIndex не е задÑлжиÑелно, но е Ñдобно: изгледÑÑ Ð³Ð¾ ÑÑÑ
ÑанÑва каÑо ÑекÑÑ ÑокÑÑ Ð½Ð° глиÑа, коеÑо е полезно, ако дÑÑги ÑаÑÑи Ð¾Ñ Ð¸Ð½ÑеÑÑейÑа иÑÐºÐ°Ñ Ð´Ð° пÑоÑеÑÐ°Ñ ÑелекÑиÑÑа, без да Ñ Ð¸Ð·ÑиÑлÑÐ²Ð°Ñ Ð¾Ñново.
ÐгÑажданеÑо е ÑвойÑÑвоÑо, коеÑо е Ð¾Ñ Ð·Ð½Ð°Ñение
ÐÑи повеÑеÑо Ñеални задаÑи единÑÑвениÑÑ Ð²ÑпÑоÑ, на койÑо Ñи ÑÑÑÑва да Ñе оÑговоÑи, е дали вÑеки ÑÑиÑÑ Ðµ вгÑаден. ÐокÑменÑ, ÑииÑо ÑÑиÑÑове Ñе намиÑÐ°Ñ Ð²ÑÑÑе в него, Ñе изобÑазÑва еднакво на RIP ÑÑÑÑойÑÑвоÑо на пеÑаÑниÑаÑа, на лапÑопа на колегаÑа и на ÑÑÑвÑÑ Ð±ÐµÐ· никакÑв гÑаÑиÑен инÑеÑÑейÑ. ÐокÑменÑ, койÑо ÑазÑиÑа на невгÑаден Helvetica, ÑиÑкÑва Ñ Ð¿ÑедположениеÑо, Ñе вÑÑка Ð¾Ñ Ñези маÑини Ñазполага Ñ Ð¿Ð¾Ð´Ñ
одÑÑ ÑÑиÑÑ; когаÑо Ñози ÑиÑк Ñе ÑеализиÑа, ÑеÑеÑÑÑ Ð³Ð¾ Ð·Ð°Ð¼ÐµÐ½Ñ Ñ Ð½ÐµÑо подобно, меÑÑикиÑе Ñе пÑоменÑÑ Ð¸ внимаÑелно ÑоÑмаÑиÑаниÑÑ ÑоÑмÑлÑÑ Ñе ÑазмеÑÑва ÑоÑно Ñолкова, колкоÑо да Ñе Ñазвали. ÐбÑ
ожданеÑо на ÑекÑÑа на ÑÑÑаниÑаÑа и гÑÑпиÑанеÑо на ÑÑиÑÑовеÑе по ÑеÑ
Ð½Ð¸Ñ ÑÑаÑÑÑ Ð½Ð° вгÑаждане ви дава Ñози оÑÐ³Ð¾Ð²Ð¾Ñ Ð»ÐµÑно и икономиÑно.
procedure ReportNonEmbeddedFonts(Pdf: TPdf);
var
Embedded, External: TStringList;
I: Integer;
Name: string;
begin
Embedded := TStringList.Create;
External := TStringList.Create;
try
Embedded.Sorted := True;
Embedded.Duplicates := dupIgnore;
External.Sorted := True;
External.Duplicates := dupIgnore;
for I := 0 to Pdf.CharacterCount - 1 do
begin
Name := Pdf.FontBaseName[I];
if Name = '' then
Continue; // generated spaces and the like have no font
if Pdf.FontIsEmbedded[I] then
Embedded.Add(Name)
else
External.Add(Name);
end;
if External.Count > 0 then
ShowMessage(IntToStr(External.Count) +
' non-embedded font(s):' + sLineBreak + External.Text)
else
ShowMessage('All ' + IntToStr(Embedded.Count) +
' font(s) on this page are embedded.');
finally
Embedded.Free;
External.Free;
end;
end;
Ðве подÑобноÑÑи оÑигÑÑÑÐ²Ð°Ñ ÑоÑноÑÑÑа на Ñози пÑоÑеÑ. ÐÑÑво, CharacterCount е за конкÑеÑна ÑÑÑаниÑа, Ñака Ñе одиÑÑÑ Ð½Ð° ÑÐµÐ»Ð¸Ñ Ð´Ð¾ÐºÑÐ¼ÐµÐ½Ñ Ð¸Ð·Ð¸Ñква да задаваÑе вÑÑка ÑÑÑаниÑа в Pdf.PageNumber поÑледоваÑелно и да изпÑлнÑваÑе ÑикÑла оÑново, обединÑвайки ÑезÑлÑаÑиÑе. ÐÑоÑо, ÑекÑÑовиÑÑ Ñлой ÑÑдÑÑжа авÑомаÑиÑно генеÑиÑани Ñимволи, каÑо инÑеÑвалиÑе Ð¼ÐµÐ¶Ð´Ñ Ð´ÑмиÑе, и Ñе нÑÐ¼Ð°Ñ Ñеален Ð¾Ð±ÐµÐºÑ Ð½Ð° ÑÑиÑÑ Ð·Ð°Ð´ Ñебе Ñи; пÑовеÑкаÑа за пÑазно оÑновно име (base name) ги пÑопÑÑка, вмеÑÑо да запиÑва неÑÑÑеÑÑвÑваÑи обекÑи. ÐÑновноÑо име е пÑавилниÑÑ ÐºÐ»ÑÑ Ð·Ð° пÑемаÑ
ване на дÑбликаÑи ÑÑк, ÑÑй каÑо пÑеÑикÑÑÑ Ð½Ð° подмножеÑÑвоÑо (subset prefix), койÑо Ñо ÑÑдÑÑжа, ÑазгÑаниÑава две ÑазлиÑни подмножеÑÑва на една и ÑÑÑа ÑамилиÑ, коеÑо обикновено е инÑоÑмаÑиÑÑа, коÑÑо ви е необÑ
одима.
ÐзвлиÑане на вгÑÐ°Ð´ÐµÐ½Ð¸Ñ ÑÑиÑÑ
ÐогаÑо даден ÑÑиÑÑ Ðµ вгÑаден, можеÑе да пÑоÑеÑеÑе неговиÑе байÑове диÑекÑно. FontData вÑÑÑа необÑабоÑенаÑа пÑогÑама на ÑÑиÑÑа â?ÑÑÑиÑе TrueType или CFF данни, коиÑо PDF ÑайлÑÑ ÑÑдÑÑжа, коеÑо е доÑÑаÑÑÑно за запиÑване на ÑамоÑÑоÑÑелен Ñайл Ñ ÑÑиÑÑ Ð¸Ð»Ð¸ за иденÑиÑиÑиÑане на ÑÑиÑÑа ÑпÑÑмо извеÑÑна библиоÑека. Той вÑÑÑа пÑазен маÑив, когаÑо ÑÑиÑÑÑÑ Ð½Ðµ е вгÑаден, Ñака Ñе пÑовеÑкаÑа за вгÑаждане и пÑовеÑкаÑа за дÑлжина заедно заÑиÑÐ°Ð²Ð°Ñ Ð¾Ð¿ÐµÑаÑиÑÑа по запиÑване.
procedure SaveEmbeddedFont(Pdf: TPdf; CharIndex: Integer;
const OutputFile: string);
var
Data: TBytes;
Stream: TFileStream;
begin
if not Pdf.FontIsEmbedded[CharIndex] then
begin
ShowMessage('That glyph''s font is not embedded; nothing to extract.');
Exit;
end;
Data := Pdf.FontData[CharIndex];
if Length(Data) = 0 then
Exit;
Stream := TFileStream.Create(OutputFile, fmCreate);
try
Stream.WriteBuffer(Data[0], Length(Data));
finally
Stream.Free;
end;
ShowMessage('Wrote ' + IntToStr(Length(Data)) + ' bytes.');
end;
ÐайÑовеÑе пÑедÑÑавлÑÐ²Ð°Ñ Ð²Ð³ÑаденоÑо подмножеÑÑво (subset), а не оÑÐ¸Ð³Ð¸Ð½Ð°Ð»Ð½Ð¸Ñ ÑÑиÑÑ, Ñака Ñе Ñова, коеÑо полÑÑаваÑе обÑаÑно, обикновено покÑива Ñамо глиÑове, коиÑо докÑменÑÑÑ Ð´ÐµÐ¹ÑÑвиÑелно е използвал. Това е пеÑÑекÑно за анализи и пÑовеÑка, но не е подÑ
одÑÑо за повÑоÑна ÑпоÑÑеба; подмножеÑÑво на Times New Roman, ÑÑдÑÑжаÑо ÑÑидеÑÐµÑ Ð³Ð»Ð¸Ñа, не е ÑÑиÑÑ, койÑо можеÑе да инÑÑалиÑаÑе и да използваÑе за пиÑане. ТÑеÑиÑайÑе извлиÑанеÑо каÑо наÑин да инÑпекÑиÑаÑе доÑÑавеноÑо ÑÑдÑÑжание, а не каÑо инÑÑÑÑÐ¼ÐµÐ½Ñ Ð·Ð° вÑзÑÑановÑване на ÑÑиÑÑове. Ðко ви е необÑ
одимо ÑÑоÑвеÑноÑо оÑновно име за еÑÐ¸ÐºÐµÑ Ð½Ð° ÑезÑлÑаÑа, пÑоÑеÑеÑе FontBaseName[CharIndex] заедно Ñ Ð´Ð°Ð½Ð½Ð¸Ñе и пÑемаÑ
неÑе водеÑÐ¸Ñ Ñаг на подмножеÑÑвоÑо, ако иÑкаÑе ÑиÑÑаÑа ÑамилиÑ.
РазÑиÑане на ÑиÑлоÑо за Ñегло на ÑÑиÑÑа
FontWeight вÑÑÑа ÑиÑÑовоÑо Ñегло на ÑÑиÑÑа â?ÑÑÑаÑа Ñкала Ð¾Ñ 100 до 900, коÑÑо Ñе използва в CSS, кÑдеÑо 400 е ноÑмален (regular), а 700 е полÑÑÐµÑ (bold). PDFium ÑÑобÑава Ñова, коеÑо ÑамиÑÑ ÑÑиÑÑ Ð´ÐµÐºÐ»Ð°ÑиÑа, коеÑо невинаги е кÑÑгло ÑиÑло; даден ÑÑиÑÑ Ð¼Ð¾Ð¶Ðµ да обÑви 350 или 650, и вÑзпÑиеманеÑо на вÑÑка ÑÑойноÑÑ Ð½Ð°Ð´ 600 за âдоÑÑаÑÑÑнÐ?полÑÑеÑâ?ÑабоÑи по-добÑе Ð¾Ñ Ð¿ÑовеÑкаÑа за ÑоÑно 700. ЪгÑлÑÑ Ð½Ð° кÑÑÑива (italic angle) е допÑлниÑелен Ñигнал: ненÑлева ÑÑойноÑÑ (обикновено оÑÑиÑаÑелна) ознаÑава, Ñе ÑÑиÑÑÑÑ Ðµ наклонен (oblique) или иÑÑинÑки кÑÑÑив (italic), а нÑлаÑа ознаÑава изпÑавен ÑÑиÑÑ. Ðаедно Ñе ви позволÑÐ²Ð°Ñ Ð´Ð° ÑазлиÑиÑе полÑÑÐµÑ ÐºÑÑÑивен паÑаж Ð¾Ñ Ð¾Ð±Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½ без да ÑендиÑаÑе ниÑо, коеÑо е ÑоÑно видÑÑ Ð¿ÑовеÑка, необÑ
одим за пÑедпеÑаÑна подгоÑовка или за авÑомаÑизиÑан Ð¾Ð´Ð¸Ñ Ð·Ð° доÑÑÑпноÑÑ.
Ðикое Ð¾Ñ Ñези ÑеÑÐµÐ½Ð¸Ñ Ð½Ðµ изиÑква ÑендиÑано ÑаÑÑеÑно изобÑажение. Те Ð¸Ð´Ð²Ð°Ñ Ð¾Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð¸ÑÐ°Ð½Ð¸Ñ ÑекÑÑов Ñлой, Ñака Ñе оÑвоÑен докÑÐ¼ÐµÐ½Ñ Ð½Ð° пÑавилнаÑа ÑÑÑаниÑа е ÑÑлаÑа конÑигÑÑаÑиÑ, Ð¾Ñ ÐºÐ¾ÑÑо Ñе нÑждаеÑе, коеÑо пÑави инÑпекÑиÑÑа на ÑÑиÑÑове изклÑÑиÑелно икономиÑна за изпÑлнение вÑÑÑ Ñ ÑÑл аÑÑ Ð¸Ð². Ðко комбиниÑаÑе Ñова Ñ Ð¸Ð·Ð²Ð»Ð¸Ñане на ÑекÑÑ, ÑÑÑиÑе индекÑи на Ñимволи ÑÑÐ²Ð¿Ð°Ð´Ð°Ñ Ñ Ð¸Ð·Ð²Ð»ÐµÑÐµÐ½Ð¸Ñ ÑекÑÑ, Ñака Ñе ÑÑиÑÑÑÑ Ð½Ð° даден Ð³Ð»Ð¸Ñ Ð¸ неговаÑа Unicode ÑÑойноÑÑ Ñе полÑÑÐ°Ð²Ð°Ñ ÑÑез две ÑеÑÐµÐ½Ð¸Ñ ÑÑеÑÑ ÐµÐ´Ð¸Ð½ индекÑ. ÐÑидÑÑжаваÑаÑа ÑÑаÑÐ¸Ñ Ð·Ð° извлиÑане на ÑекÑÑ Ð¾Ñ PDF докÑменÑи Ñ PDFium VCL Ñазглежда Ñази ÑÑÑана на ÑекÑÑÐ¾Ð²Ð¸Ñ Ñлой по-подÑобно.
ÐоказаниÑе ÑÑк ÑвойÑÑва на ÑÑиÑÑове Ñа ÑаÑÑ Ð¾Ñ PDFium Delphi VCL Component.