How to use buildPaintImageXObject method in wpt

Best JavaScript code snippet using wpt

evaluator.js

Source:evaluator.js Github

copy

Full Screen

...149 // page.150 insertDependency([loadedName]);151 return loadedName;152 }153 function buildPaintImageXObject(image, inline) {154 var dict = image.dict;155 var w = dict.get('Width', 'W');156 var h = dict.get('Height', 'H');157 if (image instanceof JpegStream && image.isNative) {158 var objId = 'img_' + uniquePrefix + (++self.objIdCounter);159 handler.send('obj', [objId, 'JpegStream', image.getIR()]);160 // Add the dependency on the image object.161 insertDependency([objId]);162 // The normal fn.163 fn = 'paintJpegXObject';164 args = [objId, w, h];165 return;166 }167 // Needs to be rendered ourself.168 // Figure out if the image has an imageMask.169 var imageMask = dict.get('ImageMask', 'IM') || false;170 // If there is no imageMask, create the PDFImage and a lot171 // of image processing can be done here.172 if (!imageMask) {173 var imageObj = new PDFImage(xref, resources, image, inline);174 if (imageObj.imageMask) {175 throw 'Can\'t handle this in the web worker :/';176 }177 var imgData = {178 width: w,179 height: h,180 data: new Uint8Array(w * h * 4)181 };182 var pixels = imgData.data;183 imageObj.fillRgbaBuffer(pixels, imageObj.decode);184 fn = 'paintImageXObject';185 args = [imgData];186 return;187 }188 // This depends on a tmpCanvas beeing filled with the189 // current fillStyle, such that processing the pixel190 // data can't be done here. Instead of creating a191 // complete PDFImage, only read the information needed192 // for later.193 fn = 'paintImageMaskXObject';194 var width = dict.get('Width', 'W');195 var height = dict.get('Height', 'H');196 var bitStrideLength = (width + 7) >> 3;197 var imgArray = image.getBytes(bitStrideLength * height);198 var decode = dict.get('Decode', 'D');199 var inverseDecode = !!decode && decode[0] > 0;200 args = [imgArray, inverseDecode, width, height];201 }202 uniquePrefix = uniquePrefix || '';203 if (!queue.argsArray) {204 queue.argsArray = [];205 }206 if (!queue.fnArray) {207 queue.fnArray = [];208 }209 var fnArray = queue.fnArray, argsArray = queue.argsArray;210 var dependencyArray = dependency || [];211 resources = xref.fetchIfRef(resources) || new Dict();212 var xobjs = xref.fetchIfRef(resources.get('XObject')) || new Dict();213 var patterns = xref.fetchIfRef(resources.get('Pattern')) || new Dict();214 var parser = new Parser(new Lexer(stream), false);215 var res = resources;216 var args = [], obj;217 var getObjBt = function getObjBt() {218 parser = this.oldParser;219 return { name: 'BT' };220 };221 var TILING_PATTERN = 1, SHADING_PATTERN = 2;222 while (!isEOF(obj = parser.getObj())) {223 if (isCmd(obj)) {224 var cmd = obj.cmd;225 var fn = OP_MAP[cmd];226 if (!fn) {227 // invalid content command, trying to recover228 if (cmd.substr(-2) == 'BT') {229 fn = OP_MAP[cmd.substr(0, cmd.length - 2)];230 // feeding 'BT' on next interation231 parser = {232 getObj: getObjBt,233 oldParser: parser234 };235 }236 }237 assertWellFormed(fn, 'Unknown command "' + cmd + '"');238 // TODO figure out how to type-check vararg functions239 if ((cmd == 'SCN' || cmd == 'scn') && !args[args.length - 1].code) {240 // Use the IR version for setStroke/FillColorN.241 fn += '_IR';242 // compile tiling patterns243 var patternName = args[args.length - 1];244 // SCN/scn applies patterns along with normal colors245 if (isName(patternName)) {246 var pattern = xref.fetchIfRef(patterns.get(patternName.name));247 if (pattern) {248 var dict = isStream(pattern) ? pattern.dict : pattern;249 var typeNum = dict.get('PatternType');250 if (typeNum == TILING_PATTERN) {251 // Create an IR of the pattern code.252 var depIdx = dependencyArray.length;253 var queueObj = {};254 var codeIR = this.getIRQueue(pattern, dict.get('Resources'),255 queueObj, dependencyArray);256 // Add the dependencies that are required to execute the257 // codeIR.258 insertDependency(dependencyArray.slice(depIdx));259 args = TilingPattern.getIR(codeIR, dict, args);260 }261 else if (typeNum == SHADING_PATTERN) {262 var shading = xref.fetchIfRef(dict.get('Shading'));263 var matrix = dict.get('Matrix');264 var pattern = Pattern.parseShading(shading, matrix, xref, res,265 null /*ctx*/);266 args = pattern.getIR();267 } else {268 error('Unkown PatternType ' + typeNum);269 }270 }271 }272 } else if (cmd == 'Do' && !args[0].code) {273 // eagerly compile XForm objects274 var name = args[0].name;275 var xobj = xobjs.get(name);276 if (xobj) {277 xobj = xref.fetchIfRef(xobj);278 assertWellFormed(isStream(xobj), 'XObject should be a stream');279 var type = xobj.dict.get('Subtype');280 assertWellFormed(281 isName(type),282 'XObject should have a Name subtype'283 );284 if ('Form' == type.name) {285 var matrix = xobj.dict.get('Matrix');286 var bbox = xobj.dict.get('BBox');287 fnArray.push('paintFormXObjectBegin');288 argsArray.push([matrix, bbox]);289 // This adds the IRQueue of the xObj to the current queue.290 var depIdx = dependencyArray.length;291 this.getIRQueue(xobj, xobj.dict.get('Resources'), queue,292 dependencyArray);293 // Add the dependencies that are required to execute the294 // codeIR.295 insertDependency(dependencyArray.slice(depIdx));296 fn = 'paintFormXObjectEnd';297 args = [];298 } else if ('Image' == type.name) {299 buildPaintImageXObject(xobj, false);300 } else {301 error('Unhandled XObject subtype ' + type.name);302 }303 }304 } else if (cmd == 'Tf') { // eagerly collect all fonts305 args[0] = handleSetFont(args[0].name);306 } else if (cmd == 'EI') {307 buildPaintImageXObject(args[0], true);308 }309 switch (fn) {310 // Parse the ColorSpace data to a raw format.311 case 'setFillColorSpace':312 case 'setStrokeColorSpace':313 args = [ColorSpace.parseToIR(args[0], xref, resources)];314 break;315 case 'shadingFill':316 var shadingRes = xref.fetchIfRef(res.get('Shading'));317 if (!shadingRes)318 error('No shading resource found');319 var shading = xref.fetchIfRef(shadingRes.get(args[0].name));320 if (!shading)321 error('No shading object found');...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1var wptools = require('./wptools');2var fs = require('fs');3var path = require('path');4var pdfkit = require('pdfkit');5var doc = new pdfkit();6var text = 'This is my text';7doc.pipe(fs.createWriteStream('output.pdf'));8wptools.buildPaintImageXObject(doc, text, function (err, imageXObject) {9 if (err) {10 console.log(err);11 } else {12 var width = imageXObject.width;13 var height = imageXObject.height;14 var x = 0;15 var y = 0;16 doc.image(imageXObject, x, y, {width: width, height: height});17 doc.end();18 }19});

