Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Can't generate QR code with Indesign Server

New Here ,
Jul 02, 2025 Jul 02, 2025

I use InDesign Server to generate previews and materials from my application. I have two scripts, first one to generate a preview (jpeg with watermark added) and material (pdf with pdfpreset). I use the same template file and the same datasource csv for each action. When I generate material QR codes are correctly generated, but for preview instead of QR codes I get gray boxes see attached file). How can I make it work?
I already contacted Robert at ID-Tasker, but I wanted to ask here since I have no working solution yet.
Indesign Server Version 20.0 x64 Windows Server 2022 Standard v. 21H2

generate preview code:

try {
const startTime = new Date();

var logs = [];
var errors = [];
var hasError = false;

var outputFolder = 'C:/OutputFiles/';
var templatePath = '__INDD__';
var datasourcePath = '__CSV__';
var outputName = '__OUT__';
var watermarkFilePath = 'C:/watermark/watermark.png';

var template = new File(templatePath);
var dataSource = new File(datasourcePath);
var outputFile = new File(outputFolder + outputName + '.jpg');
var watermarkFile = new File(watermarkFilePath);
var originalPNGPrefs = app.pngExportPreferences.properties;
var originalJPEGPrefs = app.jpegExportPreferences.properties;

// general settings
try {
app.textImportPreferences.characterSet = TextImportCharacterSet.UTF16;

with (app.jpegExportPreferences) {
exportResolution = 720.0;
jpegExportRange = ExportRangeOrAllPages.EXPORT_ALL;
jpegQuality = JPEGOptionsQuality.MAXIMUM;
jpegColorSpace = JpegColorSpaceEnum.RGB;
antiAlias = true;
exportingSpread = false;
simulateOverprint = true;
jpegRenderingStyle = JPEGOptionsFormat.BASELINE_ENCODING;
}
} catch (e) {
errors.push(e.message);
hasError = true;
}

logs.push('Paths set');
try {
var doc = app.open(template);
} catch (e) {
errors.push(e.message);
hasError = true;
}

// if no error - open data source
if (!hasError) {
logs.push('opened template');
try {
doc.dataMergeProperties.selectDataSource(dataSource);
} catch (e) {
errors.push(e.message);
hasError = true;
}
}

// if no error - export output
if (!hasError) {
logs.push('export output');
try {
doc.dataMergeOptions.createNewDocument = true;
doc.dataMergeOptions.removeBlankLines = true;
doc.dataMergeProperties.mergeRecords();

var mergedDoc = app.documents[0];

for (var s = 0; s < mergedDoc.stories.length; s++) {
var story = mergedDoc.stories[s];

for (var t = story.tables.length - 1; t >= 0; t--) {
var table = story.tables[t];

for (var r = table.rows.length - 1; r >= 0; r--) {
var row = table.rows[r];
var containsLetterOrDigit = false;
var containsImage = false;

for (var c = 0; c < row.cells.length; c++) {
var cell = row.cells[c];

if (/[a-zA-Z0-9]/.test(cell.contents)) {
containsLetterOrDigit = true;
break;
}

if (cell.allGraphics.length > 0) {
containsImage = true;
break;
}
}

if (!containsLetterOrDigit && !containsImage) {
row.remove();
}
}
}
}
logs.push(
'Rows without any letters, digits, or images removed successfully.',
);

var wmLayer = mergedDoc.layers.itemByName('Watermark');
if (!wmLayer.isValid) {
wmLayer = mergedDoc.layers.add({ name: 'Watermark' });
}
wmLayer.move(LocationOptions.AT_BEGINNING);

for (var i = 0; i < mergedDoc.pages.length; i++) {
var pg = mergedDoc.pages[i];

var wf = pg.rectangles.add({
geometricBounds: [
0,
0,
mergedDoc.documentPreferences.pageHeight,
mergedDoc.documentPreferences.pageWidth,
],
strokeWeight: 0,
itemLayer: wmLayer,
});

wf.place(watermarkFile);
wf.fit(FitOptions.fillProportionally);
wf.transparencySettings.blendingSettings.opacity = 20;
wf.bringToFront();
}
logs.push('watermark added to all pages successfully.');

mergedDoc.exportFile(ExportFormat.JPG, outputFile);
} catch (e) {
errors.push(e.message);
hasError = true;
}

try {
var countFile = new File(outputFolder + outputName + '_pages.txt');
countFile.open('w');
countFile.write(mergedDoc.pages.length);
countFile.close();
} catch (e) {
errors.push(e.message);
hasError = true;
}
}

// close file, log time and print message
mergedDoc.close(SaveOptions.NO);
logs.push('time: ' + (new Date() - startTime) / 1000 + 's');
} catch (e) {
$.writeln('Error: ' + e.message);
} finally {
app.pngExportPreferences.properties = originalPNGPrefs;
app.jpegExportPreferences.properties = originalJPEGPrefs;

if (hasError) {
var title = 'Error';
[title, errors[0]].join(' : ');
} else {
logs.join(' --- ');
}
}

Generate material code:
try {
const startTime = new Date();

var logs = [];
var errors = [];
var hasError = false;

var outputFolder = 'C:/OutputFiles/';
var templatePath = '__INDD__';
var datasourcePath = '__CSV__';
var outputName = '__OUT__';

var template = new File(templatePath);
var dataSource = new File(datasourcePath);
var pdfFile = new File(outputFolder + outputName + '.pdf');

// general settings
try {
var pdfPreset = app.pdfExportPresets.itemByName('PDFPreset');
if (!pdfPreset) {
var pdfPreset = app.pdfExportPresets.add({
name: 'PDFPreset',
bleedMarks: true,
cropMarks: true,
colorBars: true,
});
}
if (!pdfPreset.isValid) {
errors.push('pdf preset invalid');
hasError = true;
}

app.textImportPreferences.characterSet = TextImportCharacterSet.UTF16;
} catch (e) {
errors.push(e.message);
hasError = true;
}

logs.push('Paths set');
try {
var doc = app.open(template);
} catch (e) {
errors.push(e.message);
hasError = true;
}

// if no error - open data source
if (!hasError) {
logs.push('opened template');
try {
doc.dataMergeProperties.selectDataSource(dataSource);
} catch (e) {
errors.push(e.message);
hasError = true;
}
}

// if no error - export pdf
if (!hasError) {
logs.push('export pdf');
try {
doc.dataMergeProperties.exportFile(pdfFile, pdfPreset);
} catch (e) {
errors.push(e.message);
hasError = true;
}
}

// close file, log time and print message
doc.close(SaveOptions.NO);
if (hasError) {
var title = 'Error';
[title, errors[0]].join(' : ');
} else {
logs.push('time: ' + (new Date() - startTime) / 1000 + 's');
logs.join(' --- ');
}
} catch (e) {
$.writeln('Error: ' + e.message);
}




TOPICS
Bug , Scripting
82
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
no replies

Have something to add?

Join the conversation