Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Canvas und seine Rätsel...

  Alt 10. Jan 2023, 00:22
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
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat