PageSourceSearch

https://poderjudicialags.gob.mx/static/js/goUtilidades.js

js poderjudicialags.gob.mx collected 2026-10-02 23:52:02 UTC 4,291 bytes, 93 lines download raw bytes

1    
2
3    function generatePdf(action, diagram, options) {
4      if (!(diagram instanceof go.Diagram)) throw new Error("no Diagram provided when calling generatePdf");
5      if (!options) options = {};
6
7      var pageSize = options.pageSize || "LETTER";
8      pageSize = pageSize.toUpperCase();
9      if (pageSize !== "LETTER" && pageSize !== "A4") throw new Error("unknown page size: " + pageSize);
10      // LETTER: 612x792 pt == 816x1056 CSS units
11      // A4: 595.28x841.89 pt == 793.71x1122.52 CSS units
12      var pageWidth = (pageSize === "LETTER" ? 612 : 595.28) * 96 / 72; // convert from pt to CSS units
13      var pageHeight = (pageSize === "LETTER" ? 792 : 841.89) * 96 / 72;
14
15      var layout = options.layout || "portrait";
16      layout = layout.toLowerCase();
17      if (layout !== "portrait" && layout !== "landscape") throw new Error("unknown layout: " + layout);
18      if (layout === "landscape") {
19        var temp = pageWidth;
20        pageWidth = pageHeight;
21        pageHeight = temp;
22      }
23
24      var margin = options.margin !== undefined ? options.margin : 36; // pt: 0.5 inch margin on each side
25      var padding = options.padding !== undefined ? options.padding : diagram.padding; // CSS units
26
27      var imgWidth = options.imgWidth !== undefined ? options.imgWidth : (pageWidth - margin / 72 * 96 * 2); // CSS units
28      var imgHeight = options.imgHeight !== undefined ? options.imgHeight : (pageHeight - margin / 72 * 96 * 2); // CSS units
29      var imgResolutionFactor = options.imgResolutionFactor !== undefined ? options.imgResolutionFactor : 3;
30
31      var pageOptions = {
32        size: pageSize,
33        margin: margin, // pt
34        layout: layout
35      };
36
37      require(["blob-stream", "pdfkit"], function (blobStream, PDFDocument) {
38        var doc = new PDFDocument(pageOptions);
39        var stream = doc.pipe(blobStream());
40        var bnds = diagram.documentBounds;
41
42        // add some descriptive text
43        //doc.text(diagram.nodes.count + " nodes, " + diagram.links.count + " links  Diagram size: " + bnds.width.toFixed(2) + " x " + bnds.height.toFixed(2));
44
45        var db = diagram.documentBounds.copy().subtractMargin(diagram.padding).addMargin(padding);
46        var p = db.position;
47        // iterate over page areas of document bounds
48        for (var j = 0; j < db.height; j += imgHeight) {
49          for (var i = 0; i < db.width; i += imgWidth) {
50
51            // if any page has no Parts partially or fully in it, skip rendering that page
52            var r = new go.Rect(p.x + i, p.y + j, imgWidth, imgHeight);
53            if (diagram.findPartsIn(r, true, false).count === 0) continue;
54
55            if (i > 0 || j > 0) doc.addPage(pageOptions);
56
57            var makeOptions = {};
58            if (options.parts !== undefined) makeOptions.parts = options.parts;
59            if (options.background !== undefined) makeOptions.background = options.background;
60            if (options.showTemporary !== undefined) makeOptions.showTemporary = options.showTemporary;
61            if (options.showGrid !== undefined) makeOptions.showGrid = options.showGrid;
62            makeOptions.scale = imgResolutionFactor;
63            makeOptions.position = new go.Point(p.x + i, p.y + j);
64            makeOptions.size = new go.Size(imgWidth * imgResolutionFactor, imgHeight * imgResolutionFactor);
65            makeOptions.maxSize = new go.Size(Infinity, Infinity);
66
67            var imgdata = diagram.makeImageData(makeOptions);
68            doc.image(imgdata, {
69              scale: 1 / (imgResolutionFactor * 96 / 72)
70            });
71          }
72        }
73
74        doc.end();
75        stream.on('finish', function () {
76          action(stream.toBlob('application/pdf'));
77        });
78      });
79    };
80
81    function showPdf() {
82      generatePdf(function (blob) {
83        var datauri = window.URL.createObjectURL(blob);
84        var frame = document.getElementById("myFrame");
85        if (frame) {
86          frame.style.display = "block";
87          frame.src = datauri; // doesn't work in IE 11, but works everywhere else
88          setTimeout(function () {
89            window.URL.revokeObjectURL(datauri);
90          }, 1);
91        }
92      }, myDiagram, pdfOptions);
93    };

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.