Hi zusammen
Vielleicht mal erst die Prozedur, mit der ich die benötigten FPDFView erstelle :
Delphi-Quellcode:
procedure TAlexPdfFormular.PdfViewCreate2;
var i, j, X,Y, B : Integer;
begin
....
while i < j do
begin
FPDFView := TPDFView.Create(Self); // <== Seite erstellen
FPdfView.Parent := ScrBViewPdf;
FPdfView.Name := 'PdfView'+intToStr(i);
FPdfView.Pdf := Pdf1;
FPdfView.Active := true;
FPdfView.PageNumber := i+1;
if FPdfView.BitmapCount >0 then
ShowMessage('BitmapCount := ' + IntToStr(FPdfView.BitmapCount)); ;
// FPdfView.Bitmap.
// if FPdfView.BitmapCount >0 then
// begin
// ShowMessage('BitmapCount := ' + IntToStr(FPdfView.BitmapCount));
// for B := 0 to FPdfView.BitmapCount-1 do
// begin
//// FPdfView.Bitmap.Canvas.Draw(X,Y,Bitmap);
// FPdfView.AddPicture(Bitmap,[Bitmap.x,Bitmap.y]); //<=== ...ein weiterer, bislang erfolgloser versuch
// end;
end;
Hier folgen noch einige Zeilen, die aber nicht weiter wichtig sind.
FPdfView.BitmapCount gibt an, wieviele Bitmaps auf der Pdf-Seite enthalten sind - zumindest hab ich das bislang so begriffen.
Hier habe ich einem Pdf-Dokument einen Stempel verpasst, der von einer Demo angezeigt wird, nicht aber von meinem Programm. In dieser Demo hab ich bislang aber kein TPicture- oder TBitmap-Objekt entdecken können. Das versteh ich so, dass diese Bitmap (?) aus der Datei geladen wird, in der auch die Positionsinfos enthlten sind - der Stempel wird (zugegeben: gefühlt) immer an der gleichen Stelle angezeigt.
Eine Bitmap ist lokal deklariert. Die speichert aber die gerade aktuelle Seite und existiert auch nur, während die Prozedur aufgerufen wird:
Delphi-Quellcode:
procedure TViewerFormMain.SpeedButtonSaveBitmapClick(Sender: TObject);
var Bitmap: TBitmap;
begin
if SavePictureDialog.Execute then
begin
Bitmap := PdfView.RenderPage(0, 0, PdfView.Width, PdfView.Height, ro0, PdfView.Options);
try
Bitmap.SaveToFile(SavePictureDialog.FileName);
finally
Bitmap.Free;
end;
end;
end;
TPicture gibts da nicht.
Zitat:
und woher soll PDFView wissen auf welche Seite gemalt werden soll?
PDFView ist eine Seite.
Gruss
Delbor