PDFium Component Docs

TPdfMatrix klasse

Unit: FPdfMatrix
Wijzigbare OO-wrapper rond de FS_MATRIX van PDFium voor het samenstellen van transformaties in PDF-gebruikersruimte

Syntax

type TPdfMatrix = class ... end;

Related types

TypeDescription
TPdfPointArrayDynamische array van FS_POINTF-waarden voor bulkbewerkingen op punten
TPdfRectArrayDynamische array van FS_RECTF-waarden voor bulkbewerkingen op rechthoeken
TPdfMatrixFitModePasstrategie pmfStretch, pmfContain of pmfCover voor het afbeelden van rechthoeken
TPdfMatrixDecompositionTranslatie, getekende schaal, rotatie met de klok mee, shear, determinant en spiegelingsdiagnostiek die TryDecompose teruggeeft in de velden TranslationX, TranslationY, ScaleX, ScaleY, RotationDegrees, ShearDegrees, Determinant en IsReflected

Methods

MemberDescription
CreateMaakt een identiteitsmatrix, een matrix van zes waarden of een defensieve kopie van een FS_MATRIX
NewTranslationMaakt een nieuwe translatiematrix
NewScaleMaakt een nieuwe niet-uniforme schaalmatrix
NewRotationMaakt een roterende matrix met de klok mee of tegen de klok in, in graden of radialen
NewSkewMaakt een matrix met aparte X- en Y-shear-hoeken
NewRectMappingMaakt een matrix die een bronrechthoek uitrekt, bevat of bedekt binnen een bestemmingsrechthoek
TryCreateRectMappingGeeft een FS_MATRIX-afbeelding terug en wijst invoer met grootte nul, niet-finite of overlopende invoer af zonder een object toe te wijzen
ResetZet de matrix terug op identiteit
SetElementsVervangt alle zes matrixelementen in één aanroep
AssignKopieert een andere TPdfMatrix of ruwe FS_MATRIX naar deze instantie
CloneMaakt een onafhankelijke objectkopie
DeterminantGeeft de determinant van de lineaire 2 bij 2-component terug
IsFiniteRapporteert of elk element een eindige Single-waarde is
IsIdentityTest identiteit met een door de aanroeper te kiezen tolerantie
IsInvertibleTest eindige en schaalbewuste inverteerbaarheid zonder een inverse te berekenen
IsTranslationOnlyTest of de lineaire component identiteit is
IsAxisAlignedTest of rechthoeken as-uitgelijnd blijven, inclusief kwartslag-indelingen binnen de tolerantie
NearlyEqualsVergelijkt met een TPdfMatrix of FS_MATRIX met een tolerantie
GetTranslationLeest de X- en Y-translatie-elementen samen
SetTranslationVervangt de X- en Y-translatie met behoud van de lineaire component
ClearTranslationZet beide translatie-elementen op nul
TryDecomposeExtraheert translatie, getekende schaal, rotatie met de klok mee, shear, determinant en spiegelingsstatus zolang de matrix niet singulier is
MultiplyPost-vermenigvuldigt met een andere TPdfMatrix of met expliciete a tot f-waarden
PreMultiplyPre-vermenigvuldigt met een andere TPdfMatrix of een expliciete matrix van zes waarden
PreTranslatePlaatst een translatie vóór de matrix in de lokale invoerruimte van de matrix
PreScalePlaatst aparte X- en Y-schaalfactoren vóór de matrix
PreRotatePlaatst een rotatie met de klok mee of tegen de klok in vóór de matrix
PreSkewPlaatst aparte X- en Y-shear-hoeken vóór de matrix
TranslateVoegt een translatie over deltaX en deltaY toe
ScaleVoegt aparte X- en Y-schaalfactoren toe
RotateVoegt een rotatie met de klok mee of tegen de klok in toe, in graden of radialen
HorizontalFlipVoegt een spiegeling over de X-as toe
VerticalFlipVoegt een spiegeling over de Y-as toe
CentralFlipVoegt beide as-spiegelingen toe, gelijk aan een rotatie van 180 graden zonder goniometrie
SkewVoegt aparte X- en Y-shear-hoeken toe
RotateAtVoegt een rotatie rond een vast blijvend draaipunt toe
ScaleAtVoegt een schaling rond een vast blijvend draaipunt toe
SkewAtVoegt een shear rond een vast blijvend draaipunt toe
HorizontalFlipAtVoegt een horizontale spiegeling rond een door de aanroeper gekozen X-coördinaat toe
VerticalFlipAtVoegt een verticale spiegeling rond een door de aanroeper gekozen Y-coördinaat toe
CentralFlipAtVoegt beide spiegelingen rond een door de aanroeper gekozen draaipunt toe
MapRectToRectVoegt een stretch-, contain- of cover-afbeelding tussen genormaliseerde rechthoeken toe
InvertVervangt de matrix door zijn inverse of veroorzaakt een EPdfMatrixError als hij singulier is
TryInvertVervangt de matrix door zijn inverse en geeft False terug zonder wijziging als hij singulier of bijna singulier is
TryGetInverseBerekent een inverse FS_MATRIX zonder deze instantie te wijzigen
InverseCopyMaakt een onafhankelijke inverse matrix of veroorzaakt een EPdfMatrixError als de matrix singulier is
TransformPointBeeldt een coördinaat af via de affiene transformatie met de PDF-rijvectorconventie
TransformVectorBeeldt een richting alleen via de lineaire component af, zodat translatie wordt genegeerd
TryInverseTransformPointBeeldt een punt af via de inverse zonder een matrix toe te wijzen en rapporteert een singuliere transformatie als False
InverseTransformPointBeeldt een punt af via de inverse of veroorzaakt een EPdfMatrixError als de matrix singulier is
TransformQuadBeeldt alle vier de punten van een FS_QUADPOINTSF-waarde af
TransformPointsBeeldt een puntenarray af met één resultaattoewijzing
TransformPointsInPlaceBeeldt een puntenarray af in opslag van de aanroeper zonder nog een array toe te wijzen
TryTransformBoundsStapelt getransformeerde puntbegrenzingen in één keer op en geeft False bij lege invoer
TransformBoundsStapelt getransformeerde puntbegrenzingen in één keer op of veroorzaakt een EPdfMatrixError bij lege invoer
TransformRectNormaliseert een rechthoek en beeldt die af via een exact snel pad voor as-uitgelijnde gevallen of via de nauwsluitende grenzen van de vier hoeken
TransformRectsBeeldt een rechthoekenarray af met één resultaattoewijzing
TransformRectsInPlaceBeeldt een rechthoekenarray af in opslag van de aanroeper zonder nog een array toe te wijzen