Full Screen

Using AI Code Generation

copy

Full Screen

1var win = Ti.UI.createWindow({2});3var view = Ti.UI.createView({4});5var view2 = Ti.UI.createView({6});7view.add(view2);8var label = Ti.UI.createLabel({9});10view2.add(label);11win.add(view);12win.open();13var img = Ti.UI.createImageView({14});15win.add(img);16var texture = Ti.UI.createTexture({17});18var paint = Ti.UI.createPaint();19paint.shader = Ti.UI.createShader({20 startPoint: { x:0, y:0 },21 endPoint: { x:1, y:1 }22});23var paint2 = Ti.UI.createPaint();24paint2.shader = Ti.UI.createShader({25 startPoint: { x:0, y:0 },26 endPoint: { x:1, y:1 }27});28var paint3 = Ti.UI.createPaint();29paint3.shader = Ti.UI.createShader({30 startPoint: { x:0, y:0 },31 endPoint: { x:1, y:1 }32});33var paint4 = Ti.UI.createPaint();34paint4.shader = Ti.UI.createShader({35 startPoint: { x:0, y:0 },36 endPoint: { x:1, y:1 }37});38var paint5 = Ti.UI.createPaint();39paint5.shader = Ti.UI.createShader({40 startPoint: { x:0, y:0 },41 endPoint: { x:1, y:1 }42});43var paint6 = Ti.UI.createPaint();44paint6.shader = Ti.UI.createShader({

Full Screen

Using AI Code Generation

copy

Full Screen

1var wptPdf = require('./wptPdf');2var fs = require('fs');3var pdf = new wptPdf();4var img = fs.readFileSync('./test-image.png');5var xobject = pdf.buildPaintImageXObject(img, 0, 0, 100, 100);6var page = pdf.addPage();7page.addContent(xobject);8pdf.writeToFile('test.pdf');9### wptPdf(options)10### .addPage()11### .writeToFile(path)12### .writeToStream(stream)13### .addContent(content)14### .addText(text, x, y, options)

Full Screen

Using AI Code Generation

copy

Full Screen

1var wptools = require('wptools');2var fs = require('fs');3var pdfDoc = new wptools.PDFDocument();4var page = pdfDoc.addPage();5var imageXObject = wptools.buildPaintImageXObject('test.png');6page.drawXObject(imageXObject, 0, 0, 612, 792);7fs.writeFileSync('test.pdf', pdfDoc.asBuffer());

Full Screen

Using AI Code Generation

copy

Full Screen

1var wptext = require('wptext');2var fs = require('fs');3var pdf = new wptext.PDFDocument();4pdf.pipe(fs.createWriteStream('test.pdf'));5pdf.addPage();6var img = fs.readFileSync('test.jpg');7pdf.buildPaintImageXObject(img, 0, 0, 100, 100);8pdf.end();

Full Screen

Using AI Code Generation

copy

Full Screen

1var wptext = require("wptext");2var path = require("path");3var fs = require("fs");4var pdf = require("pdfkit");5var doc = new pdf();6var text = "Hello World";7var font = path.join(__dirname, "fonts", "times.ttf");8var fontSize = 30;9var x = 100;10var y = 50;11var encoding = "utf8";12var options = {13};14var xobject = wptext.buildPaintImageXObject(text, options);15doc.pipe(fs.createWriteStream("output.pdf"));16doc.image(xobject, x, y, {17});18doc.end();19### buildPaintImageXObject(text, options)

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run wpt automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful