Нет, это невозможно для iTextSharp. Лучшим подходом будет использование Word Object, чтобы открыть документ, выполнить mailmerge, а затем сохранить эти документы в формате HTML. Теперь вы можете использовать iTextSharp для анализа html и создания PDF.
Мой коллега предложил мне это решение, которое работает, так что теперь я использую его.
const gulp = require('gulp');
const zip = require('gulp-zip');
var fs = require('fs');
var path = require('path');
// Functions
function getFolders(dir) {
return fs.readdirSync(dir)
.filter(function(file) {
return fs.statSync(path.join(dir, file)).isDirectory();
});
}
// Tasks
// Zip each folder in /lessons and place the archive in the /lessons root
gulp.task('zip-lessons', () => {
let folders = getFolders('lessons/');
console.log(folders)
var tasks = folders.map(function(folder) {
gulp.src(`lessons/${folder}/**`)
.pipe(zip(`${folder}.zip`))
.pipe(gulp.dest('lessons'))
})
});
Вы можете использовать модуль узла path
, чтобы получить имя подкаталога следующим образом:
const path = require('path');
const dirName = path.parse('./folderA/folderB').base // -> 'folderB'
И передать dirName в zip()
:
const { task, src, dest } = require('gulp');
const path = require('path');
const zip = require('gulp-zip');
const glob = require('glob');
const subDirs = glob.sync('./lessons/*');
task('zipLessions', (done) => {
subDirs.forEach(subDir => {
const dirName = path.parse(subDir).base;
src(subDir + '/*')
.pipe(zip(`${dirName}.zip`))
.pipe(dest('./lessons'))
})
done()
})