Properties

PropertyTypeDescription
aSingleAlleen-lezen eerste matrixelement
bSingleAlleen-lezen tweede matrixelement
cSingleAlleen-lezen derde matrixelement
dSingleAlleen-lezen vierde matrixelement
eSingleAlleen-lezen translatie-element X
fSingleAlleen-lezen translatie-element Y
HandleFS_MATRIXRuwe matrixwaarde voor PDFium-API's die FS_MATRIX of PFS_MATRIX accepteren

Description

TPdfMatrix gebruikt de affiene PDF-indeling a b c d e f en vermenigvuldigt elke operatie achteraan, zodat aanroepen in dezelfde volgorde lezen als de transformaties die op punten worden toegepast

PreMultiply en de Pre*-helpers voegen operaties vóór de huidige transformatie toe, terwijl de draaipunthelpers sequenties van translatie-operatie-translatie toevoegen die het gekozen draaipunt op zijn plaats houden

pmfContain behoudt de volledige bronrechthoek met gecentreerde ongebruikte ruimte en pmfCover vult de bestemming met gecentreerde overloop, terwijl pmfStretch onafhankelijke X- en Y-schaling toestaat

De bulkmethoden voor punten en rechthoeken wijzen één uitvoerarray toe, hun in-place-varianten wijzen niets toe, en TryTransformBounds scant getransformeerde punten zonder een tussenliggende array te bouwen

Gebruik Handle met API's zoals FPDFPageObj_SetMatrix, FPDFPageObj_Transform en FPDFText_SetMatrix

Example

var
  Matrix: TPdfMatrix;
begin
  Matrix := TPdfMatrix.Create;
  Matrix.ScaleAt(0.5, 0.5, 144, 144);
  Matrix.RotateAt(15, 144, 144);
  Matrix.Translate(72, 72);
  FPDFPageObj_SetMatrix(ObjectHandle, @Matrix.Handle);
end;

See Also

TPdf.CreateXObjectFromPage, TPdf.InsertFormObjectFromXObject