В нашем приложении мы храним PDF на сервере, а пользователи скачивают его.Мне нужно добавить верхний и нижний колонтитулы в PDF, когда он получен с сервера в виде байтового массива, и мы используем для него API ITEXT.
Вот фрагмент кода
ByteArrayOutputStream baos = new ByteArrayOutputStream(baNotes.length);
baos.write(baNotes, 0, baNotes.length);
pdfReader = new PdfReader(baNotes);
pdfStamper = new PdfStamper(pdfReader,baos);
Font font = new Font(Font.FontFamily.TIMES_ROMAN, 8, Font.BOLD);
int noteSize = pdfReader.getNumberOfPages();
logger.debug("Retreving the total number of pages: "+ noteSize);
for(int i=1; i<= noteSize; i++){
logger.debug("Adding footer to each notes: "+i );
PdfContentByte content = pdfStamper.getUnderContent(i);
Phrase pHeader = new Phrase(fHeader, font);
Phrase pFooter = new Phrase(fMessage+i, font);
ColumnText.showTextAligned(content, Element.ALIGN_LEFT,pHeader,60,770, 0);
ColumnText.showTextAligned(content, Element.ALIGN_LEFT,pFooter,155,20, 0);
}
pdfStamper.close();
bOutput = baos.toByteArray();
Если я использую приведенный выше фрагмент, в некоторых PDF-файлах верхний и нижний колонтитулы перекрываются с существующим контентом, поскольку координаты фиксированы.
Я пробовал много примеров, чтобы избежать дублирования, но во всех примерах они создают PDF, но в моем сценарии PDF уже создан и сохранен на сервере.Я также дал ссылку на раздел ресурсов ITEXT ниже для аналогичного вопроса.Я также не смог найти, с каких координат начинается фактический контент PDF.
почему мой заголовок перекрывает мой контент
Любые предложения / идеи о том, какдвигаться вперед или фрагменты кода очень приветствуются.