fcl-pdf: fixed dump hexstring

This commit is contained in:
mattias 2023-06-21 12:47:27 +02:00
parent 3ef91538f9
commit 8f32a8190e
3 changed files with 18 additions and 20 deletions

View File

@ -4,7 +4,6 @@
<Version Value="12"/>
<General>
<Flags>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<MainUnitHasScaledStatement Value="False"/>

View File

@ -25,7 +25,9 @@ uses
type
{ TPDFDumpApplication }
TInfoSection = (isInfo,isCatalog,isTrailer,isObjects, isFonts, isPages,isPageContents,isPageText, isDictionaries);
TInfoSection = (isInfo, isCatalog, isTrailer, isObjects, isFonts,
isPages, isPageContents, isPageText, isDictionaries);
TInfoSections = Set of TInfoSection;
TPDFDumpApplication = class(TCustomApplication)
@ -40,17 +42,17 @@ type
Protected
procedure DisplayPageText(Doc: TPDFDocument; aIndex: Integer; aPage: TPDFPageObject);
procedure DoLog(sender: TObject; aKind: TPDFLogkind; const aMessage: string); reintroduce;
Procedure DoProgress(Sender : TObject;aKind : TPDFProgressKind; aCurrent,aCount : Integer);
Procedure DoProgress(Sender: TObject; aKind: TPDFProgressKind; aCurrent, aCount : Integer);
procedure DisplayCatalog(Doc: TPDFDocument);
procedure DisplayInfo(Doc: TPDFDocument);
procedure DisplayObjects(Doc: TPDFDocument);
procedure DisplayFonts(Doc: TPDFDocument);
procedure DisplayPageContents(Doc: TPDFDocument; aIndex: Integer; aPage: TPDFPageObject);
procedure DisplayPageContents(Doc: TPDFDocument; aIndex: Integer; aPage: TPDFPageObject);
procedure DisplayPages(Doc: TPDFDocument);
procedure DisplayTrailer(Doc: TPDFDocument);
Public
function ProcessOptions : Boolean;
procedure Usage(Msg : String);
procedure Usage(Msg: String);
procedure DumpFile(FN: String);
procedure DoRun; override;
end;
@ -316,13 +318,13 @@ begin
UnicodeMap:=nil;
end
else If cmd is TPDFTextCommand then
begin
rawText:=TPDFTextCommand(Cmd).GetFullText(UnicodeMap);
// Writeln('GetCodePage : ',CodePageToCodePageName(StringCodePage(Rawtext)));
SetCodePage(RawText,CP_UTF8);
Writeln(RawText);
end;
end;
begin
rawText:=TPDFTextCommand(Cmd).GetFullText(UnicodeMap);
//Writeln('GetCodePage : ',CodePageToCodePageName(StringCodePage(Rawtext)));
SetCodePage(RawText,CP_UTF8);
Writeln(RawText);
end;
end;
end;
procedure TPDFDumpApplication.DisplayPages(Doc : TPDFDocument);

View File

@ -1434,15 +1434,12 @@ begin
Result:='';
if Length(Tokens)>=2 then
For I:=1 to Length(Tokens)-2 do
begin
if Tokens[I].TokenType=ptString then
Result:=Result+aUnicodeMap.InterPret(Tokens[I].TokenData)
else if Tokens[i].IsNumber then
begin
case Tokens[I].TokenType of
ptString,ptHexString:
Result:=Result+aUnicodeMap.InterPret(Tokens[I].TokenData);
ptNumber:
if Abs(Tokens[i].AsDouble)>PDFTextArraySpaceTreshold then
Result:=Result+' '
end
Result:=Result+' ';
else
Raise EConvertError.Create('Unexpected char');
end;