Add back scale functionality

This commit is contained in:
Dolan Miu
2018-06-09 23:33:52 +01:00
parent 0f4c2e64f4
commit deccfd7cc9
2 changed files with 27 additions and 3 deletions

View File

@ -28,6 +28,8 @@ const defaultDrawingOptions: DrawingOptions = {
}; };
export class Drawing extends XmlComponent { export class Drawing extends XmlComponent {
private inline: Inline;
constructor(imageData: IMediaData, drawingOptions?: DrawingOptions) { constructor(imageData: IMediaData, drawingOptions?: DrawingOptions) {
super("w:drawing"); super("w:drawing");
@ -40,10 +42,16 @@ export class Drawing extends XmlComponent {
...drawingOptions, ...drawingOptions,
}; };
if (mergedOptions.position === PlacementPosition.INLINE) { if (mergedOptions.position === PlacementPosition.INLINE) {
this.root.push(new Inline(imageData.referenceId, imageData.dimensions)); this.inline = new Inline(imageData.referenceId, imageData.dimensions);
this.root.push(this.inline);
} else if (mergedOptions.position === PlacementPosition.FLOATING) { } else if (mergedOptions.position === PlacementPosition.FLOATING) {
this.root.push(new Anchor(imageData.referenceId, imageData.dimensions, mergedOptions)); this.root.push(new Anchor(imageData.referenceId, imageData.dimensions, mergedOptions));
} }
} }
public scale(factorX: number, factorY: number): void {
this.inline.scale(factorX, factorY);
}
} }

View File

@ -1,9 +1,11 @@
import { Drawing } from "../../drawing"; import { Drawing } from "../../drawing";
import { DrawingOptions } from "../../drawing/drawing";
import { IMediaData } from "../../media/data"; import { IMediaData } from "../../media/data";
import { Run } from "../run"; import { Run } from "../run";
import { DrawingOptions } from "../../drawing/drawing";
export class PictureRun extends Run { export class PictureRun extends Run {
private drawing: Drawing;
constructor(imageData: IMediaData, drawingOptions?: DrawingOptions) { constructor(imageData: IMediaData, drawingOptions?: DrawingOptions) {
super(); super();
@ -11,6 +13,20 @@ export class PictureRun extends Run {
throw new Error("imageData cannot be undefined"); throw new Error("imageData cannot be undefined");
} }
this.root.push(new Drawing(imageData, drawingOptions)); this.drawing = new Drawing(imageData, drawingOptions);
this.root.push(this.drawing);
}
public scale(factorX: number, factorY?: number): void {
if (!factorX) {
factorX = 1;
}
if (!factorY) {
factorY = factorX;
}
this.drawing.scale(factorX, factorY);
} }
} }