Hi there,
it has been a while since I had to create my last xpages project. A customer asked me yesterday after seeing our QRCode integration in our IMPRISIS Web Desktop, if it would be possible to create QRCodes in Xpages as well - and of course it is.
As this might be usefull for others as well, here's what we did:
First of all, we used the NPM Package 'QRCode' to create the QRCodes using JavaScript. The repo can be found here:
https://github.com/soldair/node-qrcode
We then created an XPage, that allows us to type some text into an input field, click a button and receive the result as QRCode. Here's the demo:

To build this,
we followed the description in the repo above on how to use the pre-compiled modules for qrcode.js from the node-module directory after installing the library locally using yarn or npm.
There's a folder called 'build' in the qrcode subdirectory in node-modules:

That's what we imported into our Notes App using Designer in the package explorer like so:

Then, we created an XPage:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view
xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.resources>
<xp:headTag tagName="script">
<xp:this.attributes>
<xp:parameter
name="type"
value="text/javascript" />
<xp:parameter
name="src"
value="qrcode/qrcode.js" />
</xp:this.attributes>
</xp:headTag>
</xp:this.resources>
<xp:div styleClass="container">
<xp:div styleClass="row">
<canvas id="canvas"></canvas>
<xp:inputText id="inputText1"
value="#{sessionScope.MyQrCode}"
defaultValue="https://www.sit.de">
</xp:inputText>
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
</xp:eventHandler></xp:button>
<xp:scriptBlock id="scriptBlock1" type="text/javascript">
<xp:this.value><![CDATA[var sampleText = document.getElementById("#{id:inputText1}").value;
QRCode.toCanvas(document.getElementById('canvas'), sampleText, function (error) {
if (error) console.error(error, sampleText)
console.log('success!', sampleText);
})]]></xp:this.value>
</xp:scriptBlock>
</xp:div>
</xp:div>
</xp:view>
The Xpage imports the JavaScript Library before importing dojo. Then, we created a <CANVAS> element to draw our QRCode. We added a input field and a button and bound the input field to a session scope variable. Finally, we added a script block that reads the value of the input field using CSJS and passes it on to the qrcode function to create the image. Et voila - QR Codes in XPages.
Hope this helps if someone needs it - happy coding !