1<html>
2  <script src="../lib/core/CoreControls.js"></script>
3  <script src="../lib/core/pdf/PDFNet.js"></script>
4  <script>
5    (async function() {
6      CoreControls.setWorkerPath('../lib/core');
7      let doc = await PDFNet.PDFDoc.create();
8      const builder = await PDFNet.ElementBuilder.create();
9      const writer = await PDFNet.ElementWriter.create();
10
11      // Create a layer
12      const imageLayer = await PDFNet.OCG.create(doc, 'Image Layer');
13      const cfg = await PDFNet.OCGConfig.create(doc, true);
14      cfg.setName('Default');
15
16      // Add the new OCG to the list of layers that should appear in PDF viewer GUI.
17      let layerOrderArray = await doc.createIndirectArray();
18      cfg.setOrder(layerOrderArray);
19      layerOrderArray.pushBack(await image_layer.getSDFObj());
20
21      // Start a new page
22      const page = await doc.pageCreate();
23      writer.beginOnPage(page); // Begin writing to the page
24
25      // Add new content to the page and associate it with one of the layers.
26      const nullEncoderHints = new PDFNet.Obj('0');
27      const img = await PDFNet.Image.createFromURL(doc, imagename, nullEncoderHints);
28      const img_obj = await img.getSDFObj();
29      img_obj.put('OC', imageLayer);
30      writer.writePlacedElement(await builder.createImageScaled(img, 300, 600, 200, -150));
31      await writer.end();   // save changes to the current page
32      doc.pagePushBack(page);
33    })()
34  </script>
35</html>