Мое приложение использует RTF file
с полями слияния в качестве источника и создает PDF file
с ним, используя Aspose.Words
. Пользователи этого приложения передают полученный документ своим клиентам, поэтому копии одного и того же документа будут распечатаны для каждого из их клиентов. Однако в этих копиях есть только одно отличие: номер копии в конце каждой копии документа.
На данный момент; допустим, есть 4 клиента, поэтому 4 копии одного и того же документа будут напечатаны с разными номерами копий. Я достигаю этого, создавая один и тот же документ 4 раза, и каждый раз, когда я вставляю свой html-текст, объединяю поля и добавляю номер копии, а затем добавляю документы. В итоге у меня есть один большой документ, в который добавлены все 4 созданных документа.
Вот мой блок кода для него, там было много кода, поэтому я попытался уменьшить их до только связанных частей:
import com.aspose.words.*
Document docAllAppended = new Document(loadDocument("/documents/" + RTFFileName));
Document docTemp=null;
for (int i = 1; i <= copyNumber; i++) {
docTemp = new Document(loadDocument("/documents/" + RTFFileName));
DocumentBuilder builder = new DocumentBuilder(docTemp);
//insert html which includes file context
builder.insertHtml(htmlText);
//insert Copy number
builder.moveToBookmark("sayfa");
Font font = builder.getFont();
font.setBold(true);
font.setSize(8);
builder.write("Copy Number-" + i+ " / ");
font.setBold(false);
docAllAppended.appendDocument(docTemp,ImportFormatMode.USE_DESTINATION_STYLES);
}
Это выглядит так ненужно и имеет низкую производительность. Также каждый раз, когда мои пользователи пытаются изменить номер копии для печати, мое приложение вычисляет все с самого начала. Я спрашиваю, есть ли способ сделать это быстрее или как не создавать все это снова, когда изменяется номер копии для печати? Пока многого не нашел.
Заранее спасибо.