Danke an Alle...
Mit den Informationen habe ich es dann auch geschnallt.
Zitat:
Du muß die generierten AnsiString für jede Zeilen bis zum Ende von PDFMerge gespeichert haben
...war der Auslöser zum Probieren.
Jetzt geht es:
Zwischenspeicherung in TList<AnsiString>
Delphi-Quellcode:
function TSEAMGhostscript.PDFMerge(FileName: string; FileList: TStrings): Boolean;
var
ParametersTemp: TList<AnsiString>;
InitError: Integer;
procedure CreateMergeFiles;
var
I: Integer;
begin
for I := 0 to FileList.Count - 1 do
begin
ParametersTemp.Add(AnsiString(FileList[I])); // <--
FParameters[I + 6] := PAnsiChar(ParametersTemp[I]); // <--
end;
end;
begin
if FDLLHandle = 0 then
begin
if not LoadDLL(FDLLPath) then
begin
Result := False;
Exit;
end;
end;
try
ParametersTemp := TList<AnsiString>.Create; //<--
try
SetLength(FParameters, FileList.Count + 6);
FParameters[0] := '';
FParameters[1] := '-dNOPAUSE';
FParameters[2] := '-dBATCH';
FParameters[3] := '-dPDFSETTINGS=/ebook';
FParameters[4] := '-sDEVICE=pdfwrite';
FParameters[5] := PAnsiChar(AnsiString('-sOutputFile=' + FileName));
CreateMergeFiles;
InitError := FGsApiInitWithArgs(FGsInstance, Length(FParameters), FParameters);
Result := (InitError = 0);
if InitError <> 0 then
begin
if Assigned(FOnError) then
begin
FOnError(Self, Format('Fehlercode: %d', [InitError]));
end;
end;
finally
ParametersTemp.Free;
end;
finally
FGsApiExit(FGsInstance);
end;
if not Result then
begin
if Assigned(FOnError) then
begin
FOnError(Self, Format('Fehler beim Erstellen: %s', [FileName]));
end;
end;
end;