Добавьте верхний и нижний колонтитулы, не перекрывая существующий контент в pdf, используя ITEXT API JAVA - PullRequest
0 голосов
/ 23 января 2019

В нашем приложении мы храним 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.

почему мой заголовок перекрывает мой контент

Любые предложения / идеи о том, какдвигаться вперед или фрагменты кода очень приветствуются.

...