I slightly modified your printing example, which gives an error when trying to set the print title with non-standard characters.
https://smartclient.com/smartclient-...?id=printingFS
When printing with this example, the browser returns the following error
ISC_Core.js?isc_vers…_2024-12-02.js:2319Uncaught URIError: URI malformed at decodeURIComponent (<anonymous>) at new <anonymous> (ISC_Core.js?isc_vers…4-12-02.js:2319:422) at Object.getParams (ISC_Core.js?isc_vers…4-12-02.js:2319:530) atprintFrame.html?id=i…=%E4%F6%FC%DF:40:39
https://smartclient.com/smartclient-...?id=printingFS
Code:
isc.SectionStack.create({
autoDraw: false,
ID: "printStack",
visibilityMode: "multiple",
width: 300, height: 450,
border: "1px solid blue",
sections: [
{title: "Countries", expanded: true, items: [
isc.ListGrid.create({
autoDraw: false,
ID: "printGrid",
height: 150,
dataSource: worldDS,
recordClick: "printViewer.setData(record)",
fields: [
{name:"countryCode", title:"Code", width:50},
{name:"countryName", title:"Country"},
{name:"capital", title:"Capital"},
{name:"continent", title:"Continent"}
]
})
]},
{title: "Country Details", expanded: true, items: [
isc.VStack.create({
overflow: "auto",
width: "100%",
members: [
isc.DetailViewer.create({
autoDraw: false,
ID: "printViewer",
dataSource: worldDS,
width: "100%",
margin: "25",
emptyMessage: "Select a country to view its details"
})
]
})
]}
]
});
isc.HLayout.create({
autoDraw: false,
membersMargin: 5,
ID: "printButtonLayout", members: [
isc.IButton.create({
autoDraw: false,
title: "Export",
click : function () {
// this sample exports to the Enterprise skin, and that skin defaults to
// alternate row styling but not alternate field styling - remember the
// alternate styling settings (from the current skin) and update them to
// those required for Enterprise, via a call to setProperties().
var oldAlternateRecordStyles = printGrid.alternateRecordStyles;
var oldAlternateFieldStyles = printGrid.alternateFieldStyles;
printGrid.setProperties({
alternateRecordStyles: true,
alternateFieldStyles: false
});
var settings = {
skinName: "Enterprise",
exportFilename: "export" // without .pdf
};
isc.RPCManager.exportContent(printContainer, settings);
// reinstate the alternate styling settings from the current skin, on a short delay
printGrid.delayCall("setProperties", [{
alternateRecordStyles: oldAlternateRecordStyles,
alternateFieldStyles: oldAlternateFieldStyles
}], 300);
}
}),
isc.IButton.create({
autoDraw: false,
title: "Print Preview",
// ----------- my code
click: function() {
let canvas = isc.PrintCanvas.create({
title: "äöüß",
printInstance: printStack,
visibility: "hidden"
});
canvas.setHTML(printViewer.getPrintHTML(), function (printPreview) {
printPreview.print();
});
//----------------------
}
})
]
});
isc.VLayout.create({
membersMargin: 10,
ID: "printContainer",
members: [ printStack, printButtonLayout ]
});
// The filter is just to limit the number of records in the ListGrid - we don't want to print
// them all!
printGrid.filterData({countryName: "land"},
function () {
printGrid.selectRecord(0);
printViewer.setData(printGrid.getSelectedRecord(0));
}
);
ISC_Core.js?isc_vers…_2024-12-02.js:2319Uncaught URIError: URI malformed at decodeURIComponent (<anonymous>) at new <anonymous> (ISC_Core.js?isc_vers…4-12-02.js:2319:422) at Object.getParams (ISC_Core.js?isc_vers…4-12-02.js:2319:530) atprintFrame.html?id=i…=%E4%F6%FC%DF:40:39